mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-01-09 14:08:03 -05:00
GP-6090 Adjustment for duplicate inputs in pushMultiequal
This commit is contained in:
@@ -157,12 +157,15 @@ void Funcdata::pushMultiequals(BlockBasic *bb)
|
|||||||
list<PcodeOp *>::iterator titer = origvn->descend.begin();
|
list<PcodeOp *>::iterator titer = origvn->descend.begin();
|
||||||
while(titer != origvn->descend.end()) {
|
while(titer != origvn->descend.end()) {
|
||||||
PcodeOp *op = *titer++;
|
PcodeOp *op = *titer++;
|
||||||
i = op->getSlot(origvn);
|
for(i=0;i<op->numInput();++i) {
|
||||||
// Do not replace MULTIEQUAL references in the same block
|
if (op->getIn(i) != origvn)
|
||||||
// as replaceop. These are patched by block_remove
|
continue;
|
||||||
if ((op->code()==CPUI_MULTIEQUAL)&&(op->getParent()==outblock)&&(i==outblock_ind))
|
if (i == outblock_ind && op->getParent() == outblock && op->code() == CPUI_MULTIEQUAL) {
|
||||||
continue;
|
continue;
|
||||||
opSetInput(op,replacevn,i);
|
}
|
||||||
|
opSetInput(op,replacevn,i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user