On 07/08/18 14:03, Luc Van Oostenryck wrote: > No functional changes, just moving the core around s/core/code/ > in preparation for shift-shift simplification. > > Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> > --- > simplify.c | 15 ++++++++++----- > 1 file changed, 10 insertions(+), 5 deletions(-) > > diff --git a/simplify.c b/simplify.c > index 9e4a496fd..911ab11a9 100644 > --- a/simplify.c > +++ b/simplify.c > @@ -627,14 +627,19 @@ static int simplify_shift(struct instruction *insn, pseudo_t pseudo, long long v > break; > case OP_LSR: > size = operand_size(insn, pseudo); > - /* fall through */ > + if (value >= size) > + goto zero; > + switch(DEF_OPCODE(def, pseudo)) { > + case OP_LSR: > + goto case_shift_shift; > + } > + break; > case OP_SHL: > if (value >= size) > goto zero; > - if (pseudo->type != PSEUDO_REG) > - break; > - def = pseudo->def; > - if (def->opcode == insn->opcode) { > + switch(DEF_OPCODE(def, pseudo)) { > + case OP_SHL: > + case_shift_shift: // also for LSR - lSR > if (def == insn) // cyclic DAG! > break; > src2 = def->src2; > Hmm, OK, it took me quite some time to convince myself that there were, in fact, no functional changes. I could not do that with the patch text alone - I needed to look up the definition of the DEF_OPCODE macro. (Even then, I had to stare at the 'pseudo->type != PSEUDO_REG' condition along with the following control flow, very very hard! ;-) ). ATB, Ramsay Jones -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html