================ @@ -1125,6 +1130,10 @@ Register SparcTargetLowering::getRegisterByName(const char* RegName, LLT VT, .Case("g4", SP::G4).Case("g5", SP::G5).Case("g6", SP::G6).Case("g7", SP::G7) .Default(0); + const SparcRegisterInfo *TRI = Subtarget->getRegisterInfo(); + if (!TRI->isReservedReg(MF, Reg)) + Reg = 0; ---------------- s-barannikov wrote:
I think we should follow gcc as much as possible. Some info can be found [here](https://gcc.gnu.org/onlinedocs/gcc/Global-Register-Variables.html). In particular, gcc does not seem to require -ffixed-reg option for a register used in 'register asm' construct (global or local). Reserving an ABI register does not prohibit function calls either. I've been only able to get an error when trying to reserve the frame pointer. https://github.com/llvm/llvm-project/pull/74927 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits