Fri Nov 8 16:19:55 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
authorMartin Hunt <hunt@redhat.com>
Sat, 9 Nov 1996 00:38:07 +0000 (00:38 +0000)
committerMartin Hunt <hunt@redhat.com>
Sat, 9 Nov 1996 00:38:07 +0000 (00:38 +0000)
commit849c575f9757b1c2d001dc771d6b1f77d3254003
tree3a951bfed636d6cf0c9866f394a4aab332ff8a93
parent4dc42997c3010339ee538f0e791765ad75492ae9
Fri Nov  8 16:19:55 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>

* d10v-sim.h (simops): Add flag is_long.
(State): Add pc_changed.  Instructions which update the PC should
use the JMP macro which sets this.
(JMP): New macro.  Sets the PC and the pc_changed flag.

* gencode.c (write_opcodes): Add is_long field.

* interp.c (lookup_hash): If we blindly apply a short opcode's mask
to a long opcode we could get a false match.  Check the opcode size.
(hash): Add a size field to the hash table.
(sim_open): Initialize size field in hash table.
(sim_resume): Change to logic for setting the PC.  Used to increment the
PC if it had not been changed.  This didn't allow single-instruction loops.
Now checks the flag State.pc_changed.  Also now stops when ^C is received.
(dmem_addr): Fix translation of data segments to unified memory.
(sim_ctrl_c): New function.  When ^C is received, set stop_simulator flag.

* simops.c: Changed all branch and jump instructions to use new JMP macro.
(OP_20000000): Corrected trace information to show this is a ldi.l, not
a ldi.s instruction.
sim/d10v/gencode.c [new file with mode: 0644]