x86 fault handler does not know about movb
mov byte instruction is not known for fault handler and therefore
it cannot catch null pointer exception represented by this instruction.
As a result implicit null check does not work.
Change-Id: I45d6056f838d1568fce3de58218437fc12d1c45b
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
diff --git a/runtime/arch/x86/fault_handler_x86.cc b/runtime/arch/x86/fault_handler_x86.cc
index fb26f5f..ee005e8 100644
--- a/runtime/arch/x86/fault_handler_x86.cc
+++ b/runtime/arch/x86/fault_handler_x86.cc
@@ -150,8 +150,8 @@
if (two_byte) {
switch (opcode) {
- case 0x10: // vmovsd/ss
- case 0x11: // vmovsd/ss
+ case 0x10: // vmovsd/ss
+ case 0x11: // vmovsd/ss
case 0xb6: // movzx
case 0xb7:
case 0xbe: // movsx
@@ -165,7 +165,8 @@
}
} else {
switch (opcode) {
- case 0x89: // mov
+ case 0x88: // mov byte
+ case 0x89: // mov
case 0x8b:
case 0x38: // cmp with memory.
case 0x39: