From 7149cfcda313f14048cc1931586f691905960d59 Mon Sep 17 00:00:00 2001 From: Bob Wilson Date: Mon, 7 Jun 2010 23:48:46 +0000 Subject: Fix a mistake in my previous change r105437: don't access operand 2 and assume that it is an immediate before checking that the instruction is an EXTRACT_SUBREG. llvm-svn: 105585 --- llvm/lib/CodeGen/TwoAddressInstructionPass.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'llvm/lib/CodeGen/TwoAddressInstructionPass.cpp') diff --git a/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp b/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp index 14c05feec39..16588bf3a7a 100644 --- a/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp +++ b/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp @@ -1178,17 +1178,16 @@ TwoAddressInstructionPass::CoalesceExtSubRegs(SmallVector &Srcs, UI = MRI->use_nodbg_begin(SrcReg), UE = MRI->use_nodbg_end(); UI != UE; ++UI) { MachineInstr *UseMI = &*UI; - unsigned SubRegIdx = UseMI->getOperand(2).getImm(); // FIXME: For now require that the destination subregs match the subregs // being extracted. if (!UseMI->isExtractSubreg() || UseMI->getOperand(0).getReg() != DstReg || - UseMI->getOperand(0).getSubReg() != SubRegIdx || + UseMI->getOperand(0).getSubReg() != UseMI->getOperand(2).getImm() || UseMI->getOperand(1).getSubReg() != 0) { CanCoalesce = false; break; } - SubIndices.push_back(SubRegIdx); + SubIndices.push_back(UseMI->getOperand(2).getImm()); } if (!CanCoalesce || SubIndices.size() < 2) -- cgit v1.2.3