From 1d19cae752a7b032b8253feb4fa3b9f1dc162823 Mon Sep 17 00:00:00 2001 From: Dominik Vogt Date: Tue, 15 Dec 2015 14:09:14 +0100 Subject: Fix invalid left shift of negative value Fix occurrences of left-shifting negative constants in C code. sim/arm/ChangeLog: * thumbemu.c (handle_T2_insn): Fix left shift of negative value. * armemu.c (handle_v6_insn): Likewise. sim/avr/ChangeLog: * interp.c (sign_ext): Fix left shift of negative value. sim/mips/ChangeLog: * micromips.igen (process_isa_mode): Fix left shift of negative value. sim/msp430/ChangeLog: * msp430-sim.c (get_op, put_op): Fix left shift of negative value. sim/v850/ChangeLog: * simops.c (v850_bins): Fix left shift of negative value. --- sim/mips/micromips.igen | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sim/mips/micromips.igen') diff --git a/sim/mips/micromips.igen b/sim/mips/micromips.igen index 2c62376..f24220e 100644 --- a/sim/mips/micromips.igen +++ b/sim/mips/micromips.igen @@ -54,7 +54,7 @@ :function:::address_word:process_isa_mode:address_word target { SD->isa_mode = target & 0x1; - return (target & (-1 << 1)); + return (target & (-(1 << 1))); } :function:::address_word:do_micromips_jalr:int rt, int rs, address_word nia, int delayslot_instruction_size -- cgit v1.1