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/v850/ChangeLog | 4 ++++ sim/v850/simops.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'sim/v850') diff --git a/sim/v850/ChangeLog b/sim/v850/ChangeLog index 59cdf8d..9b23e42 100644 --- a/sim/v850/ChangeLog +++ b/sim/v850/ChangeLog @@ -1,3 +1,7 @@ +2015-12-15 Dominik Vogt + + * simops.c (v850_bins): Fix left shift of negative value. + 2015-11-17 Mike Frysinger * sim-main.h (WITH_CORE): Delete. diff --git a/sim/v850/simops.c b/sim/v850/simops.c index b8b3856..40d578e 100644 --- a/sim/v850/simops.c +++ b/sim/v850/simops.c @@ -3317,7 +3317,7 @@ v850_bins (SIM_DESC sd, unsigned int source, unsigned int lsb, unsigned int msb, pos = lsb; width = (msb - lsb) + 1; - mask = ~ (-1 << width); + mask = ~ (-(1 << width)); source &= mask; mask <<= pos; result = (* dest) & ~ mask; -- cgit v1.1