[llvm] [FMV][GlobalOpt] Statically resolve calls to versioned functions. (PR #87939)

Alexandros Lamprineas via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 22 09:56:17 PST 2025


labrinea wrote:

I am thinking that the SPECRES instructions would trap when executed from EL0 on Darwin too, just like [this example](https://github.com/llvm/llvm-project/pull/87939#issuecomment-2603203462). We just don't have a bot to catch it.

My reading of ArmARM makes me think that LS64 is also unusable from EL0, but I may be wrong:
> SCTLR_EL1.EnALS, bit [56] : When FEAT_LS64 is implemented:
>   When the Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}, traps execution of an LD64B or ST64B instruction at EL0 to EL1.
>
> SCTLR_EL1.EnAS0, bit [55] : When FEAT_LS64_ACCDATA is implemented:
>   When the Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}, traps execution of an ST64BV0 instruction at EL0 to EL1.
>
> SCTLR_EL1.EnASR, bit [54] : When FEAT_LS64_V is implemented:
>   When the Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}, traps execution of an ST64BV instruction at EL0 to EL1.
 
 The pseudocode in CheckLDST64BEnabled(), CheckST64BV0Enabled() and CheckST64BVEnabled() suggests the same.
 
 So perhaps we should remove those features. I am trying to clarify internally.

https://github.com/llvm/llvm-project/pull/87939


More information about the llvm-commits mailing list