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 #include "src/crankshaft/mips64/lithium-codegen-mips64.h" | 5 #include "src/crankshaft/mips64/lithium-codegen-mips64.h" |
6 | 6 |
7 #include "src/code-factory.h" | 7 #include "src/code-factory.h" |
8 #include "src/code-stubs.h" | 8 #include "src/code-stubs.h" |
9 #include "src/crankshaft/hydrogen-osr.h" | 9 #include "src/crankshaft/hydrogen-osr.h" |
10 #include "src/crankshaft/mips64/lithium-gap-resolver-mips64.h" | 10 #include "src/crankshaft/mips64/lithium-gap-resolver-mips64.h" |
(...skipping 3991 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4002 scratch2, | 4002 scratch2, |
4003 GetRAState(), | 4003 GetRAState(), |
4004 kSaveFPRegs, | 4004 kSaveFPRegs, |
4005 EMIT_REMEMBERED_SET, | 4005 EMIT_REMEMBERED_SET, |
4006 instr->hydrogen()->SmiCheckForWriteBarrier(), | 4006 instr->hydrogen()->SmiCheckForWriteBarrier(), |
4007 instr->hydrogen()->PointersToHereCheckForValue()); | 4007 instr->hydrogen()->PointersToHereCheckForValue()); |
4008 } | 4008 } |
4009 } | 4009 } |
4010 | 4010 |
4011 | 4011 |
4012 void LCodeGen::DoStoreNamedGeneric(LStoreNamedGeneric* instr) { | |
4013 DCHECK(ToRegister(instr->context()).is(cp)); | |
4014 DCHECK(ToRegister(instr->object()).is(StoreDescriptor::ReceiverRegister())); | |
4015 DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister())); | |
4016 | |
4017 EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr); | |
4018 | |
4019 __ li(StoreDescriptor::NameRegister(), Operand(instr->name())); | |
4020 Handle<Code> ic = | |
4021 CodeFactory::StoreICInOptimizedCode(isolate(), instr->language_mode()) | |
4022 .code(); | |
4023 CallCode(ic, RelocInfo::CODE_TARGET, instr); | |
4024 } | |
4025 | |
4026 | |
4027 void LCodeGen::DoBoundsCheck(LBoundsCheck* instr) { | 4012 void LCodeGen::DoBoundsCheck(LBoundsCheck* instr) { |
4028 Condition cc = instr->hydrogen()->allow_equality() ? hi : hs; | 4013 Condition cc = instr->hydrogen()->allow_equality() ? hi : hs; |
4029 Operand operand((int64_t)0); | 4014 Operand operand((int64_t)0); |
4030 Register reg; | 4015 Register reg; |
4031 if (instr->index()->IsConstantOperand()) { | 4016 if (instr->index()->IsConstantOperand()) { |
4032 operand = ToOperand(instr->index()); | 4017 operand = ToOperand(instr->index()); |
4033 reg = ToRegister(instr->length()); | 4018 reg = ToRegister(instr->length()); |
4034 cc = CommuteCondition(cc); | 4019 cc = CommuteCondition(cc); |
4035 } else { | 4020 } else { |
4036 reg = ToRegister(instr->index()); | 4021 reg = ToRegister(instr->index()); |
(...skipping 1706 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5743 __ ld(result, FieldMemOperand(scratch, | 5728 __ ld(result, FieldMemOperand(scratch, |
5744 FixedArray::kHeaderSize - kPointerSize)); | 5729 FixedArray::kHeaderSize - kPointerSize)); |
5745 __ bind(deferred->exit()); | 5730 __ bind(deferred->exit()); |
5746 __ bind(&done); | 5731 __ bind(&done); |
5747 } | 5732 } |
5748 | 5733 |
5749 #undef __ | 5734 #undef __ |
5750 | 5735 |
5751 } // namespace internal | 5736 } // namespace internal |
5752 } // namespace v8 | 5737 } // namespace v8 |
OLD | NEW |