File tree Expand file tree Collapse file tree 1 file changed +7
-4
lines changed
Expand file tree Collapse file tree 1 file changed +7
-4
lines changed Original file line number Diff line number Diff line change @@ -17324,18 +17324,21 @@ SDValue PPCTargetLowering::LowerFRAMEADDR(SDValue Op,
1732417324
1732517325Register PPCTargetLowering::getRegisterByName(const char* RegName, LLT VT,
1732617326 const MachineFunction &MF) const {
17327- bool isPPC64 = Subtarget.isPPC64();
1732817327
17329- bool is64Bit = isPPC64 && VT == LLT::scalar(64);
17330- if (!is64Bit && VT != LLT::scalar(32))
17328+ bool Is64Bit = Subtarget. isPPC64() && VT == LLT::scalar(64);
17329+ if (!Is64Bit && VT != LLT::scalar(32))
1733117330 report_fatal_error("Invalid register global variable type");
1733217331
1733317332 Register Reg = MatchRegisterName(RegName);
1733417333 if (!Reg)
1733517334 report_fatal_error(Twine("Invalid global name register \""
1733617335 + StringRef(RegName) + "\"."));
1733717336
17338- if (!Subtarget.getRegisterInfo()->getReservedRegs(MF).test(Reg))
17337+ // Convert GPR to GP8R register for 64bit.
17338+ if (Is64Bit && StringRef(RegName).starts_with_insensitive("r"))
17339+ Reg = Reg.id() - PPC::R0 + PPC::X0;
17340+
17341+ if (Subtarget.getRegisterInfo()->getReservedRegs(MF).test(Reg))
1733917342 report_fatal_error(Twine("Trying to obtain non-reservable register \"" +
1734017343 StringRef(RegName) + "\"."));
1734117344 return Reg;
You can’t perform that action at this time.
0 commit comments