OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/hydrogen-osr.h" | 9 #include "src/hydrogen-osr.h" |
10 #include "src/lithium-inl.h" | 10 #include "src/lithium-inl.h" |
(...skipping 2011 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2022 | 2022 |
2023 LInstruction* LChunkBuilder::DoCheckValue(HCheckValue* instr) { | 2023 LInstruction* LChunkBuilder::DoCheckValue(HCheckValue* instr) { |
2024 LOperand* value = UseRegisterAtStart(instr->value()); | 2024 LOperand* value = UseRegisterAtStart(instr->value()); |
2025 return AssignEnvironment(new (zone()) LCheckValue(value)); | 2025 return AssignEnvironment(new (zone()) LCheckValue(value)); |
2026 } | 2026 } |
2027 | 2027 |
2028 | 2028 |
2029 LInstruction* LChunkBuilder::DoCheckMaps(HCheckMaps* instr) { | 2029 LInstruction* LChunkBuilder::DoCheckMaps(HCheckMaps* instr) { |
2030 if (instr->IsStabilityCheck()) return new (zone()) LCheckMaps; | 2030 if (instr->IsStabilityCheck()) return new (zone()) LCheckMaps; |
2031 LOperand* value = UseRegisterAtStart(instr->value()); | 2031 LOperand* value = UseRegisterAtStart(instr->value()); |
2032 LInstruction* result = AssignEnvironment(new (zone()) LCheckMaps(value)); | 2032 LOperand* temp = TempRegister(); |
| 2033 LInstruction* result = |
| 2034 AssignEnvironment(new (zone()) LCheckMaps(value, temp)); |
2033 if (instr->HasMigrationTarget()) { | 2035 if (instr->HasMigrationTarget()) { |
2034 info()->MarkAsDeferredCalling(); | 2036 info()->MarkAsDeferredCalling(); |
2035 result = AssignPointerMap(result); | 2037 result = AssignPointerMap(result); |
2036 } | 2038 } |
2037 return result; | 2039 return result; |
2038 } | 2040 } |
2039 | 2041 |
2040 | 2042 |
2041 LInstruction* LChunkBuilder::DoClampToUint8(HClampToUint8* instr) { | 2043 LInstruction* LChunkBuilder::DoClampToUint8(HClampToUint8* instr) { |
2042 HValue* value = instr->value(); | 2044 HValue* value = instr->value(); |
(...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2623 LInstruction* LChunkBuilder::DoAllocateBlockContext( | 2625 LInstruction* LChunkBuilder::DoAllocateBlockContext( |
2624 HAllocateBlockContext* instr) { | 2626 HAllocateBlockContext* instr) { |
2625 LOperand* context = UseFixed(instr->context(), cp); | 2627 LOperand* context = UseFixed(instr->context(), cp); |
2626 LOperand* function = UseRegisterAtStart(instr->function()); | 2628 LOperand* function = UseRegisterAtStart(instr->function()); |
2627 LAllocateBlockContext* result = | 2629 LAllocateBlockContext* result = |
2628 new (zone()) LAllocateBlockContext(context, function); | 2630 new (zone()) LAllocateBlockContext(context, function); |
2629 return MarkAsCall(DefineFixed(result, cp), instr); | 2631 return MarkAsCall(DefineFixed(result, cp), instr); |
2630 } | 2632 } |
2631 } | 2633 } |
2632 } // namespace v8::internal | 2634 } // namespace v8::internal |
OLD | NEW |