[PATCH] D157547: Arm64EC entry/exit thunks, consolidated.
Daniel Paoliello via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 13 13:16:58 PDT 2023
dpaoliello added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64MCInstLower.cpp:37-38
MCSymbol *
AArch64MCInstLower::GetGlobalAddressSymbol(const MachineOperand &MO) const {
const GlobalValue *GV = MO.getGlobal();
----------------
We now also need to call this for constants in case the function is only referenced from a variable (e.g., a VTable) and is never called elsewhere.
I split this function into a new function `GetGlobalValueSymbol`:
```
MCSymbol *
AArch64MCInstLower::GetGlobalAddressSymbol(const MachineOperand &MO) const {
return GetGlobalValueSymbol(MO.getGlobal(), MO.getTargetFlags());
}
MCSymbol *
AArch64MCInstLower::GetGlobalValueSymbol(const GlobalValue *GV, unsigned TargetFlags) const { ... }
```
And then called it from `AArch64AsmPrinter`:
```
const MCExpr *AArch64AsmPrinter::lowerConstant(const Constant *CV) {
if (const GlobalValue *GV = dyn_cast<GlobalValue>(CV))
return MCSymbolRefExpr::create(MCInstLowering.GetGlobalValueSymbol(GV, 0), OutContext);
return AsmPrinter::lowerConstant(CV);
}
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D157547/new/
https://reviews.llvm.org/D157547
More information about the llvm-commits
mailing list