diff lwasm/instab.c @ 254:c7a41b4c89b3 2.x

Added struct support to LWASM
author lost
date Sat, 19 Dec 2009 06:38:43 +0000
parents 0986834ec7d3
children e27279180a73
line wrap: on
line diff
--- a/lwasm/instab.c	Wed Dec 09 03:59:26 2009 +0000
+++ b/lwasm/instab.c	Sat Dec 19 06:38:43 2009 +0000
@@ -86,6 +86,9 @@
 extern OPFUNC(pseudo_includebin);
 extern OPFUNC(pseudo_extdep);
 
+extern OPFUNC(pseudo_struct);
+extern OPFUNC(pseudo_endstruct);
+
 extern OPFUNC(pseudo_os9);
 extern OPFUNC(pseudo_mod);
 extern OPFUNC(pseudo_emod);
@@ -359,9 +362,9 @@
 
 	{ "extdep",	{ -1, -1, -1, -1 }, pseudo_extdep, 0, 0, 1 },
 
-	{ "rmb", 	{ -1, -1, -1, -1 }, pseudo_rmb },
-	{ "rmd", 	{ -1, -1, -1, -1 }, pseudo_rmd },
-	{ "rmq", 	{ -1, -1, -1, -1 }, pseudo_rmq },
+	{ "rmb", 	{ -1, -1, -1, -1 }, pseudo_rmb, 0, 0, 0, 0, 1 },
+	{ "rmd", 	{ -1, -1, -1, -1 }, pseudo_rmd, 0, 0, 0, 0, 1 },
+	{ "rmq", 	{ -1, -1, -1, -1 }, pseudo_rmq, 0, 0, 0, 0, 1 },
 
 	{ "zmb", 	{ -1, -1, -1, -1 }, pseudo_zmb },
 	{ "zmd", 	{ -1, -1, -1, -1 }, pseudo_zmd },
@@ -404,6 +407,10 @@
 	{ "macro",	{ -1, -1, -1, -1}, 	pseudo_macro,	1,	0,	1 },
 	{ "endm",	{ -1, -1, -1, -1},	pseudo_endm,	1,	1,	1 },
 
+	{ "struct",	{ -1, -1, -1, -1}, 	pseudo_struct,	0,	0,	0 },
+	{ "ends",	{ -1, -1, -1, -1},	pseudo_endstruct,	0,	0,	0, 0, 1},
+	{ "endstruct",	{ -1, -1, -1, -1},	pseudo_endstruct,	0,	0,	0, 0, 1 },
+
 	{ "setdp", 	{ -1, -1, -1, -1},	pseudo_setdp },
 	{ "set",	{ -1, -1, -1, -1},	pseudo_set,	0,	0,	1 },
 
@@ -444,9 +451,9 @@
 	{ ".asciz",	{ -1, -1, -1, -1},	pseudo_fcn },
 	{ ".strz",	{ -1, -1, -1, -1},	pseudo_fcn },
 	
-	{ ".blkb",	{ -1, -1, -1, -1},	pseudo_rmb },
-	{ ".ds",	{ -1, -1, -1, -1},	pseudo_rmb },
-	{ ".rs",	{ -1, -1, -1, -1},	pseudo_rmb },
+	{ ".blkb",	{ -1, -1, -1, -1},	pseudo_rmb, 0, 0, 0, 0, 1 },
+	{ ".ds",	{ -1, -1, -1, -1},	pseudo_rmb, 0, 0, 0, 0, 1 },
+	{ ".rs",	{ -1, -1, -1, -1},	pseudo_rmb, 0, 0, 0, 0, 1 },
 
 // needs to handle C escapes maybe?
 //	{ ".ascii",	{ -1, -1, -1, -1},	pseudo_ascii },