diff options
Diffstat (limited to 'simplify.c')
| -rw-r--r-- | simplify.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -552,6 +552,14 @@ static int simplify_shift(struct instruction *insn, pseudo_t pseudo, long long v warning(insn->pos, "right shift by bigger than source value"); insn->tainted = 1; } + switch (insn->opcode) { + case OP_ASR: + break; + case OP_LSR: + size = operand_size(insn, pseudo); + if (value >= size) + return replace_with_pseudo(insn, value_pseudo(0)); + } return 0; } |
