OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 3398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3409 WriteInt32ToHeapNumberStub::GenerateFixedRegStubsAheadOfTime(); | 3409 WriteInt32ToHeapNumberStub::GenerateFixedRegStubsAheadOfTime(); |
3410 StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(); | 3410 StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(); |
3411 RecordWriteStub::GenerateFixedRegStubsAheadOfTime(); | 3411 RecordWriteStub::GenerateFixedRegStubsAheadOfTime(); |
3412 } | 3412 } |
3413 | 3413 |
3414 | 3414 |
3415 void CodeStub::GenerateFPStubs() { | 3415 void CodeStub::GenerateFPStubs() { |
3416 CEntryStub save_doubles(1, kSaveFPRegs); | 3416 CEntryStub save_doubles(1, kSaveFPRegs); |
3417 Handle<Code> code = save_doubles.GetCode(); | 3417 Handle<Code> code = save_doubles.GetCode(); |
3418 code->set_is_pregenerated(true); | 3418 code->set_is_pregenerated(true); |
| 3419 StoreBufferOverflowStub stub(kSaveFPRegs); |
| 3420 stub.GetCode()->set_is_pregenerated(true); |
3419 code->GetIsolate()->set_fp_stubs_generated(true); | 3421 code->GetIsolate()->set_fp_stubs_generated(true); |
3420 } | 3422 } |
3421 | 3423 |
3422 | 3424 |
3423 void CEntryStub::GenerateAheadOfTime() { | 3425 void CEntryStub::GenerateAheadOfTime() { |
3424 CEntryStub stub(1, kDontSaveFPRegs); | 3426 CEntryStub stub(1, kDontSaveFPRegs); |
3425 Handle<Code> code = stub.GetCode(); | 3427 Handle<Code> code = stub.GetCode(); |
3426 code->set_is_pregenerated(true); | 3428 code->set_is_pregenerated(true); |
3427 } | 3429 } |
3428 | 3430 |
(...skipping 3448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6877 address_.is(entry->address) && | 6879 address_.is(entry->address) && |
6878 remembered_set_action_ == entry->action && | 6880 remembered_set_action_ == entry->action && |
6879 save_fp_regs_mode_ == kDontSaveFPRegs) { | 6881 save_fp_regs_mode_ == kDontSaveFPRegs) { |
6880 return true; | 6882 return true; |
6881 } | 6883 } |
6882 } | 6884 } |
6883 return false; | 6885 return false; |
6884 } | 6886 } |
6885 | 6887 |
6886 | 6888 |
| 6889 bool StoreBufferOverflowStub::IsPregenerated() { |
| 6890 return save_doubles_ == kDontSaveFPRegs || ISOLATE->fp_stubs_generated(); |
| 6891 } |
| 6892 |
| 6893 |
6887 void StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime() { | 6894 void StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime() { |
6888 StoreBufferOverflowStub stub1(kDontSaveFPRegs); | 6895 StoreBufferOverflowStub stub1(kDontSaveFPRegs); |
6889 stub1.GetCode()->set_is_pregenerated(true); | 6896 stub1.GetCode()->set_is_pregenerated(true); |
6890 StoreBufferOverflowStub stub2(kSaveFPRegs); | |
6891 stub2.GetCode()->set_is_pregenerated(true); | |
6892 } | 6897 } |
6893 | 6898 |
6894 | 6899 |
6895 void RecordWriteStub::GenerateFixedRegStubsAheadOfTime() { | 6900 void RecordWriteStub::GenerateFixedRegStubsAheadOfTime() { |
6896 for (AheadOfTimeWriteBarrierStubList* entry = kAheadOfTime; | 6901 for (AheadOfTimeWriteBarrierStubList* entry = kAheadOfTime; |
6897 !entry->object.is(no_reg); | 6902 !entry->object.is(no_reg); |
6898 entry++) { | 6903 entry++) { |
6899 RecordWriteStub stub(entry->object, | 6904 RecordWriteStub stub(entry->object, |
6900 entry->value, | 6905 entry->value, |
6901 entry->address, | 6906 entry->address, |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7095 | 7100 |
7096 // Fall through when we need to inform the incremental marker. | 7101 // Fall through when we need to inform the incremental marker. |
7097 } | 7102 } |
7098 | 7103 |
7099 | 7104 |
7100 #undef __ | 7105 #undef __ |
7101 | 7106 |
7102 } } // namespace v8::internal | 7107 } } // namespace v8::internal |
7103 | 7108 |
7104 #endif // V8_TARGET_ARCH_ARM | 7109 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |