Pull in r191711 from upstream llvm trunk:
The X86FixupLEAs pass for Intel Atom must not call convertToThreeAddress on ADD16rr opcodes, if src1 != src, since that would cause convertToThreeAddress to try to create a virtual register. This is not permitted after register allocation, which is when the X86FixupLEAs pass runs. This patch fixes PR16785. Pull in r191715 from upstream llvm trunk: Forgot to add a break statement. This should enable building the x11-toolskits/libXaw port with CPUTYPE=atom. Approved by: re (gjb) Reported by: Kenta Suzumoto <kentas@hush.com> MFC after: 3 days
This commit is contained in:
parent
05d98029e9
commit
1f27f9b50b
@ -125,6 +125,15 @@ FixupLEAPass::postRAConvertToLEA(MachineFunction::iterator &MFI,
|
||||
// which requires isImm() to be true
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
case X86::ADD16rr:
|
||||
case X86::ADD16rr_DB:
|
||||
if (MI->getOperand(1).getReg() != MI->getOperand(2).getReg()) {
|
||||
// if src1 != src2, then convertToThreeAddress will
|
||||
// need to create a Virtual register, which we cannot do
|
||||
// after register allocation.
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return TII->convertToThreeAddress(MFI, MBBI, 0);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user