OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 <sstream> | 5 #include <sstream> |
6 | 6 |
7 #include "src/v8.h" | 7 #include "src/v8.h" |
8 | 8 |
9 #include "src/arm64/lithium-codegen-arm64.h" | 9 #include "src/arm64/lithium-codegen-arm64.h" |
10 #include "src/hydrogen-osr.h" | 10 #include "src/hydrogen-osr.h" |
(...skipping 2382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2393 LInstruction* LChunkBuilder::DoStoreNamedField(HStoreNamedField* instr) { | 2393 LInstruction* LChunkBuilder::DoStoreNamedField(HStoreNamedField* instr) { |
2394 // TODO(jbramley): It might be beneficial to allow value to be a constant in | 2394 // TODO(jbramley): It might be beneficial to allow value to be a constant in |
2395 // some cases. x64 makes use of this with FLAG_track_fields, for example. | 2395 // some cases. x64 makes use of this with FLAG_track_fields, for example. |
2396 | 2396 |
2397 LOperand* object = UseRegister(instr->object()); | 2397 LOperand* object = UseRegister(instr->object()); |
2398 LOperand* value; | 2398 LOperand* value; |
2399 LOperand* temp0 = NULL; | 2399 LOperand* temp0 = NULL; |
2400 LOperand* temp1 = NULL; | 2400 LOperand* temp1 = NULL; |
2401 | 2401 |
2402 if (instr->access().IsExternalMemory() || | 2402 if (instr->access().IsExternalMemory() || |
2403 instr->field_representation().IsDouble()) { | 2403 (!FLAG_unbox_double_fields && instr->field_representation().IsDouble())) { |
2404 value = UseRegister(instr->value()); | 2404 value = UseRegister(instr->value()); |
2405 } else if (instr->NeedsWriteBarrier()) { | 2405 } else if (instr->NeedsWriteBarrier()) { |
2406 value = UseRegisterAndClobber(instr->value()); | 2406 value = UseRegisterAndClobber(instr->value()); |
2407 temp0 = TempRegister(); | 2407 temp0 = TempRegister(); |
2408 temp1 = TempRegister(); | 2408 temp1 = TempRegister(); |
2409 } else if (instr->NeedsWriteBarrierForMap()) { | 2409 } else if (instr->NeedsWriteBarrierForMap()) { |
2410 value = UseRegister(instr->value()); | 2410 value = UseRegister(instr->value()); |
2411 temp0 = TempRegister(); | 2411 temp0 = TempRegister(); |
2412 temp1 = TempRegister(); | 2412 temp1 = TempRegister(); |
2413 } else { | 2413 } else { |
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2744 HAllocateBlockContext* instr) { | 2744 HAllocateBlockContext* instr) { |
2745 LOperand* context = UseFixed(instr->context(), cp); | 2745 LOperand* context = UseFixed(instr->context(), cp); |
2746 LOperand* function = UseRegisterAtStart(instr->function()); | 2746 LOperand* function = UseRegisterAtStart(instr->function()); |
2747 LAllocateBlockContext* result = | 2747 LAllocateBlockContext* result = |
2748 new(zone()) LAllocateBlockContext(context, function); | 2748 new(zone()) LAllocateBlockContext(context, function); |
2749 return MarkAsCall(DefineFixed(result, cp), instr); | 2749 return MarkAsCall(DefineFixed(result, cp), instr); |
2750 } | 2750 } |
2751 | 2751 |
2752 | 2752 |
2753 } } // namespace v8::internal | 2753 } } // namespace v8::internal |
OLD | NEW |