* rx.c (decode_opcode: RXO_int): Only break out of the emulation
authorNick Clifton <nickc@redhat.com>
Wed, 29 Sep 2010 15:47:45 +0000 (15:47 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 29 Sep 2010 15:47:45 +0000 (15:47 +0000)
        loop if rx_syscall() does not return a RX_STEPPED result.

sim/rx/ChangeLog
sim/rx/rx.c

index ed363dafca214281a2b7d7234143b7593e56d359..4da59659d4a8a536539d9956b95c73524c91cdc2 100644 (file)
@@ -1,3 +1,8 @@
+2010-09-29  Nick Clifton  <nickc@redhat.com>
+
+       * rx.c (decode_opcode: RXO_int): Only break out of the emulation
+       loop if rx_syscall() does not return a RX_STEPPED result.
+
 2010-09-23  Kevin Buettner  <kevinb@redhat.com>
 
        * rx.c (decode_opcode): Add cycle information for RXO_smovu.
index 17f5b46f4af23a4b8563b796c88d4b4cb6fe8764..247d6247ad9b18567758b7f7674e4d5ee1225076 100644 (file)
@@ -1232,7 +1232,9 @@ decode_opcode ()
       v = GS ();
       if (v == 255)
        {
-         DO_RETURN (rx_syscall (regs.r[5]));
+         int rc = rx_syscall (regs.r[5]);
+         if (! RX_STEPPED (rc))
+           DO_RETURN (rc);
        }
       else
        {