[PATCH] Added address sanitizer instrumentation for MOV and MOVAPS inline assembly instructions.

Yuri Gorshenin ygorshenin at chromium.org
Wed Mar 5 05:04:26 PST 2014


  PTAL


================
Comment at: lib/Target/X86/AsmParser/X86AsmInstrumentation.h:27
@@ +26,3 @@
+
+  virtual bool TryToInstrumentInstruction(
+      MCInst &Inst,
----------------
Evgeniy Stepanov wrote:
> Maybe simply "InstrumentInstruction"?
> Also, please add some comments.
> - is it called before or after the original instruction, or maybe it is required to emit the original instruction to the streamer as well?
> - can the original instruction be modified? Turn it into a const reference if not?
> 
Done.

================
Comment at: lib/Target/X86/AsmParser/X86AsmParser.cpp:2244
@@ +2243,3 @@
+    // FIXME: find out a better place for instrumentation.
+    Instrumentation
+        ->TryToInstrumentInstruction(Inst, Operands, getContext(), Out);
----------------
Evgeniy Stepanov wrote:
> It looks like this code can do instrumentation even if the instruction itself is not emitted due to MatchingInlineAsm (btw, why is not emitted in that case??).
> 
MatchAndEmitInstruction() is called from AsmParser with ParsingInlineAsm parameter. Comment to this parameter says that it's true when MS-style assembly is parsed, so it's not our case.


http://llvm-reviews.chandlerc.com/D2881



More information about the llvm-commits mailing list