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 "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #include "lithium-allocator-inl.h" | 7 #include "lithium-allocator-inl.h" |
8 #include "arm64/lithium-arm64.h" | 8 #include "arm64/lithium-arm64.h" |
9 #include "arm64/lithium-codegen-arm64.h" | 9 #include "arm64/lithium-codegen-arm64.h" |
10 #include "hydrogen-osr.h" | 10 #include "hydrogen-osr.h" |
(...skipping 1991 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2002 | 2002 |
2003 | 2003 |
2004 LInstruction* LChunkBuilder::DoDoubleBits(HDoubleBits* instr) { | 2004 LInstruction* LChunkBuilder::DoDoubleBits(HDoubleBits* instr) { |
2005 HValue* value = instr->value(); | 2005 HValue* value = instr->value(); |
2006 ASSERT(value->representation().IsDouble()); | 2006 ASSERT(value->representation().IsDouble()); |
2007 return DefineAsRegister(new(zone()) LDoubleBits(UseRegister(value))); | 2007 return DefineAsRegister(new(zone()) LDoubleBits(UseRegister(value))); |
2008 } | 2008 } |
2009 | 2009 |
2010 | 2010 |
2011 LInstruction* LChunkBuilder::DoConstructDouble(HConstructDouble* instr) { | 2011 LInstruction* LChunkBuilder::DoConstructDouble(HConstructDouble* instr) { |
2012 LOperand* lo = UseRegister(instr->lo()); | 2012 LOperand* lo = UseRegisterAndClobber(instr->lo()); |
2013 LOperand* hi = UseRegister(instr->hi()); | 2013 LOperand* hi = UseRegister(instr->hi()); |
2014 LOperand* temp = TempRegister(); | 2014 return DefineAsRegister(new(zone()) LConstructDouble(hi, lo)); |
2015 return DefineAsRegister(new(zone()) LConstructDouble(hi, lo, temp)); | |
2016 } | 2015 } |
2017 | 2016 |
2018 | 2017 |
2019 LInstruction* LChunkBuilder::DoReturn(HReturn* instr) { | 2018 LInstruction* LChunkBuilder::DoReturn(HReturn* instr) { |
2020 LOperand* context = info()->IsStub() | 2019 LOperand* context = info()->IsStub() |
2021 ? UseFixed(instr->context(), cp) | 2020 ? UseFixed(instr->context(), cp) |
2022 : NULL; | 2021 : NULL; |
2023 LOperand* parameter_count = UseRegisterOrConstant(instr->parameter_count()); | 2022 LOperand* parameter_count = UseRegisterOrConstant(instr->parameter_count()); |
2024 return new(zone()) LReturn(UseFixed(instr->value(), x0), context, | 2023 return new(zone()) LReturn(UseFixed(instr->value(), x0), context, |
2025 parameter_count); | 2024 parameter_count); |
(...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2703 | 2702 |
2704 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) { | 2703 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) { |
2705 LOperand* receiver = UseRegister(instr->receiver()); | 2704 LOperand* receiver = UseRegister(instr->receiver()); |
2706 LOperand* function = UseRegister(instr->function()); | 2705 LOperand* function = UseRegister(instr->function()); |
2707 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function); | 2706 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function); |
2708 return AssignEnvironment(DefineAsRegister(result)); | 2707 return AssignEnvironment(DefineAsRegister(result)); |
2709 } | 2708 } |
2710 | 2709 |
2711 | 2710 |
2712 } } // namespace v8::internal | 2711 } } // namespace v8::internal |
OLD | NEW |