From 19ade3bf9ca6e92d29bb5f2bdf2195ba058e50b8 Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Thu, 16 Feb 2006 21:20:26 +0000 Subject: [PATCH] Use movaps / movapd to spill / restore V4F4 / V2F8 registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26240 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86RegisterInfo.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp index 571bef18db6..cf31167061d 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();