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 859 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
870 // Other register combinations are generated as and when they are needed, | 870 // Other register combinations are generated as and when they are needed, |
871 // so it is unsafe to call them from stubs (we can't generate a stub while | 871 // so it is unsafe to call them from stubs (we can't generate a stub while |
872 // we are generating a stub). | 872 // we are generating a stub). |
873 return false; | 873 return false; |
874 } | 874 } |
875 | 875 |
876 | 876 |
877 void WriteInt32ToHeapNumberStub::GenerateFixedRegStubsAheadOfTime() { | 877 void WriteInt32ToHeapNumberStub::GenerateFixedRegStubsAheadOfTime() { |
878 WriteInt32ToHeapNumberStub stub1(r1, r0, r2); | 878 WriteInt32ToHeapNumberStub stub1(r1, r0, r2); |
879 WriteInt32ToHeapNumberStub stub2(r2, r0, r3); | 879 WriteInt32ToHeapNumberStub stub2(r2, r0, r3); |
880 Handle<Code> code1 = stub1.GetCode()->set_is_pregenerated(true); | 880 stub1.GetCode()->set_is_pregenerated(true); |
881 Handle<Code> code2 = stub2.GetCode()->set_is_pregenerated(true); | 881 stub2.GetCode()->set_is_pregenerated(true); |
882 } | 882 } |
883 | 883 |
884 | 884 |
885 // See comment for class. | 885 // See comment for class. |
886 void WriteInt32ToHeapNumberStub::Generate(MacroAssembler* masm) { | 886 void WriteInt32ToHeapNumberStub::Generate(MacroAssembler* masm) { |
887 Label max_negative_int; | 887 Label max_negative_int; |
888 // the_int_ has the answer which is a signed int32 but not a Smi. | 888 // the_int_ has the answer which is a signed int32 but not a Smi. |
889 // We test for the special value that has a different exponent. This test | 889 // We test for the special value that has a different exponent. This test |
890 // has the neat side effect of setting the flags according to the sign. | 890 // has the neat side effect of setting the flags according to the sign. |
891 STATIC_ASSERT(HeapNumber::kSignMask == 0x80000000u); | 891 STATIC_ASSERT(HeapNumber::kSignMask == 0x80000000u); |
(...skipping 2514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3406 | 3406 |
3407 void CodeStub::GenerateStubsAheadOfTime() { | 3407 void CodeStub::GenerateStubsAheadOfTime() { |
3408 WriteInt32ToHeapNumberStub::GenerateFixedRegStubsAheadOfTime(); | 3408 WriteInt32ToHeapNumberStub::GenerateFixedRegStubsAheadOfTime(); |
3409 StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(); | 3409 StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(); |
3410 RecordWriteStub::GenerateFixedRegStubsAheadOfTime(); | 3410 RecordWriteStub::GenerateFixedRegStubsAheadOfTime(); |
3411 } | 3411 } |
3412 | 3412 |
3413 | 3413 |
3414 void CodeStub::GenerateFPStubs() { | 3414 void CodeStub::GenerateFPStubs() { |
3415 CEntryStub save_doubles(1, kSaveFPRegs); | 3415 CEntryStub save_doubles(1, kSaveFPRegs); |
3416 Handle<Code> code = save_doubles.GetCode()->set_is_pregenerated(true); | 3416 Handle<Code> code = save_doubles.GetCode(); |
| 3417 code->set_is_pregenerated(true); |
3417 code->GetIsolate()->set_fp_stubs_generated(true); | 3418 code->GetIsolate()->set_fp_stubs_generated(true); |
3418 } | 3419 } |
3419 | 3420 |
3420 | 3421 |
3421 void CEntryStub::GenerateThrowTOS(MacroAssembler* masm) { | 3422 void CEntryStub::GenerateThrowTOS(MacroAssembler* masm) { |
3422 __ Throw(r0); | 3423 __ Throw(r0); |
3423 } | 3424 } |
3424 | 3425 |
3425 | 3426 |
3426 void CEntryStub::GenerateThrowUncatchable(MacroAssembler* masm, | 3427 void CEntryStub::GenerateThrowUncatchable(MacroAssembler* masm, |
(...skipping 3659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7086 | 7087 |
7087 // Fall through when we need to inform the incremental marker. | 7088 // Fall through when we need to inform the incremental marker. |
7088 } | 7089 } |
7089 | 7090 |
7090 | 7091 |
7091 #undef __ | 7092 #undef __ |
7092 | 7093 |
7093 } } // namespace v8::internal | 7094 } } // namespace v8::internal |
7094 | 7095 |
7095 #endif // V8_TARGET_ARCH_ARM | 7096 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |