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