aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2000-07-27 09:39:50 +0000
committerAndrew Cagney <cagney@redhat.com>2000-07-27 09:39:50 +0000
commit0a17cd59446fd9191aa49369b8fd8b42a0c748cf (patch)
tree1832648a0fc1ddab4f5f59dc546529205d8faadc
parent78073dd899b80be1a70ad75d5c3fc9d538ad9f86 (diff)
downloadfsf-binutils-gdb-0a17cd59446fd9191aa49369b8fd8b42a0c748cf.zip
fsf-binutils-gdb-0a17cd59446fd9191aa49369b8fd8b42a0c748cf.tar.gz
fsf-binutils-gdb-0a17cd59446fd9191aa49369b8fd8b42a0c748cf.tar.bz2
* compile.c (decode): Distinguish inc/dec.[wl] and adds/subs
correctly.
-rw-r--r--sim/h8300/ChangeLog5
-rw-r--r--sim/h8300/compile.c7
2 files changed, 11 insertions, 1 deletions
diff --git a/sim/h8300/ChangeLog b/sim/h8300/ChangeLog
index e3885de..46f9972 100644
--- a/sim/h8300/ChangeLog
+++ b/sim/h8300/ChangeLog
@@ -1,3 +1,8 @@
+2000-06-15 Kazu Hirata <kazu@hxi.com>
+
+ * compile.c (decode): Distinguish inc/dec.[wl] and adds/subs
+ correctly.
+
2000-06-20 Frank Ch. Eigler <fche@redhat.com>
* compile.c: Don't include "wait.h".
diff --git a/sim/h8300/compile.c b/sim/h8300/compile.c
index bbd28e5..3a22190 100644
--- a/sim/h8300/compile.c
+++ b/sim/h8300/compile.c
@@ -219,7 +219,10 @@ decode (addr, data, dst)
if (looking_for & DBIT)
{
- if ((looking_for & 5) != (thisnib & 5))
+ /* Exclude adds/subs by looking at bit 0 and 2, and
+ make sure the operand size, either w or l,
+ matches by looking at bit 1. */
+ if ((looking_for & 7) != (thisnib & 7))
goto fail;
abs = (thisnib & 0x8) ? 2 : 1;
@@ -292,6 +295,8 @@ decode (addr, data, dst)
case 0:
abs = 1;
break;
+ default:
+ goto fail;
}
}
else if (looking_for & L_8)