Xinu7/src/cmd/as11/symbols.code

#include "stypes.h"

#ifdef PASS1
#	define name(x) x,
#else
#	define name(x)
#endif

struct symbol symtab[] = {
	{ name(".")		TTEXT,	0,	000000 },
	{ name("..")		TABS,	0,	000000 },

/* register */

	{ name("r0")		TREG,	0, 	000000 },
	{ name("r1")		TREG,	0, 	000001 },
	{ name("r2")		TREG,	0, 	000002 },
	{ name("r3")		TREG,	0, 	000003 },
	{ name("r4")		TREG,	0, 	000004 },
	{ name("r5")		TREG,	0, 	000005 },
	{ name("sp")		TREG,	0, 	000006 },
	{ name("pc")		TREG,	0, 	000007 },

#ifdef eae
/* eae & switches */

	{ name("csw")		TABS,	0,	0177570 },
	{ name("div")		TABS,	0,	0177300 },
	{ name("ac")		TABS,	0,	0177302 },
	{ name("mq")		TABS,	0,	0177304 },
	{ name("mul")		TABS,	0,	0177306 },
	{ name("sc")		TABS,	0,	0177310 },
	{ name("sr")		TABS,	0,	0177311 },
	{ name("nor")		TABS,	0,	0177312 },
	{ name("lsh")		TABS,	0,	0177314 },
	{ name("ash")		TABS,	0,	0177316 },

#endif

/* double operand */

	{ name("mov")		TDBLOP,	0,	0010000 },
	{ name("movb")		TDBLOP,	0,	0110000 },
	{ name("cmp")		TDBLOP,	0,	0020000 },
	{ name("cmpb")		TDBLOP,	0,	0120000 },
	{ name("bit")		TDBLOP,	0,	0030000 },
	{ name("bitb")		TDBLOP,	0,	0130000 },
	{ name("bic")		TDBLOP,	0,	0040000 },
	{ name("bicb")		TDBLOP,	0,	0140000 },
	{ name("bis")		TDBLOP,	0,	0050000 },
	{ name("bisb")		TDBLOP,	0,	0150000 },
	{ name("add")		TDBLOP,	0,	0060000 },
	{ name("sub")		TDBLOP,	0,	0160000 },

/* branch */

	{ name("br")		TBR,	0,	0000400 },
	{ name("bne")		TBR,	0,	0001000 },
	{ name("beq")		TBR,	0,	0001400 },
	{ name("bge")		TBR,	0,	0002000 },
	{ name("blt")		TBR,	0,	0002400 },
	{ name("bgt")		TBR,	0,	0003000 },
	{ name("ble")		TBR,	0,	0003400 },
	{ name("bpl")		TBR,	0,	0100000 },
	{ name("bmi")		TBR,	0,	0100400 },
	{ name("bhi")		TBR,	0,	0101000 },
	{ name("blos")		TBR,	0,	0101400 },
	{ name("bvc")		TBR,	0,	0102000 },
	{ name("bvs")		TBR,	0,	0102400 },
	{ name("bhis")		TBR,	0,	0103000 },
	{ name("bec")		TBR,	0,	0103000 },
	{ name("bcc")		TBR,	0,	0103000 },
	{ name("blo")		TBR,	0,	0103400 },
	{ name("bcs")		TBR,	0,	0103400 },
	{ name("bes")		TBR,	0,	0103400 },

/* jump/branch type */

	{ name("jbr")		TJBR,	0,	0000400 },
	{ name("jne")		TJCOND,	0,	0001000 },
	{ name("jeq")		TJCOND,	0,	0001400 },
	{ name("jge")		TJCOND,	0,	0002000 },
	{ name("jlt")		TJCOND,	0,	0002400 },
	{ name("jgt")		TJCOND,	0,	0003000 },
	{ name("jle")		TJCOND,	0,	0003400 },
	{ name("jpl")		TJCOND,	0,	0100000 },
	{ name("jmi")		TJCOND,	0,	0100400 },
	{ name("jhi")		TJCOND,	0,	0101000 },
	{ name("jlos")		TJCOND,	0,	0101400 },
	{ name("jvc")		TJCOND,	0,	0102000 },
	{ name("jvs")		TJCOND,	0,	0102400 },
	{ name("jhis")		TJCOND,	0,	0103000 },
	{ name("jec")		TJCOND,	0,	0103000 },
	{ name("jcc")		TJCOND,	0,	0103000 },
	{ name("jlo")		TJCOND,	0,	0103400 },
	{ name("jcs")		TJCOND,	0,	0103400 },
	{ name("jes")		TJCOND,	0,	0103400 },

/* single operand */

