Changes in directory llvm/lib/Target/X86:
X86RegisterInfo.cpp updated: 1.118 -> 1.119 --- Log message: implement isStoreToStackSlot --- Diffs of the changes: (+23 -0) X86RegisterInfo.cpp | 23 +++++++++++++++++++++++ 1 files changed, 23 insertions(+) Index: llvm/lib/Target/X86/X86RegisterInfo.cpp diff -u llvm/lib/Target/X86/X86RegisterInfo.cpp:1.118 llvm/lib/Target/X86/X86RegisterInfo.cpp:1.119 --- llvm/lib/Target/X86/X86RegisterInfo.cpp:1.118 Wed Feb 1 17:02:25 2006 +++ llvm/lib/Target/X86/X86RegisterInfo.cpp Thu Feb 2 14:00:41 2006 @@ -139,6 +139,29 @@ return 0; } +unsigned X86RegisterInfo::isStoreToStackSlot(MachineInstr *MI, + int &FrameIndex) const { + switch (MI->getOpcode()) { + default: break; + case X86::MOV8mr: + case X86::MOV16mr: + case X86::MOV32mr: + case X86::FpSTP64m: + case X86::MOVSSmr: + case X86::MOVSDmr: + 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(); + return MI->getOperand(4).getReg(); + } + break; + } + return 0; +} + static MachineInstr *MakeMInst(unsigned Opcode, unsigned FrameIndex, MachineInstr *MI) { _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits