diff options
author | Akira Hatanaka <ahatanaka@mips.com> | 2012-11-15 20:05:11 +0000 |
---|---|---|
committer | Akira Hatanaka <ahatanaka@mips.com> | 2012-11-15 20:05:11 +0000 |
commit | 5fdeac326864d3cb3dda3765405eede60c06c5cc (patch) | |
tree | bbdde80a93636c4547735b03958f9a192fca223d /llvm | |
parent | 4b27a64b92625fb19534afde0d32c5ca4c8fbf66 (diff) | |
download | bcm5719-llvm-5fdeac326864d3cb3dda3765405eede60c06c5cc.tar.gz bcm5719-llvm-5fdeac326864d3cb3dda3765405eede60c06c5cc.zip |
Add assertions in MipsLongBranch which check the size of basic blocks.
llvm-svn: 168078
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/lib/Target/Mips/MipsLongBranch.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Target/Mips/MipsLongBranch.cpp b/llvm/lib/Target/Mips/MipsLongBranch.cpp index 5d9f0cffb74..6cd887b0eb9 100644 --- a/llvm/lib/Target/Mips/MipsLongBranch.cpp +++ b/llvm/lib/Target/Mips/MipsLongBranch.cpp @@ -258,7 +258,8 @@ void MipsLongBranch::expandToLongBranch(MBBInfo &I) { BalTgtMBB->addSuccessor(TgtMBB); int64_t TgtAddress = MBBInfos[TgtMBB->getNumber()].Address; - int64_t Offset = TgtAddress - (I.Address + I.Size - 20); + unsigned BalTgtMBBSize = 5; + int64_t Offset = TgtAddress - (I.Address + I.Size - BalTgtMBBSize * 4); int64_t Lo = SignExtend64<16>(Offset & 0xffff); int64_t Hi = SignExtend64<16>(((Offset + 0x8000) >> 16) & 0xffff); @@ -351,6 +352,9 @@ void MipsLongBranch::expandToLongBranch(MBBInfo &I) { BuildMI(*BalTgtMBB, Pos, DL, TII->get(Mips::DADDiu), Mips::SP_64) .addReg(Mips::SP_64).addImm(16)->setIsInsideBundle(); } + + assert(BalTgtMBBSize == BalTgtMBB->size()); + assert(LongBrMBB->size() + BalTgtMBBSize == LongBranchSeqSize); } else { // $longbr: // j $tgt @@ -361,6 +365,8 @@ void MipsLongBranch::expandToLongBranch(MBBInfo &I) { LongBrMBB->addSuccessor(TgtMBB); BuildMI(*LongBrMBB, Pos, DL, TII->get(Mips::J)).addMBB(TgtMBB); BuildMI(*LongBrMBB, Pos, DL, TII->get(Mips::NOP))->setIsInsideBundle(); + + assert(LongBrMBB->size() == LongBranchSeqSize); } if (I.Br->isUnconditionalBranch()) { |