| 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/ia32/lithium-ia32.h" | 5 #include "src/crankshaft/ia32/lithium-ia32.h" |
| 6 | 6 |
| 7 #include <sstream> | 7 #include <sstream> |
| 8 | 8 |
| 9 #if V8_TARGET_ARCH_IA32 | 9 #if V8_TARGET_ARCH_IA32 |
| 10 | 10 |
| (...skipping 2086 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2097 (instr->hole_mode() == CONVERT_HOLE_TO_UNDEFINED && info()->IsStub()); | 2097 (instr->hole_mode() == CONVERT_HOLE_TO_UNDEFINED && info()->IsStub()); |
| 2098 } | 2098 } |
| 2099 | 2099 |
| 2100 if (needs_environment) { | 2100 if (needs_environment) { |
| 2101 result = AssignEnvironment(result); | 2101 result = AssignEnvironment(result); |
| 2102 } | 2102 } |
| 2103 return result; | 2103 return result; |
| 2104 } | 2104 } |
| 2105 | 2105 |
| 2106 | 2106 |
| 2107 LInstruction* LChunkBuilder::DoLoadKeyedGeneric(HLoadKeyedGeneric* instr) { | |
| 2108 LOperand* context = UseFixed(instr->context(), esi); | |
| 2109 LOperand* object = | |
| 2110 UseFixed(instr->object(), LoadDescriptor::ReceiverRegister()); | |
| 2111 LOperand* key = UseFixed(instr->key(), LoadDescriptor::NameRegister()); | |
| 2112 LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister()); | |
| 2113 LLoadKeyedGeneric* result = | |
| 2114 new(zone()) LLoadKeyedGeneric(context, object, key, vector); | |
| 2115 return MarkAsCall(DefineFixed(result, eax), instr); | |
| 2116 } | |
| 2117 | |
| 2118 | |
| 2119 LOperand* LChunkBuilder::GetStoreKeyedValueOperand(HStoreKeyed* instr) { | 2107 LOperand* LChunkBuilder::GetStoreKeyedValueOperand(HStoreKeyed* instr) { |
| 2120 ElementsKind elements_kind = instr->elements_kind(); | 2108 ElementsKind elements_kind = instr->elements_kind(); |
| 2121 | 2109 |
| 2122 // Determine if we need a byte register in this case for the value. | 2110 // Determine if we need a byte register in this case for the value. |
| 2123 bool val_is_fixed_register = | 2111 bool val_is_fixed_register = |
| 2124 elements_kind == UINT8_ELEMENTS || | 2112 elements_kind == UINT8_ELEMENTS || |
| 2125 elements_kind == INT8_ELEMENTS || | 2113 elements_kind == INT8_ELEMENTS || |
| 2126 elements_kind == UINT8_CLAMPED_ELEMENTS; | 2114 elements_kind == UINT8_CLAMPED_ELEMENTS; |
| 2127 if (val_is_fixed_register) { | 2115 if (val_is_fixed_register) { |
| 2128 return UseFixed(instr->value(), eax); | 2116 return UseFixed(instr->value(), eax); |
| (...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2500 LOperand* index = UseTempRegister(instr->index()); | 2488 LOperand* index = UseTempRegister(instr->index()); |
| 2501 LLoadFieldByIndex* load = new(zone()) LLoadFieldByIndex(object, index); | 2489 LLoadFieldByIndex* load = new(zone()) LLoadFieldByIndex(object, index); |
| 2502 LInstruction* result = DefineSameAsFirst(load); | 2490 LInstruction* result = DefineSameAsFirst(load); |
| 2503 return AssignPointerMap(result); | 2491 return AssignPointerMap(result); |
| 2504 } | 2492 } |
| 2505 | 2493 |
| 2506 } // namespace internal | 2494 } // namespace internal |
| 2507 } // namespace v8 | 2495 } // namespace v8 |
| 2508 | 2496 |
| 2509 #endif // V8_TARGET_ARCH_IA32 | 2497 #endif // V8_TARGET_ARCH_IA32 |
| OLD | NEW |