⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 table.c

📁 unix v7是最后一个广泛发布的研究型UNIX版本
💻 C
📖 第 1 页 / 共 2 页
字号:
# include "mfile2"# define AWD SNAME|SOREG|SCON|STARNM|STARREG|SAREG# define LWD SNAME|SOREG|SCON|SAREGstruct optab  table[] = {ASSIGN,	INAREG|FOREFF|FORCC,	AWD,	TPOINT|TINT|TUNSIGNED|TCHAR|TUCHAR,	SZERO,	TANY,		0,	RLEFT|RRIGHT|RESCC,		"	clrZB	AL\n",ASSIGN,	INAREG|FOREFF|FORCC,	AWD,	TINT|TUNSIGNED,	AWD,	TCHAR,		NAREG|NASR,	RLEFT|RESC1|RESCC,		"	movb	AR,A1\n	mov	A1,AL\n",ASSIGN,	INAREG|FOREFF|FORCC,	AWD,	TINT|TUNSIGNED,	AWD,	TUCHAR,		0,	RLEFT|RESCC,		"	movb	AR,AL\n	bic	$!377,AL\n",ASSIGN,	INAREG|FOREFF|FORCC,	AWD,	TPOINT|TINT|TUNSIGNED|TCHAR|TUCHAR,	AWD,	TPOINT|TINT|TUNSIGNED|TCHAR|TUCHAR,		0,	RLEFT|RRIGHT|RESCC,		"	movZB	AR,AL\n",ASSIGN,	INAREG|FOREFF,	LWD,	TLONG|TULONG,	SZERO,	TANY,		0,	RLEFT|RRIGHT,		"	clr	AL\n	clr	UL\n",ASSIGN,	INAREG|FOREFF,	LWD,	TLONG|TULONG,	LWD,	TLONG|TULONG,		0,	RLEFT|RRIGHT,		"	mov	AR,AL\n	mov	UR,UL\n",ASSIGN,	FOREFF|INAREG,	STARNM,		TLONG|TULONG,	LWD,	TLONG|TULONG,		NAREG|NASL,	RRIGHT,		"	mov	ZU,A1\n	mov	AR,(A1)+\n	mov	UR,(A1)\n",ASSIGN,	FOREFF,	STARNM,	TLONG|TULONG,	AWD,	TUNSIGNED|TPOINT,		NAREG|NASL,	RRIGHT,		"	mov	ZU,A1\n	clr	(A1)+\n	mov	AR,(A1)\n",ASSIGN,	FOREFF,	STARNM,	TLONG|TULONG,	AWD,	TINT,		NAREG|NASL,	RRIGHT,		"	mov	ZU,A1\n	mov	AR,2(A1)\n	sxt	(A1)\n",	/* PANIC! */ASSIGN,	FOREFF|INAREG,	STARNM,	TLONG|TULONG,	AWD,	TUNSIGNED|TPOINT,		NAREG|NASL|NASR,	RESC1,		"\tmov\tAR,-(sp)\n\tmov\tZU,A1\n\tclr\t(A1)+\n\tmov\t(sp)+,(A1)\		\nF\tmov\t(A1),U1\nF\tclr\tA1\n",ASSIGN,	FOREFF|INAREG,	STARNM,	TLONG|TULONG,	AWD,	TINT,		NAREG|NASL|NASR,	RESC1,		"\tmov\tAR,-(sp)\n\tmov\tZU,A1\n\tmov\t(sp)+,2(A1)\nF\tmov\t2(A1),U1\		\n\tsxt\t(A1)\nF\tsxt\tA1\n",ASSIGN,	FOREFF|INAREG,	STARNM,	TLONG|TULONG,	SAREG,	TLONG|TULONG,		0,	RRIGHT,		"	mov	AR,AL\n	mov	ZU,AR\n	mov	UR,2(AR)\nF	mov	(AR),AR\n",ASSIGN,	INAREG|FOREFF,	LWD,	TLONG|TULONG,	AWD,	TCHAR,		NAREG,	RESC1,		"	movb	AR,U1\n	mov	U1,UL\n	sxt	AL\nF	sxt	A1\n",ASSIGN,	INAREG|FOREFF,	LWD,	TLONG|TULONG,	AWD,	TUCHAR,		0,	RLEFT,		"	movb	AR,UL\n	bic	$!377,UL\n	clr	AL\n",ASSIGN,	INAREG|FOREFF,	LWD,	TLONG|TULONG,	AWD,	TINT,		0,	RLEFT,		"	mov	AR,UL\n	sxt	AL\n",ASSIGN,	INAREG|FOREFF,	LWD,	TLONG|TULONG,	AWD,	TUNSIGNED|TPOINT,		0,	RLEFT,		"	mov	AR,UL\n	clr	AL\n",ASSIGN,	INBREG|INTBREG|FOREFF,	AWD,	TDOUBLE,	SBREG,	TDOUBLE,		0,	RRIGHT,		"	movf	AR,AL\n",ASSIGN,	INBREG|INTBREG|FOREFF,	AWD,	TFLOAT,	SBREG,	TDOUBLE,		0,	RRIGHT,		"	movfo	AR,AL\n",ASSIGN, INAREG|FOREFF,	SFLD,	TANY,	SZERO,	TANY,		0,	RRIGHT,		"	bic	$M.,AL\n",ASSIGN, INTAREG|INAREG|FOREFF,	SFLD,	TANY,	STAREG,	TANY,		0,	RRIGHT,		"F\tmov\tAR,-(sp)\n\tash\t$H.,AR\n\tbic\t$!M.,AR\n\tbic\t$M.,AL\n\tbis\tAR,AL\nF\tmov\t(sp)+,AR\n",ASSIGN, INAREG|FOREFF,	SFLD,	TANY,	AWD,	TANY,		NAREG,	RRIGHT,		"\tmov\tAR,A1\n\tash\t$H.,A1\n\tbic\t$!M.,A1\n\tbic\t$M.,AL\n\tbis\tA1,AL\n",ASSIGN,	FOREFF,	AWD,	TFLOAT,	AWD,	TFLOAT,		NBREG,	RESC1,		"	movof	AR,A1\n	movfo	A1,AL\n",/* put this here so UNARY MUL nodes match OPLTYPE when appropriate */UNARY MUL,	INTAREG|INAREG,	SANY,	TANY,	STARNM,	TLONG|TULONG,		NAREG|NASR,	RESC1,		"	mov	AL,U1\n	mov	(U1)+,A1\n	mov	(U1),U1\n",OPLTYPE,	FOREFF,	SANY,	TANY,	LWD,	TANY,		0,	RRIGHT,		"",   /* this entry throws away computations which don't do anything */OPLTYPE,	INTAREG|INAREG,	SANY,	TANY,	SZERO,	TINT|TUNSIGNED|TPOINT|TCHAR|TUCHAR,		NAREG|NASR,	RESC1,		"	clr	A1\n",OPLTYPE,	INTAREG|INAREG,	SANY,	TANY,	SZERO,	TLONG|TULONG,		NAREG|NASR,	RESC1,		"	clr	A1\n	clr	U1\n",OPLTYPE,	INTAREG|INAREG,	SANY,	TANY,	SANY,	TINT|TUNSIGNED|TPOINT|TCHAR,		NAREG|NASR,	RESC1,		"	movZB	AR,A1\n",OPLTYPE,	INTEMP,	SANY,	TANY,	SANY,	TINT|TUNSIGNED|TPOINT,		NTEMP,	RESC1,		"	mov	AR,A1\n",OPLTYPE,	FORCC,	SANY,	TANY,	SANY,	TINT|TUNSIGNED|TPOINT|TCHAR|TUCHAR,		0,	RESCC,		"	tstZB	AR\n",OPLTYPE,	FORARG,	SANY,	TANY,	SANY,	TINT|TUNSIGNED|TPOINT,		0,	RNULL,		"	mov	AR,Z-\n",OPLTYPE,	INTAREG|INAREG,	SANY,	TANY,	AWD,	TUCHAR,		NAREG|NASR,	RESC1,		"	movb	AR,A1\n	bic	$!377,A1\n",OPLTYPE,	INTAREG|INAREG,	SANY,	TANY,	LWD,	TLONG|TULONG,		NAREG,	RESC1,		"	mov	UR,U1\n	mov	AR,A1\n",OPLTYPE,	INTAREG|INAREG,  /* for use when there are no free regs */	SANY,	TANY,	LWD,	TLONG|TULONG,		NAREG|NASR,	RESC1,		"	mov	AR,-(sp)\n	mov	UR,U1\n	mov	(sp)+,A1\n",OPLTYPE,	INTEMP,	SANY,	TANY,	LWD,	TLONG|TULONG,		2*NTEMP,	RESC1,		"	mov	AR,A1\n	mov	UR,U1\n",OPLTYPE,	FORCC,	SANY,	TANY,	LWD,	TLONG|TULONG,		0,	RESCC,		"ZA",OPLTYPE, FORARG,	SANY,	TANY,	LWD,	TLONG|TULONG,		0,	RNULL,		"	mov	UR,Z-\n	mov	AR,Z-\n",UNARY MUL,	FORARG,	STARNM,	TANY,	SANY,	TLONG|TULONG,		NAREG|NASR,	RNULL,		"	mov	AL,A1\n	mov	2(A1),Z-\n	mov	(A1),Z-\n",OPLTYPE, FORARG,	SANY,	TANY,	SBREG,	TDOUBLE,		0,	RNULL,		"	movf	AR,Z4\n",OPLTYPE,	INTBREG|INBREG,	SANY,	TANY,	AWD,	TDOUBLE,		NBREG,	RESC1,		"	movf	AR,A1\n",OPLTYPE,	INTEMP,	SANY,	TANY,	SBREG,	TDOUBLE,		4*NTEMP,	RESC1,		"	movf	AR,A1\n",OPLTYPE,	FORCC,	SANY,	TANY,	AWD,	TDOUBLE,		0,	RESCC,		"	tstf	AR\n	cfcc\n",OPLTYPE,	INTBREG|INBREG,	SANY,	TANY,	AWD,	TFLOAT,		NBREG,	RESC1,		"	movof	AR,A1\n",OPLTYPE,	FORCC,	SANY,	TANY,	AWD,	TFLOAT,		NBREG,	RESCC,		"	movof	AR,A1\n	cfcc\n",OPLOG,	FORCC,	AWD,	TPOINT|TINT|TUNSIGNED,	AWD,	TPOINT|TINT|TUNSIGNED,		0,	RESCC,		"	cmp	AL,AR\nZI",OPLOG,	FORCC,	AWD,	TCHAR|TUCHAR,	AWD,	TCHAR|TUCHAR,		0,	RESCC,		"	cmpb	AL,AR\nZI",OPLOG,	FORCC,	AWD,	TCHAR|TUCHAR,	SCCON,	TINT,				/* look for constants between -128 and 127 */		0,	RESCC,		"	cmpb	AL,AR\nZI",OPLOG,	FORCC,	LWD,	TLONG|TULONG,	LWD,	TLONG|TULONG,		0,	RESCC,		"ZCZI",OPLOG,	FORCC,	SBREG,	TDOUBLE,	AWD,	TFLOAT,		NBREG,	RESCC,		"	movof	AR,A1\n	cmpf	A1,AL\n	cfcc\nZF",OPLOG,	FORCC,	SBREG,	TDOUBLE,	SBREG|AWD,	TDOUBLE,		0,	RESCC,		"	cmpf	AR,AL\n	cfcc\nZF",CCODES,	INTAREG|INAREG,	SANY,	TANY,	SANY,	TINT|TUNSIGNED|TPOINT|TCHAR|TUCHAR,		NAREG,	RESC1,		"	mov	$1,A1\nZN",CCODES,	INTAREG|INAREG,	SANY,	TANY,	SANY,	TLONG|TULONG,		NAREG,	RESC1,		"	clr	A1\n	mov	$1,U1\nZN",UNARY MINUS,	INTAREG|INAREG,	STAREG,	TINT|TUNSIGNED,	SANY,	TANY,		0,	RLEFT,		"	neg	AL\n",UNARY MINUS,	INTAREG|INAREG,	STAREG,	TLONG|TULONG,	SANY,	TANY,		0,	RLEFT,		"	neg	AL\n	neg	UL\n	sbc	AL\n",UNARY MINUS,	INTBREG|INBREG,	STBREG,	TDOUBLE,	SANY,	TANY,		0,	RLEFT,		"	negf	AL\n",COMPL,	INTAREG|INAREG,	STAREG,	TINT|TUNSIGNED,	SANY,	TANY,		0,	RLEFT,		"	com	AL\n",INCR,	INTAREG|INAREG|FOREFF,	AWD,	TINT|TUNSIGNED|TPOINT|TCHAR|TUCHAR,	SONE,	TANY,		NAREG,	RESC1,		"F	movZB	AL,A1\n	incZB	AL\n",DECR,	INTAREG|INAREG|FOREFF,	AWD,	TINT|TUNSIGNED|TPOINT|TCHAR|TUCHAR,	SONE,	TANY,		NAREG,	RESC1,		"F	movZB	AL,A1\n	decZB	AL\n",INCR,	INTAREG|INAREG|FOREFF,	AWD,	TINT|TUNSIGNED|TPOINT,	SCON,	TANY,		NAREG,	RESC1,		"F	mov	AL,A1\n	add	AR,AL\n",DECR,	INTAREG|INAREG|FOREFF,	AWD,	TINT|TUNSIGNED|TPOINT,	SCON,	TANY,		NAREG,	RESC1,		"F	mov	AL,A1\n	sub	AR,AL\n",INCR,	INTAREG|INAREG|FOREFF,	LWD,	TLONG|TULONG,	SCON,	TANY,		NAREG,	RESC1,		"F	mov	AL,A1\nF	mov	UL,U1\n	add	AR,AL\n	add	UR,UL\n	adc	AL\n",DECR,	INTAREG|INAREG|FOREFF,	LWD,	TLONG|TULONG,	SCON,	TANY,		NAREG,	RESC1,		"F	mov	AL,A1\nF	mov	UL,U1\n	sub	AR,AL\n	sub	UR,UL\n	sbc	AL\n",COMPL,	INTAREG|INAREG,	STAREG,	TLONG|TULONG,	SANY,	TANY,		0,	RLEFT,		"	com	AL\n	com	UL\n",AND,	FORCC,	AWD,	TINT|TUNSIGNED|TPOINT,	SCON,	TANY,		0,	RESCC,		"	bit	AL,$Z~\n",ASG MUL,	INAREG,	STAREG,	TINT|TUNSIGNED|TPOINT,	AWD,	TINT|TUNSIGNED|TPOINT,		NAREG,	RLEFT,		"	mul	AR,AL\n",ASG DIV,	INAREG,	STAREG,	TINT|TUNSIGNED|TPOINT,	AWD,	TINT|TUNSIGNED|TPOINT,		NAREG,	RESC1,		"ZV	div	AR,r0\n",  /* since lhs must be in r1 */ASG MOD,	INAREG,	STAREG,	TINT|TUNSIGNED|TPOINT,	AWD,	TINT|TUNSIGNED|TPOINT,		NAREG,	RLEFT,		"ZV	div	AR,r0\n",  /* since lhs must be in r1 */ASG PLUS,	INAREG|FORCC,	AWD,	TINT|TUNSIGNED|TPOINT|TCHAR|TUCHAR,	SONE,	TINT,		0,	RLEFT|RESCC,		"	incZB	AL\n",ASG PLUS,	INAREG|FORCC,	AWD,	TINT|TUNSIGNED|TPOINT,	AWD,	TINT|TUNSIGNED|TPOINT,		0,	RLEFT|RESCC,		"	add	AR,AL\n",ASG MINUS,	INAREG|FORCC,	AWD,	TINT|TUNSIGNED|TPOINT|TCHAR|TUCHAR,	SONE,	TINT,		0,	RLEFT|RESCC,		"	decZB	AL\n",ASG MINUS,	INAREG|FORCC,	AWD,	TINT|TUNSIGNED|TPOINT,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -