| 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 "v8.h" | 5 #include "v8.h" |
| 6 | 6 |
| 7 #if V8_TARGET_ARCH_X64 | 7 #if V8_TARGET_ARCH_X64 |
| 8 | 8 |
| 9 #include "lithium-allocator-inl.h" | 9 #include "lithium-allocator-inl.h" |
| 10 #include "x64/lithium-x64.h" | 10 #include "x64/lithium-x64.h" |
| (...skipping 1862 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1873 LOperand* value = UseRegister(val); | 1873 LOperand* value = UseRegister(val); |
| 1874 return DefineAsRegister(new(zone()) LSmiTag(value)); | 1874 return DefineAsRegister(new(zone()) LSmiTag(value)); |
| 1875 } else if (val->CheckFlag(HInstruction::kUint32)) { | 1875 } else if (val->CheckFlag(HInstruction::kUint32)) { |
| 1876 LOperand* value = UseRegister(val); | 1876 LOperand* value = UseRegister(val); |
| 1877 LOperand* temp1 = TempRegister(); | 1877 LOperand* temp1 = TempRegister(); |
| 1878 LOperand* temp2 = FixedTemp(xmm1); | 1878 LOperand* temp2 = FixedTemp(xmm1); |
| 1879 LNumberTagU* result = new(zone()) LNumberTagU(value, temp1, temp2); | 1879 LNumberTagU* result = new(zone()) LNumberTagU(value, temp1, temp2); |
| 1880 return AssignPointerMap(DefineSameAsFirst(result)); | 1880 return AssignPointerMap(DefineSameAsFirst(result)); |
| 1881 } else { | 1881 } else { |
| 1882 LOperand* value = UseRegister(val); | 1882 LOperand* value = UseRegister(val); |
| 1883 LNumberTagI* result = new(zone()) LNumberTagI(value); | 1883 LOperand* temp1 = SmiValuesAre32Bits() ? NULL : TempRegister(); |
| 1884 LOperand* temp2 = SmiValuesAre32Bits() ? NULL : FixedTemp(xmm1); |
| 1885 LNumberTagI* result = new(zone()) LNumberTagI(value, temp1, temp2); |
| 1884 return AssignPointerMap(DefineSameAsFirst(result)); | 1886 return AssignPointerMap(DefineSameAsFirst(result)); |
| 1885 } | 1887 } |
| 1886 } else if (to.IsSmi()) { | 1888 } else if (to.IsSmi()) { |
| 1887 LOperand* value = UseRegister(val); | 1889 LOperand* value = UseRegister(val); |
| 1888 LInstruction* result = DefineAsRegister(new(zone()) LSmiTag(value)); | 1890 LInstruction* result = DefineAsRegister(new(zone()) LSmiTag(value)); |
| 1889 if (instr->CheckFlag(HValue::kCanOverflow)) { | 1891 if (instr->CheckFlag(HValue::kCanOverflow)) { |
| 1890 result = AssignEnvironment(result); | 1892 result = AssignEnvironment(result); |
| 1891 } | 1893 } |
| 1892 return result; | 1894 return result; |
| 1893 } else { | 1895 } else { |
| (...skipping 694 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2588 LOperand* index = UseTempRegister(instr->index()); | 2590 LOperand* index = UseTempRegister(instr->index()); |
| 2589 LLoadFieldByIndex* load = new(zone()) LLoadFieldByIndex(object, index); | 2591 LLoadFieldByIndex* load = new(zone()) LLoadFieldByIndex(object, index); |
| 2590 LInstruction* result = DefineSameAsFirst(load); | 2592 LInstruction* result = DefineSameAsFirst(load); |
| 2591 return AssignPointerMap(result); | 2593 return AssignPointerMap(result); |
| 2592 } | 2594 } |
| 2593 | 2595 |
| 2594 | 2596 |
| 2595 } } // namespace v8::internal | 2597 } } // namespace v8::internal |
| 2596 | 2598 |
| 2597 #endif // V8_TARGET_ARCH_X64 | 2599 #endif // V8_TARGET_ARCH_X64 |
| OLD | NEW |