| 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/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #if V8_TARGET_ARCH_X87 | 7 #if V8_TARGET_ARCH_X87 |
| 8 | 8 |
| 9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
| 10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
| (...skipping 3946 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3957 temp, | 3957 temp, |
| 3958 EMIT_REMEMBERED_SET, | 3958 EMIT_REMEMBERED_SET, |
| 3959 instr->hydrogen()->SmiCheckForWriteBarrier(), | 3959 instr->hydrogen()->SmiCheckForWriteBarrier(), |
| 3960 instr->hydrogen()->PointersToHereCheckForValue()); | 3960 instr->hydrogen()->PointersToHereCheckForValue()); |
| 3961 } | 3961 } |
| 3962 } | 3962 } |
| 3963 | 3963 |
| 3964 | 3964 |
| 3965 void LCodeGen::DoStoreNamedGeneric(LStoreNamedGeneric* instr) { | 3965 void LCodeGen::DoStoreNamedGeneric(LStoreNamedGeneric* instr) { |
| 3966 ASSERT(ToRegister(instr->context()).is(esi)); | 3966 ASSERT(ToRegister(instr->context()).is(esi)); |
| 3967 ASSERT(ToRegister(instr->object()).is(edx)); | 3967 ASSERT(ToRegister(instr->object()).is(StoreIC::ReceiverRegister())); |
| 3968 ASSERT(ToRegister(instr->value()).is(eax)); | 3968 ASSERT(ToRegister(instr->value()).is(StoreIC::ValueRegister())); |
| 3969 | 3969 |
| 3970 __ mov(ecx, instr->name()); | 3970 __ mov(StoreIC::NameRegister(), instr->name()); |
| 3971 Handle<Code> ic = StoreIC::initialize_stub(isolate(), instr->strict_mode()); | 3971 Handle<Code> ic = StoreIC::initialize_stub(isolate(), instr->strict_mode()); |
| 3972 CallCode(ic, RelocInfo::CODE_TARGET, instr); | 3972 CallCode(ic, RelocInfo::CODE_TARGET, instr); |
| 3973 } | 3973 } |
| 3974 | 3974 |
| 3975 | 3975 |
| 3976 void LCodeGen::DoBoundsCheck(LBoundsCheck* instr) { | 3976 void LCodeGen::DoBoundsCheck(LBoundsCheck* instr) { |
| 3977 Condition cc = instr->hydrogen()->allow_equality() ? above : above_equal; | 3977 Condition cc = instr->hydrogen()->allow_equality() ? above : above_equal; |
| 3978 if (instr->index()->IsConstantOperand()) { | 3978 if (instr->index()->IsConstantOperand()) { |
| 3979 __ cmp(ToOperand(instr->length()), | 3979 __ cmp(ToOperand(instr->length()), |
| 3980 ToImmediate(LConstantOperand::cast(instr->index()), | 3980 ToImmediate(LConstantOperand::cast(instr->index()), |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4168 } else if (instr->hydrogen()->value()->representation().IsDouble()) { | 4168 } else if (instr->hydrogen()->value()->representation().IsDouble()) { |
| 4169 DoStoreKeyedFixedDoubleArray(instr); | 4169 DoStoreKeyedFixedDoubleArray(instr); |
| 4170 } else { | 4170 } else { |
| 4171 DoStoreKeyedFixedArray(instr); | 4171 DoStoreKeyedFixedArray(instr); |
| 4172 } | 4172 } |
| 4173 } | 4173 } |
| 4174 | 4174 |
| 4175 | 4175 |
| 4176 void LCodeGen::DoStoreKeyedGeneric(LStoreKeyedGeneric* instr) { | 4176 void LCodeGen::DoStoreKeyedGeneric(LStoreKeyedGeneric* instr) { |
| 4177 ASSERT(ToRegister(instr->context()).is(esi)); | 4177 ASSERT(ToRegister(instr->context()).is(esi)); |
| 4178 ASSERT(ToRegister(instr->object()).is(edx)); | 4178 ASSERT(ToRegister(instr->object()).is(KeyedStoreIC::ReceiverRegister())); |
| 4179 ASSERT(ToRegister(instr->key()).is(ecx)); | 4179 ASSERT(ToRegister(instr->key()).is(KeyedStoreIC::NameRegister())); |
| 4180 ASSERT(ToRegister(instr->value()).is(eax)); | 4180 ASSERT(ToRegister(instr->value()).is(KeyedStoreIC::ValueRegister())); |
| 4181 | 4181 |
| 4182 Handle<Code> ic = instr->strict_mode() == STRICT | 4182 Handle<Code> ic = instr->strict_mode() == STRICT |
| 4183 ? isolate()->builtins()->KeyedStoreIC_Initialize_Strict() | 4183 ? isolate()->builtins()->KeyedStoreIC_Initialize_Strict() |
| 4184 : isolate()->builtins()->KeyedStoreIC_Initialize(); | 4184 : isolate()->builtins()->KeyedStoreIC_Initialize(); |
| 4185 CallCode(ic, RelocInfo::CODE_TARGET, instr); | 4185 CallCode(ic, RelocInfo::CODE_TARGET, instr); |
| 4186 } | 4186 } |
| 4187 | 4187 |
| 4188 | 4188 |
| 4189 void LCodeGen::DoTrapAllocationMemento(LTrapAllocationMemento* instr) { | 4189 void LCodeGen::DoTrapAllocationMemento(LTrapAllocationMemento* instr) { |
| 4190 Register object = ToRegister(instr->object()); | 4190 Register object = ToRegister(instr->object()); |
| (...skipping 1507 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5698 CallRuntime(Runtime::kPushBlockContext, 2, instr); | 5698 CallRuntime(Runtime::kPushBlockContext, 2, instr); |
| 5699 RecordSafepoint(Safepoint::kNoLazyDeopt); | 5699 RecordSafepoint(Safepoint::kNoLazyDeopt); |
| 5700 } | 5700 } |
| 5701 | 5701 |
| 5702 | 5702 |
| 5703 #undef __ | 5703 #undef __ |
| 5704 | 5704 |
| 5705 } } // namespace v8::internal | 5705 } } // namespace v8::internal |
| 5706 | 5706 |
| 5707 #endif // V8_TARGET_ARCH_X87 | 5707 #endif // V8_TARGET_ARCH_X87 |
| OLD | NEW |