aboutsummaryrefslogtreecommitdiff
path: root/sim/mips
diff options
context:
space:
mode:
Diffstat (limited to 'sim/mips')
-rw-r--r--sim/mips/ChangeLog5
-rw-r--r--sim/mips/micromips.igen2
2 files changed, 6 insertions, 1 deletions
diff --git a/sim/mips/ChangeLog b/sim/mips/ChangeLog
index d37ab7a..040ae04 100644
--- a/sim/mips/ChangeLog
+++ b/sim/mips/ChangeLog
@@ -1,3 +1,8 @@
+2015-12-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
+
+ * micromips.igen (process_isa_mode): Fix left shift of negative
+ value.
+
2015-11-17 Mike Frysinger <vapier@gentoo.org>
* sim-main.h (WITH_MODULO_MEMORY): Delete.
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