diff options
Diffstat (limited to 'sim/h8300')
-rw-r--r-- | sim/h8300/ChangeLog | 4 | ||||
-rw-r--r-- | sim/h8300/compile.c | 8 |
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): { |