Handle CALL_RM like CALL for 32-bit ELF. If a function call has the
strictfp attribute, its opcode changes from CALL to CALL_RM. If a
call uses the secure PLT, then it must getGlobalBaseReg() to set r30.
After I rebuilt xenocara/lib/pixman with this change, Xorg stopped
crashing on my macppc. pixman uses cc -ftrapping-math which puts
strictfp on each function call.
https://github.com/llvm/llvm-project/pull/72758
ok jca@ tobhe@ deraadt@
// generate secure plt code for TLS symbols.
getGlobalBaseReg();
} break;
- case PPCISD::CALL: {
+ case PPCISD::CALL:
+ case PPCISD::CALL_RM: {
if (PPCLowering->getPointerTy(CurDAG->getDataLayout()) != MVT::i32 ||
!TM.isPositionIndependent() || !Subtarget->isSecurePlt() ||
!Subtarget->isTargetELF())