OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #if V8_TARGET_ARCH_MIPS | 5 #if V8_TARGET_ARCH_MIPS |
6 | 6 |
7 #include "src/code-stubs.h" | 7 #include "src/code-stubs.h" |
8 #include "src/api-arguments.h" | 8 #include "src/api-arguments.h" |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" |
(...skipping 2845 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2856 void BinaryOpICWithAllocationSiteStub::Generate(MacroAssembler* masm) { | 2856 void BinaryOpICWithAllocationSiteStub::Generate(MacroAssembler* masm) { |
2857 // ----------- S t a t e ------------- | 2857 // ----------- S t a t e ------------- |
2858 // -- a1 : left | 2858 // -- a1 : left |
2859 // -- a0 : right | 2859 // -- a0 : right |
2860 // -- ra : return address | 2860 // -- ra : return address |
2861 // ----------------------------------- | 2861 // ----------------------------------- |
2862 | 2862 |
2863 // Load a2 with the allocation site. We stick an undefined dummy value here | 2863 // Load a2 with the allocation site. We stick an undefined dummy value here |
2864 // and replace it with the real allocation site later when we instantiate this | 2864 // and replace it with the real allocation site later when we instantiate this |
2865 // stub in BinaryOpICWithAllocationSiteStub::GetCodeCopyFromTemplate(). | 2865 // stub in BinaryOpICWithAllocationSiteStub::GetCodeCopyFromTemplate(). |
2866 __ li(a2, handle(isolate()->heap()->undefined_value())); | 2866 __ li(a2, isolate()->factory()->undefined_value()); |
2867 | 2867 |
2868 // Make sure that we actually patched the allocation site. | 2868 // Make sure that we actually patched the allocation site. |
2869 if (FLAG_debug_code) { | 2869 if (FLAG_debug_code) { |
2870 __ And(at, a2, Operand(kSmiTagMask)); | 2870 __ And(at, a2, Operand(kSmiTagMask)); |
2871 __ Assert(ne, kExpectedAllocationSite, at, Operand(zero_reg)); | 2871 __ Assert(ne, kExpectedAllocationSite, at, Operand(zero_reg)); |
2872 __ lw(t0, FieldMemOperand(a2, HeapObject::kMapOffset)); | 2872 __ lw(t0, FieldMemOperand(a2, HeapObject::kMapOffset)); |
2873 __ LoadRoot(at, Heap::kAllocationSiteMapRootIndex); | 2873 __ LoadRoot(at, Heap::kAllocationSiteMapRootIndex); |
2874 __ Assert(eq, kExpectedAllocationSite, t0, Operand(at)); | 2874 __ Assert(eq, kExpectedAllocationSite, t0, Operand(at)); |
2875 } | 2875 } |
2876 | 2876 |
(...skipping 2747 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5624 kStackUnwindSpace, kInvalidStackOffset, | 5624 kStackUnwindSpace, kInvalidStackOffset, |
5625 return_value_operand, NULL); | 5625 return_value_operand, NULL); |
5626 } | 5626 } |
5627 | 5627 |
5628 #undef __ | 5628 #undef __ |
5629 | 5629 |
5630 } // namespace internal | 5630 } // namespace internal |
5631 } // namespace v8 | 5631 } // namespace v8 |
5632 | 5632 |
5633 #endif // V8_TARGET_ARCH_MIPS | 5633 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |