aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/AssumptionCache.cpp
diff options
context:
space:
mode:
authorFangrui Song <i@maskray.me>2023-11-27 07:27:50 -0800
committerGitHub <noreply@github.com>2023-11-27 07:27:50 -0800
commitc449460d8a657e46500ad12be457928207207e3e (patch)
tree07d257463efc0d8c983d981ff4fceb01fb4b4494 /llvm/lib/Analysis/AssumptionCache.cpp
parentbf95a0cd2073b6f5bd2c00bc645be00d38bf49a6 (diff)
downloadllvm-c449460d8a657e46500ad12be457928207207e3e.zip
llvm-c449460d8a657e46500ad12be457928207207e3e.tar.gz
llvm-c449460d8a657e46500ad12be457928207207e3e.tar.bz2
ms inline asm: Fix {call,jmp} fptr (#73207)
https://reviews.llvm.org/D151863 (2023-05) removed `BaseReg = BaseReg ? BaseReg : 1` (introduced in commit 175d0aeef3725ce17032e9ef76e018139f2f52f0 (2013)) and caused a regression: ensuring a non-zero `BaseReg` was to treat `static void (*fptr)(); __asm { call fptr }` as non-`AbsMem` `AsmOperandClass` and generate `call $0`/`callq *fptr(%rip)` instead of `call ${0:P}`/`callq *fptr` (The asm template argument modifier `P` is for call targets, while no modifier is used by other instructions like `mov rax, fptr`) This patch reinstates the BaseReg-setting statement but places it inside `if (IsGlobalLV)` for clarify. The special case is unfortunate, but we also have special case in similar places (https://reviews.llvm.org/D149920). Fix: #73033
Diffstat (limited to 'llvm/lib/Analysis/AssumptionCache.cpp')
0 files changed, 0 insertions, 0 deletions