diff options
Diffstat (limited to 'compiler/utils/x86/assembler_x86.cc')
-rw-r--r-- | compiler/utils/x86/assembler_x86.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/compiler/utils/x86/assembler_x86.cc b/compiler/utils/x86/assembler_x86.cc index da53138239..adc7bcc0f4 100644 --- a/compiler/utils/x86/assembler_x86.cc +++ b/compiler/utils/x86/assembler_x86.cc @@ -2887,6 +2887,27 @@ void X86Assembler::fprem() { } +void X86Assembler::xchgb(Register reg, const Address& address) { + // For testing purpose + xchgb(static_cast<ByteRegister>(reg), address); +} + + +void X86Assembler::xchgb(ByteRegister reg, const Address& address) { + AssemblerBuffer::EnsureCapacity ensured(&buffer_); + EmitUint8(0x86); + EmitOperand(reg, address); +} + + +void X86Assembler::xchgw(Register reg, const Address& address) { + AssemblerBuffer::EnsureCapacity ensured(&buffer_); + EmitOperandSizeOverride(); + EmitUint8(0x87); + EmitOperand(reg, address); +} + + void X86Assembler::xchgl(Register dst, Register src) { AssemblerBuffer::EnsureCapacity ensured(&buffer_); EmitUint8(0x87); |