From: Dylan McKay Date: Sat, 10 Dec 2016 05:48:48 +0000 (+0000) Subject: [AVR] Fix a bunch of incorrect assertion messages X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a6fea2c725312ec4d39ef30a29250abb81fa9285;p=llvm [AVR] Fix a bunch of incorrect assertion messages These should've been checking whether the immediate is a 6-bit unsigned integer. If the immediate was '63', this would cause an assertion error which shouldn't have occurred. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@289315 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/AVR/AVRExpandPseudoInsts.cpp b/lib/Target/AVR/AVRExpandPseudoInsts.cpp index ea4a179c00a..c19eac64aa3 100644 --- a/lib/Target/AVR/AVRExpandPseudoInsts.cpp +++ b/lib/Target/AVR/AVRExpandPseudoInsts.cpp @@ -654,7 +654,7 @@ bool AVRExpandPseudo::expand(Block &MBB, BlockIt MBBI) { OpHi = AVR::LDDRdPtrQ; TRI->splitReg(DstReg, DstLoReg, DstHiReg); - assert(Imm < 63 && "Offset is out of range"); + assert(Imm <= 63 && "Offset is out of range"); unsigned TmpLoReg = DstLoReg; unsigned TmpHiReg = DstHiReg; @@ -1016,7 +1016,7 @@ bool AVRExpandPseudo::expand(Block &MBB, BlockIt MBBI) { OpHi = AVR::STDPtrQRr; TRI->splitReg(SrcReg, SrcLoReg, SrcHiReg); - assert(Imm < 63 && "Offset is out of range"); + assert(Imm <= 63 && "Offset is out of range"); auto MIBLO = buildMI(MBB, MBBI, OpLo) .addReg(DstReg) @@ -1046,7 +1046,7 @@ bool AVRExpandPseudo::expand(Block &MBB, BlockIt MBBI) { OpHi = AVR::INRdA; TRI->splitReg(DstReg, DstLoReg, DstHiReg); - assert(Imm < 63 && "Address is out of range"); + assert(Imm <= 63 && "Address is out of range"); auto MIBLO = buildMI(MBB, MBBI, OpLo) .addReg(DstLoReg, RegState::Define | getDeadRegState(DstIsDead)) @@ -1074,7 +1074,7 @@ bool AVRExpandPseudo::expand(Block &MBB, BlockIt MBBI) { OpHi = AVR::OUTARr; TRI->splitReg(SrcReg, SrcLoReg, SrcHiReg); - assert(Imm < 63 && "Address is out of range"); + assert(Imm <= 63 && "Address is out of range"); // 16 bit I/O writes need the high byte first auto MIBHI = buildMI(MBB, MBBI, OpHi) diff --git a/lib/Target/AVR/AVRRegisterInfo.cpp b/lib/Target/AVR/AVRRegisterInfo.cpp index 7f5002f1608..48798bd4a1d 100644 --- a/lib/Target/AVR/AVRRegisterInfo.cpp +++ b/lib/Target/AVR/AVRRegisterInfo.cpp @@ -193,7 +193,7 @@ void AVRRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II, // If the offset is too big we have to adjust and restore the frame pointer // to materialize a valid load/store with displacement. //:TODO: consider using only one adiw/sbiw chain for more than one frame index - if (Offset >= 63) { + if (Offset > 63) { unsigned AddOpc = AVR::ADIWRdK, SubOpc = AVR::SBIWRdK; int AddOffset = Offset - 63 + 1;