	{ name("clr")		TSINGLE,0,	0005000 },
	{ name("clrb")		TSINGLE,0,	0105000 },
	{ name("com")		TSINGLE,0,	0005100 },
	{ name("comb")		TSINGLE,0,	0105100 },
	{ name("inc")		TSINGLE,0,	0005200 },
	{ name("incb")		TSINGLE,0,	0105200 },
	{ name("dec")		TSINGLE,0,	0005300 },
	{ name("decb")		TSINGLE,0,	0105300 },
	{ name("neg")		TSINGLE,0,	0005400 },
	{ name("negb")		TSINGLE,0,	0105400 },
	{ name("adc")		TSINGLE,0,	0005500 },
	{ name("adcb")		TSINGLE,0,	0105500 },
	{ name("sbc")		TSINGLE,0,	0005600 },
	{ name("sbcb")		TSINGLE,0,	0105600 },
	{ name("tst")		TSINGLE,0,	0005700 },
	{ name("tstb")		TSINGLE,0,	0105700 },
	{ name("ror")		TSINGLE,0,	0006000 },
	{ name("rorb")		TSINGLE,0,	0106000 },
	{ name("rol")		TSINGLE,0,	0006100 },
	{ name("rolb")		TSINGLE,0,	0106100 },
	{ name("asr")		TSINGLE,0,	0006200 },
	{ name("asrb")		TSINGLE,0,	0106200 },
	{ name("asl")		TSINGLE,0,	0006300 },
	{ name("aslb")		TSINGLE,0,	0106300 },
	{ name("jmp")		TSINGLE,0,	0000100 },
	{ name("swab")		TSINGLE,0,	0000300 },

/* jsr */

	{ name("jsr")		TJSR,	0,	0004000 },

/* rts */

	{ name("rts")		TRTS,	0,	000200 },

/* simple operand */

	{ name("sys")		TSYS,	0,	0104400 },

/* flag-setting */

	{ name("clc")		TABS,	0,	0000241 },
	{ name("clv")		TABS,	0,	0000242 },
	{ name("clz")		TABS,	0,	0000244 },
	{ name("cln")		TABS,	0,	0000250 },
	{ name("sec")		TABS,	0,	0000261 },
	{ name("sev")		TABS,	0,	0000262 },
	{ name("sez")		TABS,	0,	0000264 },
	{ name("sen")		TABS,	0,	0000270 },

/* floating point ops */

	{ name("cfcc")		TABS,	0,	0170000 },
	{ name("setf")		TABS,	0,	0170001 },
	{ name("setd")		TABS,	0,	0170011 },
	{ name("seti")		TABS,	0,	0170002 },
	{ name("setl")		TABS,	0,	0170012 },
	{ name("clrf")		TSINGLE,0,	0170400 },
	{ name("negf")		TSINGLE,0,	0170700 },
	{ name("absf")		TSINGLE,0,	0170600 },
	{ name("tstf")		TSINGLE,0,	0170500 },
	{ name("movf")		TMOVF,	0,	0172400 },
	{ name("movif")		TFLREG,	0,	0177000 },
	{ name("movfi")		TFLDST,	0,	0175400 },
	{ name("movof")		TFLREG,	0,	0177400 },
	{ name("movfo")		TFLDST,	0,	0176000 },
	{ name("addf")		TFLREG,	0,	0172000 },
	{ name("subf")		TFLREG,	0,	0173000 },
	{ name("mulf")		TFLREG,	0,	0171000 },
	{ name("divf")		TFLREG,	0,	0174400 },
	{ name("cmpf")		TFLREG,	0,	0173400 },
	{ name("modf")		TFLREG,	0,	0171400 },
	{ name("movie")		TFLREG,	0,	0176400 },
	{ name("movei")		TFLDST,	0,	0175000 },
	{ name("ldfps")		TSINGLE,0,	0170100 },
	{ name("stfps")		TSINGLE,0,	0170200 },
	{ name("fr0")		TREG,	0,	000000 },
	{ name("fr1")		TREG,	0,	000001 },
	{ name("fr2")		TREG,	0,	000002 },
	{ name("fr3")		TREG,	0,	000003 },
	{ name("fr4")		TREG,	0,	000004 },
	{ name("fr5")		TREG,	0,	000005 },

/* 11/45 operations */

	{ name("als")		TMUL,	0,	072000 },
	{ name("alsc")		TMUL,	0,	073000 },
	{ name("mpy")		TMUL,	0,	070000 },
#ifndef eae
	{ name("mul")		TMUL,	0,	070000 },
	{ name("div")		TMUL,	0,	071000 },
	{ name("ash")		TMUL,	0,	072000 },
	{ name("ashc")		TMUL,	0,	073000 },
#endif
	{ name("dvd")		TMUL,	0,	071000 },
	{ name("xor")		TJSR,	0,	074000 },
	{ name("sxt")		TSINGLE,0,	006700 },
	{ name("mark")		TSYS,	0,	006400 },
	{ name("sob")		TSOB,	0,	077000 },

/* specials */

	{ name(".byte")		TCBYTE,	0,	000000 },
	{ name(".even")		TCEVEN,	0,	000000 },
	{ name(".if")		TCIF,	0,	000000 },
	{ name(".endif")	TCENDIF,0,	000000 },
	{ name(".globl")	TCGLOBL,0,	000000 },
	{ name(".text")		TCTEXT,	0,	000000 },
	{ name(".data")		TCDATA,	0,	000000 },
	{ name(".bss")		TCBSS,	0,	000000 },
	{ name(".comm")		TCCOMM,	0,	000000 },
};