summaryrefslogtreecommitdiffstats
path: root/runtime/arch/x86
diff options
context:
space:
mode:
authorMark Mendell <mark.p.mendell@intel.com>2015-04-20 22:10:34 -0400
committerMark Mendell <mark.p.mendell@intel.com>2015-04-21 16:23:15 -0400
commit40741f394b2737e503f2c08be0ae9dd490fb106b (patch)
treed5d9e6d51168e36154de408e2b5d77371bd8c86d /runtime/arch/x86
parentdac1a694e4fd79fd5d5ba95319197a1e42f9f054 (diff)
downloadart-40741f394b2737e503f2c08be0ae9dd490fb106b.zip
art-40741f394b2737e503f2c08be0ae9dd490fb106b.tar.gz
art-40741f394b2737e503f2c08be0ae9dd490fb106b.tar.bz2
[optimizing] Use more X86_64 addressing modes
Allow constant and memory addresses to more X86_64 instructions. Add memory formats to X86_64 instructions to match. Fix a bug in cmpq(CpuRegister, const Address&). Allow mov <addr>,immediate (instruction 0xC7) to be a valid faulting instruction. Change-Id: I5b8a409444426633920cd08e09f687a7afc88a39 Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Diffstat (limited to 'runtime/arch/x86')
-rw-r--r--runtime/arch/x86/fault_handler_x86.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/runtime/arch/x86/fault_handler_x86.cc b/runtime/arch/x86/fault_handler_x86.cc
index 27a4adf..8712506 100644
--- a/runtime/arch/x86/fault_handler_x86.cc
+++ b/runtime/arch/x86/fault_handler_x86.cc
@@ -191,6 +191,7 @@ static uint32_t GetInstructionSize(const uint8_t* pc) {
break;
case 0x81: // group 1, word immediate.
+ case 0xc7: // mov
modrm = *pc++;
has_modrm = true;
immediate_size = operand_size_prefix ? 2 : 4;