| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/globals.h" | 5 #include "vm/globals.h" |
| 6 #if defined(TARGET_ARCH_X64) | 6 #if defined(TARGET_ARCH_X64) |
| 7 | 7 |
| 8 #include "vm/assembler.h" | 8 #include "vm/assembler.h" |
| 9 #include "vm/heap.h" | 9 #include "vm/heap.h" |
| 10 #include "vm/memory_region.h" | 10 #include "vm/memory_region.h" |
| (...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 399 | 399 |
| 400 | 400 |
| 401 void Assembler::leaq(Register dst, const Address& src) { | 401 void Assembler::leaq(Register dst, const Address& src) { |
| 402 AssemblerBuffer::EnsureCapacity ensured(&buffer_); | 402 AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
| 403 EmitOperandREX(dst, src, REX_W); | 403 EmitOperandREX(dst, src, REX_W); |
| 404 EmitUint8(0x8D); | 404 EmitUint8(0x8D); |
| 405 EmitOperand(dst & 7, src); | 405 EmitOperand(dst & 7, src); |
| 406 } | 406 } |
| 407 | 407 |
| 408 | 408 |
| 409 void Assembler::cmovgeq(Register dst, Register src) { |
| 410 AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
| 411 Operand operand(src); |
| 412 EmitOperandREX(dst, operand, REX_W); |
| 413 EmitUint8(0x0F); |
| 414 EmitUint8(0x4D); |
| 415 EmitOperand(dst & 7, operand); |
| 416 } |
| 417 |
| 418 |
| 419 void Assembler::cmovlessq(Register dst, Register src) { |
| 420 AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
| 421 Operand operand(src); |
| 422 EmitOperandREX(dst, operand, REX_W); |
| 423 EmitUint8(0x0F); |
| 424 EmitUint8(0x4C); |
| 425 EmitOperand(dst & 7, operand); |
| 426 } |
| 427 |
| 428 |
| 429 |
| 409 void Assembler::movss(XmmRegister dst, const Address& src) { | 430 void Assembler::movss(XmmRegister dst, const Address& src) { |
| 410 ASSERT(dst <= XMM15); | 431 ASSERT(dst <= XMM15); |
| 411 AssemblerBuffer::EnsureCapacity ensured(&buffer_); | 432 AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
| 412 EmitUint8(0xF3); | 433 EmitUint8(0xF3); |
| 413 EmitREX_RB(dst, src); | 434 EmitREX_RB(dst, src); |
| 414 EmitUint8(0x0F); | 435 EmitUint8(0x0F); |
| 415 EmitUint8(0x10); | 436 EmitUint8(0x10); |
| 416 EmitOperand(dst & 7, src); | 437 EmitOperand(dst & 7, src); |
| 417 } | 438 } |
| 418 | 439 |
| (...skipping 2182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2601 | 2622 |
| 2602 const char* Assembler::FpuRegisterName(FpuRegister reg) { | 2623 const char* Assembler::FpuRegisterName(FpuRegister reg) { |
| 2603 ASSERT((0 <= reg) && (reg < kNumberOfXmmRegisters)); | 2624 ASSERT((0 <= reg) && (reg < kNumberOfXmmRegisters)); |
| 2604 return xmm_reg_names[reg]; | 2625 return xmm_reg_names[reg]; |
| 2605 } | 2626 } |
| 2606 | 2627 |
| 2607 | 2628 |
| 2608 } // namespace dart | 2629 } // namespace dart |
| 2609 | 2630 |
| 2610 #endif // defined TARGET_ARCH_X64 | 2631 #endif // defined TARGET_ARCH_X64 |
| OLD | NEW |