diff options
Diffstat (limited to 'compiler/utils/x86/assembler_x86.cc')
-rw-r--r-- | compiler/utils/x86/assembler_x86.cc | 70 |
1 files changed, 11 insertions, 59 deletions
diff --git a/compiler/utils/x86/assembler_x86.cc b/compiler/utils/x86/assembler_x86.cc index f8bba07f84..51cc7acbd0 100644 --- a/compiler/utils/x86/assembler_x86.cc +++ b/compiler/utils/x86/assembler_x86.cc @@ -1285,62 +1285,32 @@ void X86Assembler::decl(const Address& address) { void X86Assembler::shll(Register reg, const Immediate& imm) { - EmitGenericShift(4, Operand(reg), imm); + EmitGenericShift(4, reg, imm); } void X86Assembler::shll(Register operand, Register shifter) { - EmitGenericShift(4, Operand(operand), shifter); -} - - -void X86Assembler::shll(const Address& address, const Immediate& imm) { - EmitGenericShift(4, address, imm); -} - - -void X86Assembler::shll(const Address& address, Register shifter) { - EmitGenericShift(4, address, shifter); + EmitGenericShift(4, operand, shifter); } void X86Assembler::shrl(Register reg, const Immediate& imm) { - EmitGenericShift(5, Operand(reg), imm); + EmitGenericShift(5, reg, imm); } void X86Assembler::shrl(Register operand, Register shifter) { - EmitGenericShift(5, Operand(operand), shifter); -} - - -void X86Assembler::shrl(const Address& address, const Immediate& imm) { - EmitGenericShift(5, address, imm); -} - - -void X86Assembler::shrl(const Address& address, Register shifter) { - EmitGenericShift(5, address, shifter); + EmitGenericShift(5, operand, shifter); } void X86Assembler::sarl(Register reg, const Immediate& imm) { - EmitGenericShift(7, Operand(reg), imm); + EmitGenericShift(7, reg, imm); } void X86Assembler::sarl(Register operand, Register shifter) { - EmitGenericShift(7, Operand(operand), shifter); -} - - -void X86Assembler::sarl(const Address& address, const Immediate& imm) { - EmitGenericShift(7, address, imm); -} - - -void X86Assembler::sarl(const Address& address, Register shifter) { - EmitGenericShift(7, address, shifter); + EmitGenericShift(7, operand, shifter); } @@ -1353,15 +1323,6 @@ void X86Assembler::shld(Register dst, Register src, Register shifter) { } -void X86Assembler::shld(Register dst, Register src, const Immediate& imm) { - AssemblerBuffer::EnsureCapacity ensured(&buffer_); - EmitUint8(0x0F); - EmitUint8(0xA4); - EmitRegisterOperand(src, dst); - EmitUint8(imm.value() & 0xFF); -} - - void X86Assembler::shrd(Register dst, Register src, Register shifter) { DCHECK_EQ(ECX, shifter); AssemblerBuffer::EnsureCapacity ensured(&buffer_); @@ -1371,15 +1332,6 @@ void X86Assembler::shrd(Register dst, Register src, Register shifter) { } -void X86Assembler::shrd(Register dst, Register src, const Immediate& imm) { - AssemblerBuffer::EnsureCapacity ensured(&buffer_); - EmitUint8(0x0F); - EmitUint8(0xAC); - EmitRegisterOperand(src, dst); - EmitUint8(imm.value() & 0xFF); -} - - void X86Assembler::negl(Register reg) { AssemblerBuffer::EnsureCapacity ensured(&buffer_); EmitUint8(0xF7); @@ -1663,28 +1615,28 @@ void X86Assembler::EmitLabelLink(Label* label) { void X86Assembler::EmitGenericShift(int reg_or_opcode, - const Operand& operand, + Register reg, const Immediate& imm) { AssemblerBuffer::EnsureCapacity ensured(&buffer_); CHECK(imm.is_int8()); if (imm.value() == 1) { EmitUint8(0xD1); - EmitOperand(reg_or_opcode, operand); + EmitOperand(reg_or_opcode, Operand(reg)); } else { EmitUint8(0xC1); - EmitOperand(reg_or_opcode, operand); + EmitOperand(reg_or_opcode, Operand(reg)); EmitUint8(imm.value() & 0xFF); } } void X86Assembler::EmitGenericShift(int reg_or_opcode, - const Operand& operand, + Register operand, Register shifter) { AssemblerBuffer::EnsureCapacity ensured(&buffer_); CHECK_EQ(shifter, ECX); EmitUint8(0xD3); - EmitOperand(reg_or_opcode, operand); + EmitOperand(reg_or_opcode, Operand(operand)); } static dwarf::Reg DWARFReg(Register reg) { |