aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Target/X86/X86RegisterInfo.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp
index 571bef18db..cf31167061 100644
--- a/lib/Target/X86/X86RegisterInfo.cpp
+++ b/lib/Target/X86/X86RegisterInfo.cpp
@@ -57,10 +57,14 @@ void X86RegisterInfo::storeRegToStackSlot(MachineBasicBlock &MBB,
Opc = X86::MOV16mr;
} else if (RC == &X86::RFPRegClass || RC == &X86::RSTRegClass) {
Opc = X86::FpST64m;
- } else if (RC == &X86::FR32RegClass || RC == &X86::V4F4RegClass) {
+ } else if (RC == &X86::FR32RegClass) {
Opc = X86::MOVSSmr;
- } else if (RC == &X86::FR64RegClass || RC == &X86::V2F8RegClass) {
+ } else if (RC == &X86::FR64RegClass) {
Opc = X86::MOVSDmr;
+ } else if (RC == &X86::V4F4RegClass) {
+ Opc = X86::MOVAPSmr;
+ } else if (RC == &X86::V2F8RegClass) {
+ Opc = X86::MOVAPDmr;
} else {
assert(0 && "Unknown regclass");
abort();
@@ -81,10 +85,14 @@ void X86RegisterInfo::loadRegFromStackSlot(MachineBasicBlock &MBB,
Opc = X86::MOV16rm;
} else if (RC == &X86::RFPRegClass || RC == &X86::RSTRegClass) {
Opc = X86::FpLD64m;
- } else if (RC == &X86::FR32RegClass || RC == &X86::V4F4RegClass) {
+ } else if (RC == &X86::FR32RegClass) {
Opc = X86::MOVSSrm;
- } else if (RC == &X86::FR64RegClass || RC == &X86::V2F8RegClass) {
+ } else if (RC == &X86::FR64RegClass) {
Opc = X86::MOVSDrm;
+ } else if (RC == &X86::V4F4RegClass) {
+ Opc = X86::MOVAPSrm;
+ } else if (RC == &X86::V2F8RegClass) {
+ Opc = X86::MOVAPDrm;
} else {
assert(0 && "Unknown regclass");
abort();