Skip to content

Commit c7fddf5

Browse files
authored
[ARM] Prevent converting virtual register to MCRegister. (#122862)
MCRegister should only be used for physical reigsters.
1 parent b1edfa1 commit c7fddf5

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

llvm/lib/Target/ARM/ThumbRegisterInfo.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ static void emitThumbRegPlusImmInReg(
139139
return;
140140
}
141141

142-
bool isHigh = !isARMLowRegister(DestReg) ||
142+
bool isHigh = DestReg.isVirtual() || !isARMLowRegister(DestReg) ||
143143
(BaseReg != 0 && !isARMLowRegister(BaseReg));
144144
bool isSub = false;
145145
// Subtract doesn't have high register version. Load the negative value
@@ -153,7 +153,7 @@ static void emitThumbRegPlusImmInReg(
153153
Register LdReg = DestReg;
154154
if (DestReg == ARM::SP)
155155
assert(BaseReg == ARM::SP && "Unexpected!");
156-
if (!isARMLowRegister(DestReg) && !DestReg.isVirtual())
156+
if (!DestReg.isVirtual() && !isARMLowRegister(DestReg))
157157
LdReg = MF.getRegInfo().createVirtualRegister(&ARM::tGPRRegClass);
158158

159159
if (NumBytes <= 255 && NumBytes >= 0 && CanChangeCC) {

0 commit comments

Comments
 (0)