aboutsummaryrefslogtreecommitdiff
path: root/sim/h8300
diff options
context:
space:
mode:
Diffstat (limited to 'sim/h8300')
-rw-r--r--sim/h8300/ChangeLog4
-rw-r--r--sim/h8300/compile.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/sim/h8300/ChangeLog b/sim/h8300/ChangeLog
index 4550b6a..42c7bce 100644
--- a/sim/h8300/ChangeLog
+++ b/sim/h8300/ChangeLog
@@ -1,3 +1,7 @@
+Tue Jul 9 22:15:39 1996 Jeffrey A Law (law@cygnus.com)
+
+ * compile.c (sim_resume): Fix all rotate-by-2-bits insns.
+
Tue Jul 2 23:08:45 1996 Jeffrey A Law (law@cygnus.com)
* run.c (main): Don't "load" sections which don't have
diff --git a/sim/h8300/compile.c b/sim/h8300/compile.c
index 7159af2..247a53a 100644
--- a/sim/h8300/compile.c
+++ b/sim/h8300/compile.c
@@ -1264,16 +1264,16 @@ sim_resume (step, siggnal)
t = rd & hm; c = rd & 2; v = 0; rd >>= 2; rd |= t | t >> 1 );
OSHIFTS (O_ROTL,
c = rd & hm; v = 0; rd <<= 1; rd |= C,
- c = rd & (hm >> 1); v = 0; rd <<= 2; rd |= C);
+ c = rd & hm; v = 0; rd <<= 1; rd |= C; c = rd & hm; rd <<= 1; rd |= C);
OSHIFTS (O_ROTR,
c = rd & 1; v = 0; rd = (unsigned int) rd >> 1; if (c) rd |= hm,
- c = rd & 2; v = 0; rd = (unsigned int) rd >> 2; if (c) rd |= hm);
+ c = rd & 1; v = 0; rd = (unsigned int) rd >> 1; if (c) rd |= hm; c = rd & 1; rd = (unsigned int) rd >> 1; if (c) rd |= hm);
OSHIFTS (O_ROTXL,
t = rd & hm; rd <<= 1; rd |= C; c = t; v = 0,
- t = rd & (hm >> 1); rd <<= 2; rd |= C; c = t; v = 0);
+ t = rd & hm; rd <<= 1; rd |= C; c = t; v = 0; t = rd & hm; rd <<= 1; rd |= C; c = t);
OSHIFTS (O_ROTXR,
t = rd & 1; rd = (unsigned int) rd >> 1; if (C) rd |= hm; c = t; v = 0,
- t = rd & 2; rd = (unsigned int) rd >> 2; if (C) rd |= hm; c = t; v = 0);
+ t = rd & 1; rd = (unsigned int) rd >> 1; if (C) rd |= hm; c = t; v = 0; t = rd & 1; rd = (unsigned int) rd >> 1; if (C) rd |= hm; c = t);
case O (O_JMP, SB):
{