On 12 October 2016 at 17:23, Michael Walle <mich...@walle.cc> wrote: > Both branches of the ternary operator have the same expressions. Drop the > operator. > > This fixes: https://bugs.launchpad.net/qemu/+bug/1414293 > > Signed-off-by: Michael Walle <mich...@walle.cc> > --- > target-lm32/translate.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target-lm32/translate.c b/target-lm32/translate.c > index 2d8caeb..534c17c 100644 > --- a/target-lm32/translate.c > +++ b/target-lm32/translate.c > @@ -343,7 +343,7 @@ static void dec_calli(DisasContext *dc) > static inline void gen_compare(DisasContext *dc, int cond) > { > int rX = (dc->format == OP_FMT_RR) ? dc->r2 : dc->r1; > - int rY = (dc->format == OP_FMT_RR) ? dc->r0 : dc->r0; > + int rY = dc->r0; > int rZ = (dc->format == OP_FMT_RR) ? dc->r1 : -1; > int i;
This checks against the processor reference manual, so: Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> but I noticed while doing the review that our LOG_DIS is wrong for the compare-immediates: LOG_DIS("cmpei r%d, r%d, %d\n", dc->r0, dc->r1, sign_extend(dc->imm16, 16)); but the processor reference manual says cmpei's mnemonic should have dc->r1 first and dc->r0 second. (Similarly for the logging for the other immediate compares.) thanks -- PMM