aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2005-10-18 07:53:17 +0000
committerNick Clifton <nickc@redhat.com>2005-10-18 07:53:17 +0000
commit5e03663f3dbec4330c0bee3f4b120f38e02eeb77 (patch)
tree919902365541c3743005ac6a66a48516dc62e7d8
parentcd1fcb494fbb94d9615721d1f729f58c67bd36b8 (diff)
downloadfsf-binutils-gdb-5e03663f3dbec4330c0bee3f4b120f38e02eeb77.zip
fsf-binutils-gdb-5e03663f3dbec4330c0bee3f4b120f38e02eeb77.tar.gz
fsf-binutils-gdb-5e03663f3dbec4330c0bee3f4b120f38e02eeb77.tar.bz2
m32r.opc (parse_slo16): Better version of previous patch.
-rw-r--r--cpu/ChangeLog4
-rw-r--r--cpu/m32r.opc4
-rw-r--r--opcodes/ChangeLog4
-rw-r--r--opcodes/m32r-asm.c4
4 files changed, 12 insertions, 4 deletions
diff --git a/cpu/ChangeLog b/cpu/ChangeLog
index ecc06b4..5478b4d 100644
--- a/cpu/ChangeLog
+++ b/cpu/ChangeLog
@@ -1,3 +1,7 @@
+2005-10-18 Andreas Schwab <schwab@suse.de>
+
+ * m32r.opc (parse_slo16): Better version of previous patch.
+
2005-10-14 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* cpu/m32r.opc (parse_slo16): Do not assume a 32-bit host word
diff --git a/cpu/m32r.opc b/cpu/m32r.opc
index afe12eb..2459fec 100644
--- a/cpu/m32r.opc
+++ b/cpu/m32r.opc
@@ -182,8 +182,8 @@ parse_slo16 (CGEN_CPU_DESC cd,
{
value &= 0xffff;
if (value & 0x8000)
- value |= ~0xffff;
- }
+ value = ((value & 0xffff) ^ 0x8000) - 0x8000;
+ }
*valuep = value;
return errmsg;
}
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 9bcce14..6bfdb7c 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2005-10-18 Nick Clifton <nickc@redhat.com>
+
+ * m32r-asm.c: Regenerate after updating m32r.opc.
+
2005-10-14 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* m32r-asm.c: Regenerate after updating m32r.opc.
diff --git a/opcodes/m32r-asm.c b/opcodes/m32r-asm.c
index b45f720..3954608 100644
--- a/opcodes/m32r-asm.c
+++ b/opcodes/m32r-asm.c
@@ -144,8 +144,8 @@ parse_slo16 (CGEN_CPU_DESC cd,
{
value &= 0xffff;
if (value & 0x8000)
- value |= ~0xffff;
- }
+ value = ((value & 0xffff) ^ 0x8000) - 0x8000;
+ }
*valuep = value;
return errmsg;
}