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/x64/lithium-x64.h" | 5 #include "src/crankshaft/x64/lithium-x64.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 | 8 |
9 #if V8_TARGET_ARCH_X64 | 9 #if V8_TARGET_ARCH_X64 |
10 | 10 |
(...skipping 1956 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1967 } | 1967 } |
1968 | 1968 |
1969 | 1969 |
1970 LInstruction* LChunkBuilder::DoDoubleBits(HDoubleBits* instr) { | 1970 LInstruction* LChunkBuilder::DoDoubleBits(HDoubleBits* instr) { |
1971 HValue* value = instr->value(); | 1971 HValue* value = instr->value(); |
1972 DCHECK(value->representation().IsDouble()); | 1972 DCHECK(value->representation().IsDouble()); |
1973 return DefineAsRegister(new(zone()) LDoubleBits(UseRegister(value))); | 1973 return DefineAsRegister(new(zone()) LDoubleBits(UseRegister(value))); |
1974 } | 1974 } |
1975 | 1975 |
1976 | 1976 |
1977 LInstruction* LChunkBuilder::DoConstructDouble(HConstructDouble* instr) { | |
1978 LOperand* lo = UseRegister(instr->lo()); | |
1979 LOperand* hi = UseRegister(instr->hi()); | |
1980 return DefineAsRegister(new(zone()) LConstructDouble(hi, lo)); | |
1981 } | |
1982 | |
1983 | |
1984 LInstruction* LChunkBuilder::DoReturn(HReturn* instr) { | 1977 LInstruction* LChunkBuilder::DoReturn(HReturn* instr) { |
1985 LOperand* context = info()->IsStub() ? UseFixed(instr->context(), rsi) : NULL; | 1978 LOperand* context = info()->IsStub() ? UseFixed(instr->context(), rsi) : NULL; |
1986 LOperand* parameter_count = UseRegisterOrConstant(instr->parameter_count()); | 1979 LOperand* parameter_count = UseRegisterOrConstant(instr->parameter_count()); |
1987 return new(zone()) LReturn( | 1980 return new(zone()) LReturn( |
1988 UseFixed(instr->value(), rax), context, parameter_count); | 1981 UseFixed(instr->value(), rax), context, parameter_count); |
1989 } | 1982 } |
1990 | 1983 |
1991 | 1984 |
1992 LInstruction* LChunkBuilder::DoConstant(HConstant* instr) { | 1985 LInstruction* LChunkBuilder::DoConstant(HConstant* instr) { |
1993 Representation r = instr->representation(); | 1986 Representation r = instr->representation(); |
(...skipping 592 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2586 LOperand* index = UseTempRegister(instr->index()); | 2579 LOperand* index = UseTempRegister(instr->index()); |
2587 LLoadFieldByIndex* load = new(zone()) LLoadFieldByIndex(object, index); | 2580 LLoadFieldByIndex* load = new(zone()) LLoadFieldByIndex(object, index); |
2588 LInstruction* result = DefineSameAsFirst(load); | 2581 LInstruction* result = DefineSameAsFirst(load); |
2589 return AssignPointerMap(result); | 2582 return AssignPointerMap(result); |
2590 } | 2583 } |
2591 | 2584 |
2592 } // namespace internal | 2585 } // namespace internal |
2593 } // namespace v8 | 2586 } // namespace v8 |
2594 | 2587 |
2595 #endif // V8_TARGET_ARCH_X64 | 2588 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |