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:
Anton Korobeynikov 2009-07-16 14:21:41 +00:00
parent c79465df08
commit 92ac82abb4

View File

@ -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;
}