mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-24 08:33:39 +00:00
Implement FP regs spills / restores
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76024 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c79465df08
commit
92ac82abb4
@ -66,6 +66,10 @@ void SystemZInstrInfo::storeRegToStackSlot(MachineBasicBlock &MBB,
|
||||
else if (RC == &SystemZ::GR64RegClass ||
|
||||
RC == &SystemZ::ADDR64RegClass) {
|
||||
Opc = SystemZ::MOV64mr;
|
||||
} else if (RC == &SystemZ::FP32RegClass) {
|
||||
Opc = SystemZ::FMOV32mr;
|
||||
} else if (RC == &SystemZ::FP64RegClass) {
|
||||
Opc = SystemZ::FMOV64mr;
|
||||
} else
|
||||
assert(0 && "Unsupported regclass to store");
|
||||
|
||||
@ -87,6 +91,10 @@ void SystemZInstrInfo::loadRegFromStackSlot(MachineBasicBlock &MBB,
|
||||
else if (RC == &SystemZ::GR64RegClass ||
|
||||
RC == &SystemZ::ADDR64RegClass) {
|
||||
Opc = SystemZ::MOV64rm;
|
||||
} else if (RC == &SystemZ::FP32RegClass) {
|
||||
Opc = SystemZ::FMOV32rm;
|
||||
} else if (RC == &SystemZ::FP64RegClass) {
|
||||
Opc = SystemZ::FMOV64rm;
|
||||
} else
|
||||
assert(0 && "Unsupported regclass to store");
|
||||
|
||||
@ -369,6 +377,12 @@ SystemZInstrInfo::getLongDispOpc(unsigned Opc) const {
|
||||
case SystemZ::UCMP32rm:
|
||||
Opc = SystemZ::UCMP32rmy;
|
||||
break;
|
||||
case SystemZ::FMOV32mr:
|
||||
Opc = SystemZ::FMOV32mry;
|
||||
break;
|
||||
case SystemZ::FMOV64mr:
|
||||
Opc = SystemZ::FMOV64mry;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user