diff options
author | Dale Johannesen <dalej@apple.com> | 2007-09-17 20:15:38 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2007-09-17 20:15:38 +0000 |
commit | ca8035e3569afd5a8d0ef406b82dad1b7e673683 (patch) | |
tree | 1b5137f7ce03ff3edb5e20ef89d405a338a747b9 /lib/Target | |
parent | 161660e6d282515252866a0a12642211cf5639be (diff) | |
download | external_llvm-ca8035e3569afd5a8d0ef406b82dad1b7e673683.zip external_llvm-ca8035e3569afd5a8d0ef406b82dad1b7e673683.tar.gz external_llvm-ca8035e3569afd5a8d0ef406b82dad1b7e673683.tar.bz2 |
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
Diffstat (limited to 'lib/Target')
-rw-r--r-- | lib/Target/X86/X86FloatingPoint.cpp | 2 | ||||
-rw-r--r-- | lib/Target/X86/X86RegisterInfo.cpp | 6 |
2 files changed, 3 insertions, 5 deletions
diff --git a/lib/Target/X86/X86FloatingPoint.cpp b/lib/Target/X86/X86FloatingPoint.cpp index ac6d614..179a71e 100644 --- a/lib/Target/X86/X86FloatingPoint.cpp +++ b/lib/Target/X86/X86FloatingPoint.cpp @@ -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 // on the stack instead of moving it. This ensure that popping the value is // always ok. - // Ditto FISTTP16m, FISTTP32m, FISTTP64m. + // Ditto FISTTP16m, FISTTP32m, FISTTP64m, ST_FpP80m. // if (!KillsSrc && (MI->getOpcode() == X86::IST_Fp64m32 || diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp index 4a8c275..df50efe 100644 --- a/lib/Target/X86/X86RegisterInfo.cpp +++ b/lib/Target/X86/X86RegisterInfo.cpp @@ -170,9 +170,7 @@ void X86RegisterInfo::storeRegToStackSlot(MachineBasicBlock &MBB, Opc = X86::MOV16_mr; } else if (RC == &X86::RFP80RegClass) { Opc = X86::ST_FpP80m; // pops - } else if (RC == &X86::RFP64RegClass || RC == &X86::RSTRegClass) { - /// FIXME spilling long double values as 64 bit does not work. - /// We need RST80, unfortunately. + } else if (RC == &X86::RFP64RegClass) { Opc = X86::ST_Fp64m; } else if (RC == &X86::RFP32RegClass) { Opc = X86::ST_Fp32m; @@ -211,7 +209,7 @@ void X86RegisterInfo::loadRegFromStackSlot(MachineBasicBlock &MBB, Opc = X86::MOV16_rm; } else if (RC == &X86::RFP80RegClass) { Opc = X86::LD_Fp80m; - } else if (RC == &X86::RFP64RegClass || RC == &X86::RSTRegClass) { + } else if (RC == &X86::RFP64RegClass) { Opc = X86::LD_Fp64m; } else if (RC == &X86::RFP32RegClass) { Opc = X86::LD_Fp32m; |