OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #include "src/crankshaft/ppc/lithium-codegen-ppc.h" | 5 #include "src/crankshaft/ppc/lithium-codegen-ppc.h" |
6 | 6 |
7 #include "src/base/bits.h" | 7 #include "src/base/bits.h" |
8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
10 #include "src/crankshaft/hydrogen-osr.h" | 10 #include "src/crankshaft/hydrogen-osr.h" |
(...skipping 4467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4478 __ StoreP(new_map_reg, FieldMemOperand(object_reg, HeapObject::kMapOffset), | 4478 __ StoreP(new_map_reg, FieldMemOperand(object_reg, HeapObject::kMapOffset), |
4479 r0); | 4479 r0); |
4480 // Write barrier. | 4480 // Write barrier. |
4481 __ RecordWriteForMap(object_reg, new_map_reg, scratch, | 4481 __ RecordWriteForMap(object_reg, new_map_reg, scratch, |
4482 GetLinkRegisterState(), kDontSaveFPRegs); | 4482 GetLinkRegisterState(), kDontSaveFPRegs); |
4483 } else { | 4483 } else { |
4484 DCHECK(ToRegister(instr->context()).is(cp)); | 4484 DCHECK(ToRegister(instr->context()).is(cp)); |
4485 DCHECK(object_reg.is(r3)); | 4485 DCHECK(object_reg.is(r3)); |
4486 PushSafepointRegistersScope scope(this); | 4486 PushSafepointRegistersScope scope(this); |
4487 __ Move(r4, to_map); | 4487 __ Move(r4, to_map); |
4488 bool is_js_array = from_map->instance_type() == JS_ARRAY_TYPE; | 4488 TransitionElementsKindStub stub(isolate(), from_kind, to_kind); |
4489 TransitionElementsKindStub stub(isolate(), from_kind, to_kind, is_js_array); | |
4490 __ CallStub(&stub); | 4489 __ CallStub(&stub); |
4491 RecordSafepointWithRegisters(instr->pointer_map(), 0, | 4490 RecordSafepointWithRegisters(instr->pointer_map(), 0, |
4492 Safepoint::kLazyDeopt); | 4491 Safepoint::kLazyDeopt); |
4493 } | 4492 } |
4494 __ bind(¬_applicable); | 4493 __ bind(¬_applicable); |
4495 } | 4494 } |
4496 | 4495 |
4497 | 4496 |
4498 void LCodeGen::DoTrapAllocationMemento(LTrapAllocationMemento* instr) { | 4497 void LCodeGen::DoTrapAllocationMemento(LTrapAllocationMemento* instr) { |
4499 Register object = ToRegister(instr->object()); | 4498 Register object = ToRegister(instr->object()); |
(...skipping 1311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5811 __ LoadP(result, | 5810 __ LoadP(result, |
5812 FieldMemOperand(scratch, FixedArray::kHeaderSize - kPointerSize)); | 5811 FieldMemOperand(scratch, FixedArray::kHeaderSize - kPointerSize)); |
5813 __ bind(deferred->exit()); | 5812 __ bind(deferred->exit()); |
5814 __ bind(&done); | 5813 __ bind(&done); |
5815 } | 5814 } |
5816 | 5815 |
5817 #undef __ | 5816 #undef __ |
5818 | 5817 |
5819 } // namespace internal | 5818 } // namespace internal |
5820 } // namespace v8 | 5819 } // namespace v8 |
OLD | NEW |