| Index: runtime/vm/assembler_ia32.cc
|
| ===================================================================
|
| --- runtime/vm/assembler_ia32.cc (revision 13286)
|
| +++ runtime/vm/assembler_ia32.cc (working copy)
|
| @@ -1220,7 +1220,7 @@
|
|
|
|
|
| void Assembler::shll(Register operand, Register shifter) {
|
| - EmitGenericShift(4, operand, shifter);
|
| + EmitGenericShift(4, Operand(operand), shifter);
|
| }
|
|
|
|
|
| @@ -1230,7 +1230,7 @@
|
|
|
|
|
| void Assembler::shrl(Register operand, Register shifter) {
|
| - EmitGenericShift(5, operand, shifter);
|
| + EmitGenericShift(5, Operand(operand), shifter);
|
| }
|
|
|
|
|
| @@ -1240,10 +1240,15 @@
|
|
|
|
|
| void Assembler::sarl(Register operand, Register shifter) {
|
| - EmitGenericShift(7, operand, shifter);
|
| + EmitGenericShift(7, Operand(operand), shifter);
|
| }
|
|
|
|
|
| +void Assembler::sarl(const Address& address, Register shifter) {
|
| + EmitGenericShift(7, Operand(address), shifter);
|
| +}
|
| +
|
| +
|
| void Assembler::shld(Register dst, Register src) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| EmitUint8(0x0F);
|
| @@ -1252,6 +1257,22 @@
|
| }
|
|
|
|
|
| +void Assembler::shrd(Register dst, Register src) {
|
| + AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| + EmitUint8(0x0F);
|
| + EmitUint8(0xAD);
|
| + EmitRegisterOperand(src, dst);
|
| +}
|
| +
|
| +
|
| +void Assembler::shrd(const Address& dst, Register src) {
|
| + AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| + EmitUint8(0x0F);
|
| + EmitUint8(0xAD);
|
| + EmitOperand(src, Operand(dst));
|
| +}
|
| +
|
| +
|
| void Assembler::negl(Register reg) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| EmitUint8(0xF7);
|
| @@ -1906,7 +1927,7 @@
|
|
|
|
|
| void Assembler::EmitGenericShift(int rm,
|
| - Register operand,
|
| + const Operand& operand,
|
| Register shifter) {
|
| AssemblerBuffer::EnsureCapacity ensured(&buffer_);
|
| ASSERT(shifter == ECX);
|
|
|