mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 02:09:44 +02:00
Attempt at adjusting processing of free stores
This commit is contained in:
parent
7dea6d1f41
commit
6a15520aa5
2 changed files with 30 additions and 9 deletions
|
@ -2932,10 +2932,17 @@ int4 RuleIndirectCollapse::applyOp(PcodeOp *op,Funcdata &data)
|
|||
return 0;
|
||||
}
|
||||
else if (indop->usesSpacebasePtr()) {
|
||||
const LoadGuard *guard = data.getStoreGuard(indop);
|
||||
if (guard != (const LoadGuard *)0) {
|
||||
if (guard->isGuarded(op->getOut()->getAddr()))
|
||||
if (indop->code() == CPUI_STORE) {
|
||||
const LoadGuard *guard = data.getStoreGuard(indop);
|
||||
if (guard != (const LoadGuard *)0) {
|
||||
if (guard->isGuarded(op->getOut()->getAddr()))
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
// A marked STORE that is not guarded should eventually get converted to a COPY
|
||||
// so we keep the INDIRECT until that happens
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue