summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2017-12-15 21:18:06 +0000
committerCraig Topper <craig.topper@intel.com>2017-12-15 21:18:06 +0000
commit6b8ac481f12bebd9e741533ad86c2fe2d8869d4d (patch)
tree45e6b78ed1cceb548bc1ff4e6e079eb079093b34
parent422ed23298a5666acd5dc15813d9389c26a3725e (diff)
downloadbcm5719-llvm-6b8ac481f12bebd9e741533ad86c2fe2d8869d4d.tar.gz
bcm5719-llvm-6b8ac481f12bebd9e741533ad86c2fe2d8869d4d.zip
[X86] Use AND32ri8 instead of AND64ri8 in Asan code in EmitCallAsanReport for 32-bit mode.
This seemed to work due to a quirk in the X86 MC encoder that didn't emit a REX byte that the AND64ri8 implies when in 32-bit mode. This made the encoding the same as AND32ri8. I tried to add an assert to catch the dropped REX prefix that caught this. llvm-svn: 320864
-rw-r--r--llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp
index 1c38757b4b0..2c376fd062c 100644
--- a/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp
+++ b/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp
@@ -610,7 +610,7 @@ private:
EmitInstruction(Out, MCInstBuilder(X86::CLD));
EmitInstruction(Out, MCInstBuilder(X86::MMX_EMMS));
- EmitInstruction(Out, MCInstBuilder(X86::AND64ri8)
+ EmitInstruction(Out, MCInstBuilder(X86::AND32ri8)
.addReg(X86::ESP)
.addReg(X86::ESP)
.addImm(-16));
OpenPOWER on IntegriCloud