V10/cmd/lcomp/instr.c

Compare this file to the similar file:
Show the results in this format:

#define K	1	/* kills all condition codes */
#define JUMP	2	/* ends a basic block */
#define BYTE	4	/* target is byte offset */
#define C	8	/* kills all condition codes but for C bit*/
/* if((p->type & EXPAND) && p->iname[0] == 'b') replace first char with j */
/* aob and sob get replaced by two instructions */

struct inst {
	char *iname;
	short type;
} insts[] = {
"acbb", C | JUMP,
"acbd", C | JUMP,
"acbf", C | JUMP,
"acbg", C | JUMP,
"acbh", C | JUMP,
"acbl", C | JUMP,
"acbw", C | JUMP,
"adawi", K,
"addb2", K,
"addb3", K,
"addd2", K,
"addd3", K,
"addf2", K,
"addf3", K,
"addg2", K,
"addg3", K,
"addh2", K,
"addh3", K,
"addl2", K,
"addl3", K,
"addp4", K,
"addp6", K,
"addw2", K,
"addw3", K,
"adwc", K,
"aobleq", C | JUMP | BYTE,
"aoblss", C | JUMP | BYTE,
"ashl", C,
"ashp", K,
"ashq", C,
"bbc", JUMP | BYTE,
"bbcc", JUMP | BYTE,
"bbcci", JUMP | BYTE,
"bbcs", JUMP | BYTE,
"bbs", JUMP | BYTE,
"bbsc", JUMP | BYTE,
"bbss", JUMP | BYTE,
"bbssi", JUMP | BYTE,
"bcc", JUMP | BYTE,
"bcs", JUMP | BYTE,
"beql", JUMP | BYTE,
"beqlu", JUMP | BYTE,
"bgeq", JUMP | BYTE,
"bgequ", JUMP | BYTE,
"bgtr", JUMP | BYTE,
"bgtru", JUMP | BYTE,
"bicb2", C,
"bicb3", C,
"bicl2", C,
"bicl3", C,
"bicpsw", K,
"bicw2", C,
"bicw3", C,
"bisb2", C,
"bisb3", C,
"bisl2", C,
"bisl3", C,
"bispsw", K,
"bisw2", C,
"bisw3", C,
"bitb", C,
"bitl", C,
"bitw", C,
"blbc", JUMP | BYTE,
"blbs", JUMP | BYTE,
"bleq", JUMP | BYTE,
"blequ", JUMP | BYTE,
"blss", JUMP | BYTE,
"blssu", JUMP | BYTE,
"bneq", JUMP | BYTE,
"bnequ", JUMP | BYTE,
"bpt",	K,
"brb", JUMP | BYTE,
"brw", JUMP,
"bsbb", JUMP | BYTE,
"bsbw", JUMP,
"bugl", 0,
"bugw", 0,
"bvc", JUMP | BYTE,
"bvs", JUMP | BYTE,
"callg", K,
"calls", K,
"caseb", K | JUMP,
"casel", K | JUMP,
"casew", K | JUMP,
"chme", K,
"chmk", K,
"chms", K,
"chmu", K,
"clrb", C,
"clrd", C,
"clrf", C,
"clrg", C,
"clrh", C,
"clrl", C,
"clro", C,
"clrq", C,
"clrw", C,
"cmpb", K,
"cmpc3", K,
"cmpc5", K,
"cmpd", K,
"cmpf", K,
"cmpg", K,
"cmph", K,
"cmpl", K,
"cmpp3", C,
"cmpp4", C,
"cmpv", K,
"cmpw", K,
"cmpzv", K,
"crc", C,
"cvtbd", K,
"cvtbf", K,
"cvtbg", K,
"cvtbh", K,
"cvtbl", K,
"cvtbw", K,
"cvtdb", K,
"cvtdf", K,
"cvtdh", K,
"cvtdl", K,
"cvtdw", K,
"cvtfb", K,
"cvtfd", K,
"cvtfg", K,
"cvtfh", K,
"cvtfl", K,
"cvtfw", K,
"cvtgb", K,
"cvtgf", K,
"cvtgh", K,
"cvtgl", K,
"cvtgw", K,
"cvthb", K,
"cvthd", K,
"cvthf", K,
"cvthg", K,
"cvthl", K,
"cvthw", K,
"cvtlb", K,
"cvtld", K,
"cvtlf", K,
"cvtlg", K,
"cvtlh", K,
"cvtlp", K,
"cvtlw", K,
"cvtpl", K,
"cvtps", K,
"cvtpt", K,
"cvtrdl", K,
"cvtrfl", K,
"cvtrgl", K,
"cvtrhl", K,
"cvtsp", K,
"cvttp", K,
"cvtwb", K,
"cvtwd", K,
"cvtwf", K,
"cvtwg", K,
"cvtwh", K,
"cvtwl", K,
"decb", K,
"decl", K,
"decw", K,
"divb2", K,
"divb3", K,
"divd2", K,
"divd3", K,
"divf2", K,
"divf3", K,
"divg2", K,
"divg3", K,
"divh2", K,
"divh3", K,
"divl2", K,
"divl3", K,
"divp", K,
"divw2", K,
"divw3", K,
"editpc", K,
"ediv", K,
"emodd", K,
"emodf", K,
"emodg", K,
"emodh", K,
"emul", K,
"escd", 0,
"esce", 0,
"escf", 0,
"extv", K,
"extzv", K,
"ffc", K,
"ffs", K,
"halt",	JUMP,
"incb", K,
"incl", K,
"incw", K,
"index", K,
"insqhi", K,
"insqti", K,
"insque", K,
"insv",	0,
"jbc", JUMP,
"jbcc", JUMP,
"jbcs", JUMP,
"jbr", JUMP,
"jbs", JUMP,
"jbsc", JUMP,
"jbss", JUMP,
"jcc", JUMP,
"jcs", JUMP,
"jeql", JUMP,
"jeqlu", JUMP,
"jgeq", JUMP,
"jgequ", JUMP,
"jgtr", JUMP,
"jgtru", JUMP,
"jlbc", JUMP,
"jlbs", JUMP,
"jleq", JUMP,
"jlequ", JUMP,
"jlss", JUMP,
"jlssu", JUMP,
"jmp", JUMP,
"jneq", JUMP,
"jnequ", JUMP,
"jsb", JUMP,
"jvc", JUMP,
"jvs", JUMP,
"ldpctx", 0,
"locc", K,
"matchc", K,
"mcomb", C,
"mcoml", C,
"mcomw", C,
"mfpr",	C,
"mnegb", K,
"mnegd", K,
"mnegf", K,
"mnegg", K,
"mnegh", K,
"mnegl", K,
"mnegw", K,
"movab", C,
"movad", C,
"movaf", C,
"movag", C,
"movah", C,
"moval", C,
"movao", C,
"movaq", C,
"movaw", C,
"movb",	C,
"movc3", K,
"movc5", K,
"movd",	C,
"movf",	C,
"movg", C,
"movh", C,
"movl",	C,
"movo", C,
"movp", C,
"movpsl", 0,
"movq",	C,
"movtc", K,
"movtuc", K,
"movw",	C,
"movzbl", C,
"movzbw", C,
"movzwl", C,
"mtpr",	C,
"mulb2", K,
"mulb3", K,
"muld2", K,
"muld3", K,
"mulf2", K,
"mulf3", K,
"mulg2", K,
"mulg3", K,
"mulh2", K,
"mulh3", K,
"mull2", K,
"mull3", K,
"mulp", K,
"mulw2", K,
"mulw3", K,
"nop", 0,
"polyd", K,
"polyf", K,
"polyg", K,
"polyh", K,
"popr", 0,
"prober", K,
"probew", K,
"pushab", C,
"pushad", C,
"pushaf", C,
"pushag", C,
"pushah", C,
"pushal", C,
"pushao", C,
"pushaq", C,
"pushaw", C,
"pushl", C,
"pushr", 0,
"rei", K,
"remqhi", K,
"remqti", K,
"remque", K,
"ret", K | JUMP,
"rotl", C,
"rsb", 0,
"sbwc", K,
"scanc", K,
"skpc", K,
"sobgeq", C | JUMP | BYTE,
"sobgtr", C | JUMP | BYTE,
"spanc", K,
"subb2", K,
"subb3", K,
"subd2", K,
"subd3", K,
"subf2", K,
"subf3", K,
"subg2", K,
"subg3", K,
"subh2", K,
"subh3", K,
"subl2", K,
"subl3", K,
"subp4", K,
"subp6", K,
"subw2", K,
"subw3", K,
"svpctx", 0,
"tstb", K,
"tstd", K,
"tstf", K,
"tstg", K,
"tstl", K,
"tstw", K,
"tstw", K,
"xfc",	K | JUMP,
"xorb2", C,
"xorb3", C,
"xorl2", C,
"xorl3", C,
"xorw2", C,
"xorw3", C,
0, 0
};