diff options
author | Craig Topper <craig.topper@intel.com> | 2017-12-15 21:18:06 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2017-12-15 21:18:06 +0000 |
commit | 6b8ac481f12bebd9e741533ad86c2fe2d8869d4d (patch) | |
tree | 45e6b78ed1cceb548bc1ff4e6e079eb079093b34 | |
parent | 422ed23298a5666acd5dc15813d9389c26a3725e (diff) | |
download | bcm5719-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.cpp | 2 |
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)); |