diff lwasm/instab.c @ 55:bad2ee25acdd

Added string comparison pseudo ops
author lost@l-w.ca
date Tue, 05 Apr 2011 23:59:41 -0600
parents 2c24602be78f
children 9960e05cbe3a
line wrap: on
line diff
--- a/lwasm/instab.c	Tue Apr 05 21:50:23 2011 -0600
+++ b/lwasm/instab.c	Tue Apr 05 23:59:41 2011 -0600
@@ -219,6 +219,10 @@
 #define pseudo_resolve_ifndef NULL
 #define pseudo_emit_ifndef NULL
 
+extern PARSEFUNC(pseudo_parse_ifstr);
+#define pseudo_resolve_ifstr NULL
+#define pseudo_emit_ifstr NULL
+
 extern PARSEFUNC(pseudo_parse_endc);
 #define pseudo_resolve_endc NULL
 #define pseudo_emit_endc NULL
@@ -608,6 +612,9 @@
 	{ "ifdef",		{	-1, 	-1, 	-1, 	-1},	pseudo_parse_ifdef,		pseudo_resolve_ifdef,			pseudo_emit_ifdef,			lwasm_insn_cond},
 	{ "ifndef",		{	-1, 	-1, 	-1, 	-1},	pseudo_parse_ifndef,	pseudo_resolve_ifndef,			pseudo_emit_ifndef,			lwasm_insn_cond},
 
+	// string operations, mostly useful in macros
+	{ "ifstr",		{	-1,		-1,		-1,		-1},	pseudo_parse_ifstr,		pseudo_resolve_ifstr,			pseudo_emit_ifstr,			lwasm_insn_cond},
+
 	{ "macro",		{	-1, 	-1, 	-1, 	-1}, 	pseudo_parse_macro,		pseudo_resolve_macro,			pseudo_emit_macro,			lwasm_insn_cond | lwasm_insn_setsym},
 	{ "endm",		{	-1, 	-1, 	-1, 	-1},	pseudo_parse_endm,		pseudo_resolve_endm,			pseudo_emit_endm,			lwasm_insn_cond | lwasm_insn_setsym | lwasm_insn_endm},