aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorAlexandre Ganea <alexandre.ganea@ubisoft.com>2020-06-17 13:26:10 -0400
committerAlexandre Ganea <alexandre.ganea@ubisoft.com>2020-06-17 13:44:38 -0400
commitacb30f6856c34b929b30bfd76dc938a1087af0a9 (patch)
tree34b4210438728093b01cbf21f83421839480250a /clang/lib/Frontend/CompilerInvocation.cpp
parentad879b31f054116a9df4efceddee967a2b6247bb (diff)
downloadllvm-acb30f6856c34b929b30bfd76dc938a1087af0a9.zip
llvm-acb30f6856c34b929b30bfd76dc938a1087af0a9.tar.gz
llvm-acb30f6856c34b929b30bfd76dc938a1087af0a9.tar.bz2
[X86] For 32-bit targets, emit two-byte NOP when possible
In order to support hot-patching, we need to make sure the first emitted instruction in a function is a two-byte+ op. This is already the case on x86_64, which seems to always emit two-byte+ ops. However on 32-bit targets this wasn't the case. PATCHABLE_OP now lowers to a XCHG AX, AX, (66 90) like MSVC does. However when targetting pentium3 (/arch:SSE) or i386 (/arch:IA32) targets, we generate MOV EDI,EDI (8B FF) like MSVC does. This is for compatiblity reasons with older tools that rely on this two byte pattern. Differential Revision: https://reviews.llvm.org/D81301
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions