| 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/x64/assembler-x64.h" | 5 #include "src/x64/assembler-x64.h" |
| 6 | 6 |
| 7 #include <cstring> | 7 #include <cstring> |
| 8 | 8 |
| 9 #if V8_TARGET_ARCH_X64 | 9 #if V8_TARGET_ARCH_X64 |
| 10 | 10 |
| (...skipping 1451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1462 } | 1462 } |
| 1463 | 1463 |
| 1464 | 1464 |
| 1465 void Assembler::movp(Register dst, void* value, RelocInfo::Mode rmode) { | 1465 void Assembler::movp(Register dst, void* value, RelocInfo::Mode rmode) { |
| 1466 EnsureSpace ensure_space(this); | 1466 EnsureSpace ensure_space(this); |
| 1467 emit_rex(dst, kPointerSize); | 1467 emit_rex(dst, kPointerSize); |
| 1468 emit(0xB8 | dst.low_bits()); | 1468 emit(0xB8 | dst.low_bits()); |
| 1469 emitp(value, rmode); | 1469 emitp(value, rmode); |
| 1470 } | 1470 } |
| 1471 | 1471 |
| 1472 | 1472 void Assembler::movq(Register dst, int64_t value, RelocInfo::Mode rmode) { |
| 1473 void Assembler::movq(Register dst, int64_t value) { | |
| 1474 EnsureSpace ensure_space(this); | 1473 EnsureSpace ensure_space(this); |
| 1475 emit_rex_64(dst); | 1474 emit_rex_64(dst); |
| 1476 emit(0xB8 | dst.low_bits()); | 1475 emit(0xB8 | dst.low_bits()); |
| 1476 if (!RelocInfo::IsNone(rmode)) { |
| 1477 RecordRelocInfo(rmode, value); |
| 1478 } |
| 1477 emitq(value); | 1479 emitq(value); |
| 1478 } | 1480 } |
| 1479 | 1481 |
| 1480 | 1482 void Assembler::movq(Register dst, uint64_t value, RelocInfo::Mode rmode) { |
| 1481 void Assembler::movq(Register dst, uint64_t value) { | 1483 movq(dst, static_cast<int64_t>(value), rmode); |
| 1482 movq(dst, static_cast<int64_t>(value)); | |
| 1483 } | 1484 } |
| 1484 | 1485 |
| 1485 | 1486 |
| 1486 // Loads the ip-relative location of the src label into the target location | 1487 // Loads the ip-relative location of the src label into the target location |
| 1487 // (as a 32-bit offset sign extended to 64-bit). | 1488 // (as a 32-bit offset sign extended to 64-bit). |
| 1488 void Assembler::movl(const Operand& dst, Label* src) { | 1489 void Assembler::movl(const Operand& dst, Label* src) { |
| 1489 EnsureSpace ensure_space(this); | 1490 EnsureSpace ensure_space(this); |
| 1490 emit_optional_rex_32(dst); | 1491 emit_optional_rex_32(dst); |
| 1491 emit(0xC7); | 1492 emit(0xC7); |
| 1492 emit_operand(0, dst); | 1493 emit_operand(0, dst); |
| (...skipping 2656 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4149 | 4150 |
| 4150 bool RelocInfo::IsInConstantPool() { | 4151 bool RelocInfo::IsInConstantPool() { |
| 4151 return false; | 4152 return false; |
| 4152 } | 4153 } |
| 4153 | 4154 |
| 4154 | 4155 |
| 4155 } // namespace internal | 4156 } // namespace internal |
| 4156 } // namespace v8 | 4157 } // namespace v8 |
| 4157 | 4158 |
| 4158 #endif // V8_TARGET_ARCH_X64 | 4159 #endif // V8_TARGET_ARCH_X64 |
| OLD | NEW |