From ae9f3e6ef9f97f47416f829448e5281e9a57d8b8 Mon Sep 17 00:00:00 2001 From: Razvan A Lupusoru Date: Tue, 23 Sep 2014 14:54:32 -0700 Subject: [PATCH] ART: Fix movnti assembler Movnti was receiving rex prefix before its opcode. Additionally, the 64-bit version was missing the rex.w prefix. Change-Id: Ie5c3bbe109765a0b990cafeeea1ee30329daabd0 Signed-off-by: Razvan A Lupusoru Signed-off-by: Mark Mendell --- compiler/dex/quick/x86/assemble_x86.cc | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/compiler/dex/quick/x86/assemble_x86.cc b/compiler/dex/quick/x86/assemble_x86.cc index a9a02523e..ab1608be9 100644 --- a/compiler/dex/quick/x86/assemble_x86.cc +++ b/compiler/dex/quick/x86/assemble_x86.cc @@ -189,8 +189,8 @@ ENCODING_MAP(Cmp, IS_LOAD, 0, 0, { kX86Mov32MR, kMemReg, IS_STORE | IS_TERTIARY_OP | REG_USE02, { 0, 0, 0x89, 0, 0, 0, 0, 0, false }, "Mov32MR", "[!0r+!1d],!2r" }, { kX86Mov32AR, kArrayReg, IS_STORE | IS_QUIN_OP | REG_USE014, { 0, 0, 0x89, 0, 0, 0, 0, 0, false }, "Mov32AR", "[!0r+!1r<= 4 && !IsByteSecondOperand(entry)) { - rex |= 0x40; // REX.0000 + rex |= REX; // REX.0000 } else if (modrm_is_reg_reg && RegStorage::RegNum(raw_reg_b) >= 4) { - rex |= 0x40; // REX.0000 + rex |= REX; // REX.0000 } } if (w) { - rex |= 0x48; // REX.W000 + rex |= REX_W; // REX.W000 } if (r) { - rex |= 0x44; // REX.0R00 + rex |= REX_R; // REX.0R00 } if (x) { - rex |= 0x42; // REX.00X0 + rex |= REX_X; // REX.00X0 } if (b) { - rex |= 0x41; // REX.000B + rex |= REX_B; // REX.000B } if (entry->skeleton.prefix1 != 0) { if (cu_->target64 && entry->skeleton.prefix1 == THREAD_PREFIX) { -- 2.11.0