diff options
Diffstat (limited to 'sim/v850/interp.c')
-rw-r--r-- | sim/v850/interp.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sim/v850/interp.c b/sim/v850/interp.c index 1cd990e..d824590 100644 --- a/sim/v850/interp.c +++ b/sim/v850/interp.c @@ -186,7 +186,13 @@ static void do_format_5 (insn) uint32 insn; { + struct hash_entry *h; printf("format 5 0x%x\n", insn); + + h = lookup_hash (insn); + OP[0] = ((insn & 0x3f) | (((insn >> 17) & 0x7fff) << 6)) << 1; + OP[1] = (insn >> 11) & 0x1f; + (h->ops->func) (); } static void @@ -380,7 +386,7 @@ sim_resume (step, siggnal) else if ((opcode & 0x3E) == 0x3C) { do_format_5 (inst); - PC += 4; + /* No PC update, it's done in the instruction. */ } else if ((opcode & 0x3F) == 0x3E) { |