mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-04 07:32:13 +00:00
Do not insert instructions in reverse order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135464 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9710f06d66
commit
a308c670b4
@ -917,15 +917,16 @@ MipsTargetLowering::EmitAtomicBinaryPartword(MachineInstr *MI,
|
||||
// sra dest,tmp12,24
|
||||
BB = exitMBB;
|
||||
int64_t ShiftImm = (Size == 1) ? 24 : 16;
|
||||
// reverse order
|
||||
BuildMI(*BB, BB->begin(), dl, TII->get(Mips::SRA), Dest)
|
||||
.addReg(Tmp12).addImm(ShiftImm);
|
||||
BuildMI(*BB, BB->begin(), dl, TII->get(Mips::SLL), Tmp12)
|
||||
.addReg(Tmp11).addImm(ShiftImm);
|
||||
BuildMI(*BB, BB->begin(), dl, TII->get(Mips::SRL), Tmp11)
|
||||
.addReg(Tmp10).addReg(Shift);
|
||||
BuildMI(*BB, BB->begin(), dl, TII->get(Mips::AND), Tmp10)
|
||||
|
||||
MachineBasicBlock::iterator II = BB->begin();
|
||||
BuildMI(*BB, II, dl, TII->get(Mips::AND), Tmp10)
|
||||
.addReg(Oldval).addReg(Mask);
|
||||
BuildMI(*BB, II, dl, TII->get(Mips::SRL), Tmp11)
|
||||
.addReg(Tmp10).addReg(Shift);
|
||||
BuildMI(*BB, II, dl, TII->get(Mips::SLL), Tmp12)
|
||||
.addReg(Tmp11).addImm(ShiftImm);
|
||||
BuildMI(*BB, II, dl, TII->get(Mips::SRA), Dest)
|
||||
.addReg(Tmp12).addImm(ShiftImm);
|
||||
|
||||
MI->eraseFromParent(); // The instruction is gone now.
|
||||
|
||||
@ -1114,13 +1115,14 @@ MipsTargetLowering::EmitAtomicCmpSwapPartword(MachineInstr *MI,
|
||||
// sra dest,tmp9,24
|
||||
BB = exitMBB;
|
||||
int64_t ShiftImm = (Size == 1) ? 24 : 16;
|
||||
// reverse order
|
||||
BuildMI(*BB, BB->begin(), dl, TII->get(Mips::SRA), Dest)
|
||||
.addReg(Tmp9).addImm(ShiftImm);
|
||||
BuildMI(*BB, BB->begin(), dl, TII->get(Mips::SLL), Tmp9)
|
||||
.addReg(Tmp8).addImm(ShiftImm);
|
||||
BuildMI(*BB, BB->begin(), dl, TII->get(Mips::SRL), Tmp8)
|
||||
|
||||
MachineBasicBlock::iterator II = BB->begin();
|
||||
BuildMI(*BB, II, dl, TII->get(Mips::SRL), Tmp8)
|
||||
.addReg(Oldval4).addReg(Shift);
|
||||
BuildMI(*BB, II, dl, TII->get(Mips::SLL), Tmp9)
|
||||
.addReg(Tmp8).addImm(ShiftImm);
|
||||
BuildMI(*BB, II, dl, TII->get(Mips::SRA), Dest)
|
||||
.addReg(Tmp9).addImm(ShiftImm);
|
||||
|
||||
MI->eraseFromParent(); // The instruction is gone now.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user