X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FX86%2FX86InstrInfo.cpp;h=31a4f6fe2e7e7f87e436ce0ddb9b0effbf0594d2;hb=2dadaea5d2613125c0f7de33febdc44d97ae9648;hp=65e8ea093945618844771bbe2440c6e73eca547b;hpb=408396014742a05cad1c91949d2226169e3f9d80;p=oota-llvm.git diff --git a/lib/Target/X86/X86InstrInfo.cpp b/lib/Target/X86/X86InstrInfo.cpp index 65e8ea09394..31a4f6fe2e7 100644 --- a/lib/Target/X86/X86InstrInfo.cpp +++ b/lib/Target/X86/X86InstrInfo.cpp @@ -29,7 +29,12 @@ bool X86InstrInfo::isMoveInstr(const MachineInstr& MI, MachineOpCode oc = MI.getOpcode(); if (oc == X86::MOV8rr || oc == X86::MOV16rr || oc == X86::MOV32rr || oc == X86::FpMOV || oc == X86::MOVSSrr || oc == X86::MOVSDrr || - oc == X86::MOVAPSrr || oc == X86::MOVAPDrr) { + oc == X86::FsMOVAPSrr || oc == X86::FsMOVAPDrr || + oc == X86::MOVAPSrr || oc == X86::MOVAPDrr || + oc == X86::MOVSS2PSrr || oc == X86::MOVSD2PDrr || + oc == X86::MOVPS2SSrr || oc == X86::MOVPD2SDrr || + oc == X86::MOVDI2PDIrr || oc == X86::MOVQI2PQIrr || + oc == X86::MOVPDI2DIrr) { assert(MI.getNumOperands() == 2 && MI.getOperand(0).isRegister() && MI.getOperand(1).isRegister() && @@ -51,6 +56,8 @@ unsigned X86InstrInfo::isLoadFromStackSlot(MachineInstr *MI, case X86::FpLD64m: case X86::MOVSSrm: case X86::MOVSDrm: + case X86::MOVAPSrm: + case X86::MOVAPDrm: if (MI->getOperand(1).isFrameIndex() && MI->getOperand(2).isImmediate() && MI->getOperand(3).isRegister() && MI->getOperand(4).isImmediate() && MI->getOperand(2).getImmedValue() == 1 && @@ -74,12 +81,14 @@ unsigned X86InstrInfo::isStoreToStackSlot(MachineInstr *MI, case X86::FpSTP64m: case X86::MOVSSmr: case X86::MOVSDmr: + case X86::MOVAPSmr: + case X86::MOVAPDmr: if (MI->getOperand(0).isFrameIndex() && MI->getOperand(1).isImmediate() && MI->getOperand(2).isRegister() && MI->getOperand(3).isImmediate() && - MI->getOperand(3).getImmedValue() == 1 && - MI->getOperand(4).getReg() == 0 && - MI->getOperand(5).getImmedValue() == 0) { - FrameIndex = MI->getOperand(1).getFrameIndex(); + MI->getOperand(1).getImmedValue() == 1 && + MI->getOperand(2).getReg() == 0 && + MI->getOperand(3).getImmedValue() == 0) { + FrameIndex = MI->getOperand(0).getFrameIndex(); return MI->getOperand(4).getReg(); } break;