summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2007-09-17 20:15:38 +0000
committerDale Johannesen <dalej@apple.com>2007-09-17 20:15:38 +0000
commitff7e4437925549640672f4ea60a7fbd87b77269c (patch)
treef2bacdb21a454919220090a8a257c39a8eef2ea4 /llvm/lib
parent9d1af9b63daa4c1bc2f40ecbbfec13fceb3e3107 (diff)
downloadbcm5719-llvm-ff7e4437925549640672f4ea60a7fbd87b77269c.tar.gz
bcm5719-llvm-ff7e4437925549640672f4ea60a7fbd87b77269c.zip
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.) llvm-svn: 42049
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86FloatingPoint.cpp2
-rw-r--r--llvm/lib/Target/X86/X86RegisterInfo.cpp6
2 files changed, 3 insertions, 5 deletions
diff --git a/llvm/lib/Target/X86/X86FloatingPoint.cpp b/llvm/lib/Target/X86/X86FloatingPoint.cpp
index ac6d6145e51..179a71e03fa 100644
--- a/llvm/lib/Target/X86/X86FloatingPoint.cpp
+++ b/llvm/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/llvm/lib/Target/X86/X86RegisterInfo.cpp b/llvm/lib/Target/X86/X86RegisterInfo.cpp
index 4a8c275bc54..df50efe896a 100644
--- a/llvm/lib/Target/X86/X86RegisterInfo.cpp
+++ b/llvm/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;
OpenPOWER on IntegriCloud