mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Fix the PowerPC JIT-only failure on UnitTests/Vector/sumarray-dbl, which is
really a bad codegen bug that LLC happens to get lucky with. I must chat with Nate for the proper fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28213 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
90db0358bb
commit
3e6a35076e
@ -506,11 +506,11 @@ void PPCRegisterInfo::emitPrologue(MachineFunction &MF) const {
|
|||||||
// If there is a preferred stack alignment, align R1 now
|
// If there is a preferred stack alignment, align R1 now
|
||||||
if (MaxAlign > TargetAlign) {
|
if (MaxAlign > TargetAlign) {
|
||||||
assert(isPowerOf2_32(MaxAlign) && MaxAlign < 32767 && "Invalid alignment!");
|
assert(isPowerOf2_32(MaxAlign) && MaxAlign < 32767 && "Invalid alignment!");
|
||||||
assert(isInt16(MaxAlign-NumBytes) && "Unhandled stack size and alignment!");
|
assert(isInt16(0-NumBytes) && "Unhandled stack size and alignment!");
|
||||||
BuildMI(MBB, MBBI, PPC::RLWINM, 4, PPC::R0)
|
BuildMI(MBB, MBBI, PPC::RLWINM, 4, PPC::R0)
|
||||||
.addReg(PPC::R1).addImm(0).addImm(32-Log2_32(MaxAlign)).addImm(31);
|
.addReg(PPC::R1).addImm(0).addImm(32-Log2_32(MaxAlign)).addImm(31);
|
||||||
BuildMI(MBB, MBBI, PPC::SUBFIC,2,PPC::R0).addReg(PPC::R0)
|
BuildMI(MBB, MBBI, PPC::SUBFIC,2,PPC::R0).addReg(PPC::R0)
|
||||||
.addImm(MaxAlign-NumBytes);
|
.addImm(0-NumBytes);
|
||||||
BuildMI(MBB, MBBI, PPC::STWUX, 3)
|
BuildMI(MBB, MBBI, PPC::STWUX, 3)
|
||||||
.addReg(PPC::R1).addReg(PPC::R1).addReg(PPC::R0);
|
.addReg(PPC::R1).addReg(PPC::R1).addReg(PPC::R0);
|
||||||
} else if (NumBytes <= 32768) {
|
} else if (NumBytes <= 32768) {
|
||||||
|
Loading…
Reference in New Issue
Block a user