sim: moxie: switch syscalls to common nltvals
authorMike Frysinger <vapier@gentoo.org>
Mon, 19 Apr 2021 02:48:31 +0000 (22:48 -0400)
committerMike Frysinger <vapier@gentoo.org>
Mon, 19 Apr 2021 03:03:38 +0000 (23:03 -0400)
Rather than hand duplicate the syscall constants, switch to the
common nltvals framework.  I made sure the constants have the
same values before & after too :).

sim/common/ChangeLog
sim/common/gennltvals.py
sim/common/nltvals.def
sim/moxie/ChangeLog
sim/moxie/Makefile.in
sim/moxie/interp.c

index 20a425731f52186c96f94fadafce012281009fac..d62a40d5db89bd35f4b0d34e6b3ea84429c9732d 100644 (file)
@@ -1,3 +1,8 @@
+2021-04-18  Mike Frysinger  <vapier@gentoo.org>
+
+       * gennltvals.py (TARGETS): Add moxie.
+       * nltvals.def: Regenerate.
+
 2021-04-18  Mike Frysinger  <vapier@gentoo.org>
 
        * gennltvals.py (TARGET_DIRS, TARGETS): Add sh.
index 5831607a17c70c2f645ce981ab2eaac179c87ff2..cf23c3926994d20fa2d170dcc5506e8ad246f8bf 100755 (executable)
@@ -68,6 +68,7 @@ TARGETS = {
     'mcore',
     'mn10200',
     'mn10300',
+    'moxie',
     'msp430',
     'pru',
     'riscv',
index 3b890af0639f2e371b90bae19d7e8f9721924257..27f1b0d43b26d711765ba7b67a4fcc14d403116a 100644 (file)
 /* end mn10300 sys target macros */
 #endif
 #endif
+#ifdef NL_TARGET_moxie
+#ifdef sys_defs
+/* from syscall.h */
+/* begin moxie sys target macros */
+ { "SYS_argc", 22 },
+ { "SYS_argn", 24 },
+ { "SYS_argnlen", 23 },
+ { "SYS_argv", 13 },
+ { "SYS_argvlen", 12 },
+ { "SYS_chdir", 14 },
+ { "SYS_chmod", 16 },
+ { "SYS_close", 3 },
+ { "SYS_exit", 1 },
+ { "SYS_fstat", 10 },
+ { "SYS_getpid", 8 },
+ { "SYS_gettimeofday", 19 },
+ { "SYS_kill", 9 },
+ { "SYS_link", 21 },
+ { "SYS_lseek", 6 },
+ { "SYS_open", 2 },
+ { "SYS_read", 4 },
+ { "SYS_reconfig", 25 },
+ { "SYS_stat", 15 },
+ { "SYS_time", 18 },
+ { "SYS_times", 20 },
+ { "SYS_unlink", 7 },
+ { "SYS_utime", 17 },
+ { "SYS_write", 5 },
+/* end moxie sys target macros */
+#endif
+#endif
 #ifdef NL_TARGET_msp430
 #ifdef sys_defs
 /* from syscall.h */
index b6e91a24bda4818878b8fbbaf4d99ab217b8c012..9621907dabb560d975fa1d6c35e3d424458b3d7d 100644 (file)
@@ -1,3 +1,9 @@
+2021-04-18  Mike Frysinger  <vapier@gentoo.org>
+
+       * Makefile.in (NL_TARGET): Define.
+       * interp.c: Include targ-vals.h.
+       (sim_engine_run): Change numeric literals to SYS_ constants.
+
 2021-04-18  Mike Frysinger  <vapier@gentoo.org>
 
        * configure: Regenerate.
index bd58074491fc7016dad4b8afa53f22a83629f8f6..3d9618846cc30eda81c27fca75148568d56bc3b8 100644 (file)
@@ -15,6 +15,9 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+# This selects the newlib/libgloss syscall definitions.
+NL_TARGET = -DNL_TARGET_moxie
+
 ## COMMON_PRE_CONFIG_FRAG
 
 DTC = @DTC@
index 5da13f7808cb0c2b34256b12986d1123a852492b..417ff9ea55033716e04c4b91f5441f62a0b762e3 100644 (file)
@@ -33,6 +33,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "sim-base.h"
 #include "sim-options.h"
 #include "sim-io.h"
+#include "targ-vals.h"
 
 typedef int word;
 typedef unsigned int uword;
@@ -932,13 +933,13 @@ sim_engine_run (SIM_DESC sd,
                cpu.asregs.sregs[3] = inum;
                switch (inum)
                  {
-                 case 0x1: /* SYS_exit */
+                 case TARGET_SYS_exit:
                    {
                      sim_engine_halt (sd, scpu, NULL, pc, sim_exited,
                                       cpu.asregs.regs[2]);
                      break;
                    }
-                 case 0x2: /* SYS_open */
+                 case TARGET_SYS_open:
                    {
                      char fname[1024];
                      int mode = (int) convert_target_flags ((unsigned) cpu.asregs.regs[3]);
@@ -951,7 +952,7 @@ sim_engine_run (SIM_DESC sd,
                      cpu.asregs.regs[2] = fd;
                      break;
                    }
-                 case 0x4: /* SYS_read */
+                 case TARGET_SYS_read:
                    {
                      int fd = cpu.asregs.regs[2];
                      unsigned len = (unsigned) cpu.asregs.regs[4];
@@ -962,7 +963,7 @@ sim_engine_run (SIM_DESC sd,
                      free (buf);
                      break;
                    }
-                 case 0x5: /* SYS_write */
+                 case TARGET_SYS_write:
                    {
                      char *str;
                      /* String length is at 0x12($fp) */
@@ -975,7 +976,7 @@ sim_engine_run (SIM_DESC sd,
                      cpu.asregs.regs[2] = count;
                      break;
                    }
-                 case 0x7: /* SYS_unlink */
+                 case TARGET_SYS_unlink:
                    {
                      char fname[1024];
                      int fd;