Revert "Don't block quick callee saved registers for optimizing."
X64 has one libcore test failing, and codegen_test on
arm is failing.
This reverts commit 6004796d6c630696127df2494dcd4f30d1367a34.
Change-Id: I20e00431fa18e11ce4c0cb6fffa91977fa8e9b4f
diff --git a/compiler/utils/x86/assembler_x86.cc b/compiler/utils/x86/assembler_x86.cc
index 6aec45e..f0353f6 100644
--- a/compiler/utils/x86/assembler_x86.cc
+++ b/compiler/utils/x86/assembler_x86.cc
@@ -269,11 +269,11 @@
}
-void X86Assembler::setb(Condition condition, ByteRegister dst) {
+void X86Assembler::setb(Condition condition, Register dst) {
AssemblerBuffer::EnsureCapacity ensured(&buffer_);
EmitUint8(0x0F);
EmitUint8(0x90 + condition);
- EmitRegisterOperand(0, dst);
+ EmitOperand(0, Operand(dst));
}
diff --git a/compiler/utils/x86/assembler_x86.h b/compiler/utils/x86/assembler_x86.h
index fe07e8f..9fecf1e 100644
--- a/compiler/utils/x86/assembler_x86.h
+++ b/compiler/utils/x86/assembler_x86.h
@@ -251,7 +251,7 @@
void cmovl(Condition condition, Register dst, Register src);
- void setb(Condition condition, ByteRegister dst);
+ void setb(Condition condition, Register dst);
void movaps(XmmRegister dst, XmmRegister src);
void movss(XmmRegister dst, const Address& src);
diff --git a/compiler/utils/x86_64/assembler_x86_64.h b/compiler/utils/x86_64/assembler_x86_64.h
index 60ab475..51d1de2 100644
--- a/compiler/utils/x86_64/assembler_x86_64.h
+++ b/compiler/utils/x86_64/assembler_x86_64.h
@@ -180,18 +180,18 @@
void Init(CpuRegister base_in, int32_t disp) {
if (disp == 0 && base_in.AsRegister() != RBP) {
SetModRM(0, base_in);
- if (base_in.LowBits() == RSP) {
+ if (base_in.AsRegister() == RSP) {
SetSIB(TIMES_1, CpuRegister(RSP), base_in);
}
} else if (disp >= -128 && disp <= 127) {
SetModRM(1, base_in);
- if (base_in.LowBits() == RSP) {
+ if (base_in.AsRegister() == RSP) {
SetSIB(TIMES_1, CpuRegister(RSP), base_in);
}
SetDisp8(disp);
} else {
SetModRM(2, base_in);
- if (base_in.LowBits() == RSP) {
+ if (base_in.AsRegister() == RSP) {
SetSIB(TIMES_1, CpuRegister(RSP), base_in);
}
SetDisp32(disp);
diff --git a/compiler/utils/x86_64/assembler_x86_64_test.cc b/compiler/utils/x86_64/assembler_x86_64_test.cc
index 0ce809c..c8e923c 100644
--- a/compiler/utils/x86_64/assembler_x86_64_test.cc
+++ b/compiler/utils/x86_64/assembler_x86_64_test.cc
@@ -544,29 +544,6 @@
DriverStr(expected, "movl");
}
-TEST_F(AssemblerX86_64Test, Movq) {
- GetAssembler()->movq(x86_64::CpuRegister(x86_64::RAX), x86_64::Address(
- x86_64::CpuRegister(x86_64::R12), 12));
- GetAssembler()->movq(x86_64::CpuRegister(x86_64::RAX), x86_64::Address(
- x86_64::CpuRegister(x86_64::R12), 0));
- GetAssembler()->movq(x86_64::CpuRegister(x86_64::RAX), x86_64::Address(
- x86_64::CpuRegister(x86_64::R12), 256));
- GetAssembler()->movq(x86_64::CpuRegister(x86_64::RAX), x86_64::Address(
- x86_64::CpuRegister(x86_64::RBP), 12));
- GetAssembler()->movq(x86_64::CpuRegister(x86_64::RAX), x86_64::Address(
- x86_64::CpuRegister(x86_64::RBP), 0));
- GetAssembler()->movq(x86_64::CpuRegister(x86_64::RAX), x86_64::Address(
- x86_64::CpuRegister(x86_64::RBP), 256));
- const char* expected =
- "movq 0xc(%R12), %RAX\n"
- "movq (%R12), %RAX\n"
- "movq 0x100(%R12), %RAX\n"
- "movq 0xc(%RBP), %RAX\n"
- "movq (%RBP), %RAX\n"
- "movq 0x100(%RBP), %RAX\n";
- DriverStr(expected, "movq");
-}
-
TEST_F(AssemblerX86_64Test, Movw) {
GetAssembler()->movw(x86_64::Address(x86_64::CpuRegister(x86_64::RAX), 0),
x86_64::CpuRegister(x86_64::R9));