mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Fix assembly parsing and encoding of the pushf and popf family of
instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104231 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1993,12 +1993,12 @@ bool X86InstrInfo::copyRegToReg(MachineBasicBlock &MBB,
|
||||
if (SrcReg != X86::EFLAGS)
|
||||
return false;
|
||||
if (DestRC == &X86::GR64RegClass || DestRC == &X86::GR64_NOSPRegClass) {
|
||||
BuildMI(MBB, MI, DL, get(X86::PUSHFQ64));
|
||||
BuildMI(MBB, MI, DL, get(X86::PUSHF64));
|
||||
BuildMI(MBB, MI, DL, get(X86::POP64r), DestReg);
|
||||
return true;
|
||||
} else if (DestRC == &X86::GR32RegClass ||
|
||||
DestRC == &X86::GR32_NOSPRegClass) {
|
||||
BuildMI(MBB, MI, DL, get(X86::PUSHFD));
|
||||
BuildMI(MBB, MI, DL, get(X86::PUSHF32));
|
||||
BuildMI(MBB, MI, DL, get(X86::POP32r), DestReg);
|
||||
return true;
|
||||
}
|
||||
@@ -2007,12 +2007,12 @@ bool X86InstrInfo::copyRegToReg(MachineBasicBlock &MBB,
|
||||
return false;
|
||||
if (SrcRC == &X86::GR64RegClass || DestRC == &X86::GR64_NOSPRegClass) {
|
||||
BuildMI(MBB, MI, DL, get(X86::PUSH64r)).addReg(SrcReg);
|
||||
BuildMI(MBB, MI, DL, get(X86::POPFQ));
|
||||
BuildMI(MBB, MI, DL, get(X86::POPF64));
|
||||
return true;
|
||||
} else if (SrcRC == &X86::GR32RegClass ||
|
||||
DestRC == &X86::GR32_NOSPRegClass) {
|
||||
BuildMI(MBB, MI, DL, get(X86::PUSH32r)).addReg(SrcReg);
|
||||
BuildMI(MBB, MI, DL, get(X86::POPFD));
|
||||
BuildMI(MBB, MI, DL, get(X86::POPF32));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user