diff options
author | Alkis Evlogimenos <alkis@evlogimenos.com> | 2004-02-22 06:54:26 +0000 |
---|---|---|
committer | Alkis Evlogimenos <alkis@evlogimenos.com> | 2004-02-22 06:54:26 +0000 |
commit | de51c6529926bbea46828a31fb415ab7fde72e2d (patch) | |
tree | 8b9444063f89c22728c96f6b229aa168ffc4f95f /llvm/lib/Target/X86/X86RegisterInfo.cpp | |
parent | d25dfe43b94bdf9cbd967e254436e7846f45da54 (diff) | |
download | bcm5719-llvm-de51c6529926bbea46828a31fb415ab7fde72e2d.tar.gz bcm5719-llvm-de51c6529926bbea46828a31fb415ab7fde72e2d.zip |
When folding memory operands in machine instructions be careful to
leave register operands with the same use/def flags as the original
instruction.
llvm-svn: 11709
Diffstat (limited to 'llvm/lib/Target/X86/X86RegisterInfo.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86RegisterInfo.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86RegisterInfo.cpp b/llvm/lib/Target/X86/X86RegisterInfo.cpp index 6479ad56a7e..d97b5295315 100644 --- a/llvm/lib/Target/X86/X86RegisterInfo.cpp +++ b/llvm/lib/Target/X86/X86RegisterInfo.cpp @@ -112,13 +112,15 @@ static MachineInstr *MakeMIInst(unsigned Opcode, unsigned FrameIndex, static MachineInstr *MakeRMInst(unsigned Opcode, unsigned FrameIndex, MachineInstr *MI) { - return addFrameReference(BuildMI(Opcode, 5, MI->getOperand(0).getReg()), + const MachineOperand& op = MI->getOperand(0); + return addFrameReference(BuildMI(Opcode, 5, op.getReg(), op.getUseType()), FrameIndex); } static MachineInstr *MakeRMIInst(unsigned Opcode, unsigned FrameIndex, MachineInstr *MI) { - return addFrameReference(BuildMI(Opcode, 5, MI->getOperand(0).getReg()), + const MachineOperand& op = MI->getOperand(0); + return addFrameReference(BuildMI(Opcode, 5, op.getReg(), op.getUseType()), FrameIndex).addZImm(MI->getOperand(2).getImmedValue()); } |