mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 18:29:37 +02:00
GP-3688 RuleSubNormal shouldn't apply to double precision SUBPIECE
This commit is contained in:
parent
87be0574fc
commit
ff76fdb730
1 changed files with 3 additions and 1 deletions
|
@ -7227,11 +7227,13 @@ int4 RuleSubNormal::applyOp(PcodeOp *op,Funcdata &data)
|
|||
if (!shiftop->getIn(1)->isConstant()) return 0;
|
||||
Varnode *a = shiftop->getIn(0);
|
||||
if (a->isFree()) return 0;
|
||||
Varnode *outvn = op->getOut();
|
||||
if (outvn->isPrecisHi() || outvn->isPrecisLo()) return 0;
|
||||
int4 n = shiftop->getIn(1)->getOffset();
|
||||
int4 c = op->getIn(1)->getOffset();
|
||||
int4 k = (n/8);
|
||||
int4 insize = a->getSize();
|
||||
int4 outsize = op->getOut()->getSize();
|
||||
int4 outsize = outvn->getSize();
|
||||
|
||||
// Total shift + outsize must be greater equal to size of input
|
||||
if ((n+8*c+8*outsize < 8*insize)&&(n != k*8)) return 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue