Use movaps / movapd to spill / restore V4F4 / V2F8 registers.
authorEvan Cheng <evan.cheng@apple.com>
Thu, 16 Feb 2006 21:20:26 +0000 (21:20 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Thu, 16 Feb 2006 21:20:26 +0000 (21:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26240 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86RegisterInfo.cpp

index 571bef18db6a23b69a623e3bcf5c3e1d02dbb48b..cf31167061d25249efab205b5cba177256485463 100644 (file)
@@ -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();