diff lwasm/instab.h @ 385:4fd16faa4d93

Add various "convenience" ops These are things like "NEGD" in 6809 mode or NEGQ in 6309 mode. These require either 6809conv or 6309conv pragmas. Also fix a problem with "CPX" in the 6800 mode. Thanks to Erik G <erik@6809.org> for the patch.
author William Astle <lost@l-w.ca>
date Mon, 13 Jul 2015 21:26:34 -0600
parents 8e25147c2aa8
children e97f9a302c6a
line wrap: on
line diff
--- a/lwasm/instab.h	Mon Jul 13 21:20:30 2015 -0600
+++ b/lwasm/instab.h	Mon Jul 13 21:26:34 2015 -0600
@@ -38,15 +38,17 @@
 
 enum
 {
-	lwasm_insn_cond = 1,		/* conditional instruction */
-	lwasm_insn_endm = 2,		/* end of macro */
-	lwasm_insn_setsym = 4,		/* insn sets symbol address */
-	lwasm_insn_is6309 = 8,		/* insn is 6309 only */
-	lwasm_insn_struct = 16,		/* insn allowed in a struct */
-	lwasm_insn_setdata = 32,	/* insn uses the data address for symbols */
-	lwasm_insn_is6800 = 64,		/* insn is a 6800 compatibility operation */
-	lwasm_insn_is6809 = 128,	/* insn is 6809 only */
-	lwasm_insn_normal = 0
+	lwasm_insn_cond			= 1,		/* conditional instruction */
+	lwasm_insn_endm			= 1 << 1,	/* end of macro */
+	lwasm_insn_setsym		= 1 << 2,	/* insn sets symbol address */
+	lwasm_insn_is6309		= 1 << 3,	/* insn is 6309 only */
+	lwasm_insn_struct		= 1 << 4,	/* insn allowed in a struct */
+	lwasm_insn_setdata		= 1 << 5,	/* insn uses the data address for symbols */
+	lwasm_insn_is6800		= 1 << 6,	/* insn is a 6800 compatibility operation */
+	lwasm_insn_is6809		= 1 << 7,	/* insn is 6809 only */
+	lwasm_insn_is6809conv	= 1 << 8,	/* insn is 6809 convenience only */
+	lwasm_insn_is6309conv	= 1 << 9,	/* insn is 6309 convenience only */
+	lwasm_insn_normal		= 0
 };