mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-10-02 02:55:35 +00:00
Remove RSTRegClass case from loadRegFromStackSlot
and storeRegToStackSlot. Evan and I concluded this should never be needed and it appears to be true. (It if is needed, adjustment would be needed for long double to work.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42049 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
161660e6d2
commit
ca8035e356
@ -608,7 +608,7 @@ void FPS::handleOneArgFP(MachineBasicBlock::iterator &I) {
|
|||||||
// If we have one _and_ we don't want to pop the operand, duplicate the value
|
// If we have one _and_ we don't want to pop the operand, duplicate the value
|
||||||
// on the stack instead of moving it. This ensure that popping the value is
|
// on the stack instead of moving it. This ensure that popping the value is
|
||||||
// always ok.
|
// always ok.
|
||||||
// Ditto FISTTP16m, FISTTP32m, FISTTP64m.
|
// Ditto FISTTP16m, FISTTP32m, FISTTP64m, ST_FpP80m.
|
||||||
//
|
//
|
||||||
if (!KillsSrc &&
|
if (!KillsSrc &&
|
||||||
(MI->getOpcode() == X86::IST_Fp64m32 ||
|
(MI->getOpcode() == X86::IST_Fp64m32 ||
|
||||||
|
@ -170,9 +170,7 @@ void X86RegisterInfo::storeRegToStackSlot(MachineBasicBlock &MBB,
|
|||||||
Opc = X86::MOV16_mr;
|
Opc = X86::MOV16_mr;
|
||||||
} else if (RC == &X86::RFP80RegClass) {
|
} else if (RC == &X86::RFP80RegClass) {
|
||||||
Opc = X86::ST_FpP80m; // pops
|
Opc = X86::ST_FpP80m; // pops
|
||||||
} else if (RC == &X86::RFP64RegClass || RC == &X86::RSTRegClass) {
|
} else if (RC == &X86::RFP64RegClass) {
|
||||||
/// FIXME spilling long double values as 64 bit does not work.
|
|
||||||
/// We need RST80, unfortunately.
|
|
||||||
Opc = X86::ST_Fp64m;
|
Opc = X86::ST_Fp64m;
|
||||||
} else if (RC == &X86::RFP32RegClass) {
|
} else if (RC == &X86::RFP32RegClass) {
|
||||||
Opc = X86::ST_Fp32m;
|
Opc = X86::ST_Fp32m;
|
||||||
@ -211,7 +209,7 @@ void X86RegisterInfo::loadRegFromStackSlot(MachineBasicBlock &MBB,
|
|||||||
Opc = X86::MOV16_rm;
|
Opc = X86::MOV16_rm;
|
||||||
} else if (RC == &X86::RFP80RegClass) {
|
} else if (RC == &X86::RFP80RegClass) {
|
||||||
Opc = X86::LD_Fp80m;
|
Opc = X86::LD_Fp80m;
|
||||||
} else if (RC == &X86::RFP64RegClass || RC == &X86::RSTRegClass) {
|
} else if (RC == &X86::RFP64RegClass) {
|
||||||
Opc = X86::LD_Fp64m;
|
Opc = X86::LD_Fp64m;
|
||||||
} else if (RC == &X86::RFP32RegClass) {
|
} else if (RC == &X86::RFP32RegClass) {
|
||||||
Opc = X86::LD_Fp32m;
|
Opc = X86::LD_Fp32m;
|
||||||
|
Loading…
Reference in New Issue
Block a user