Stylie777 wrote:

> re: https://github.com/llvm/llvm-project/issues/137802, do you know why we 
> have this discontinuity between PAuth and PAuth_LR'd frames? Why do we emit 
> .cfi_negate_ra_state_with_pc before the pacibsppc, when all other CFI's take 
> effect after the preceding instruction has retired?

When I originally implemented this, it was to do with how the ABI was 
interpreted. It stated that `.cfi_negate_ra_state_with_pc` needed to be in the 
same Debug Frame, which I interpreted as before the signing instruction. This 
ensured the PC value used was the PC value that referred to the signing 
instruction. For `.cfi_negate_ra_state` having it before the signing 
instruction was wrong, but it was decided in 
https://github.com/llvm/llvm-project/pull/137795 to leave 
`.cfi_negate_ra_state_with_pc` as is because putting it after caused a 
wrong-code bug in C++ (See 
https://github.com/llvm/llvm-project/pull/137795#issuecomment-2838779129).

It was during these discussions that it was raised in the ABI to change how we 
handle it to `.cfi_set_ra_sign_state`.



https://github.com/llvm/llvm-project/pull/205442
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to