Fixed issue with microMIPS long branch.

llvm-svn: 195975
This commit is contained in:
Zoran Jovanovic 2013-11-30 19:12:28 +00:00
parent 664711188f
commit 9d86e26e62
1 changed files with 3 additions and 1 deletions

View File

@ -437,8 +437,10 @@ bool MipsLongBranch::runOnMachineFunction(MachineFunction &F) {
if (!I->Br || I->HasLongBranch)
continue;
int ShVal = TM.getSubtarget<MipsSubtarget>().inMicroMipsMode() ? 2 : 4;
// Check if offset fits into 16-bit immediate field of branches.
if (!ForceLongBranch && isInt<16>(computeOffset(I->Br) / 4))
if (!ForceLongBranch && isInt<16>(computeOffset(I->Br) / ShVal))
continue;
I->HasLongBranch = true;