aboutsummaryrefslogtreecommitdiff
path: root/sim/v850
diff options
context:
space:
mode:
authorDominik Vogt <vogt@linux.vnet.ibm.com>2015-12-15 14:09:14 +0100
committerAndreas Arnez <arnez@linux.vnet.ibm.com>2015-12-15 14:09:14 +0100
commit1d19cae752a7b032b8253feb4fa3b9f1dc162823 (patch)
treefcd5b5f015c8f9dc4e541049369e89e52ab6c8ba /sim/v850
parent08832196accd270fa053e8125c21e7a54ab19fe0 (diff)
downloadgdb-1d19cae752a7b032b8253feb4fa3b9f1dc162823.zip
gdb-1d19cae752a7b032b8253feb4fa3b9f1dc162823.tar.gz
gdb-1d19cae752a7b032b8253feb4fa3b9f1dc162823.tar.bz2
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.
Diffstat (limited to 'sim/v850')
-rw-r--r--sim/v850/ChangeLog4
-rw-r--r--sim/v850/simops.c2
2 files changed, 5 insertions, 1 deletions
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 <vogt@linux.vnet.ibm.com>
+
+ * simops.c (v850_bins): Fix left shift of negative value.
+
2015-11-17 Mike Frysinger <vapier@gentoo.org>
* 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;