mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-17 06:33:21 +00:00
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
This commit is contained in:
parent
56b9e1cd72
commit
19ade3bf9c
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user