mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-14 15:39:06 +00:00
There is one more patch to finish large frames. Make sure we assert
on code that has large frames which will not yet compile correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170673 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
82a36e2b59
commit
0fd8313250
@ -146,6 +146,10 @@ void Mips16RegisterInfo::eliminateFI(MachineBasicBlock::iterator II,
|
||||
|
||||
DEBUG(errs() << "Offset : " << Offset << "\n" << "<--------->\n");
|
||||
|
||||
if (!MI.isDebugValue() && ( ((FrameReg != Mips::SP) && !isInt<16>(Offset)) ||
|
||||
((FrameReg == Mips::SP) && !isInt<15>(Offset)) )) {
|
||||
assert(false && "frame offset does not fit in instruction");
|
||||
}
|
||||
MI.getOperand(OpNo).ChangeToRegister(FrameReg, false);
|
||||
MI.getOperand(OpNo + 1).ChangeToImmediate(Offset);
|
||||
|
||||
|
@ -298,6 +298,10 @@ def HI16 : SDNodeXForm<imm, [{
|
||||
// e.g. addi, andi
|
||||
def immSExt16 : PatLeaf<(imm), [{ return isInt<16>(N->getSExtValue()); }]>;
|
||||
|
||||
// Node immediate fits as 15-bit sign extended on target immediate.
|
||||
// e.g. addi, andi
|
||||
def immSExt15 : PatLeaf<(imm), [{ return isInt<15>(N->getSExtValue()); }]>;
|
||||
|
||||
// Node immediate fits as 16-bit zero extended on target immediate.
|
||||
// The LO16 param means that only the lower 16 bits of the node
|
||||
// immediate are caught.
|
||||
|
Loading…
Reference in New Issue
Block a user