📄 table.c
字号:
SAREG|AWD, TWORD, NAREG, RESC1, " insv AR,$H,$S,AL\n extzv $H,$S,AL,A1\n",/* RAP006 End */ASSIGN, INAREG|FOREFF|FORCC, SAREG|AWD, TWORD, SFLD, ANYSIGNED, 0, RLEFT|RESCC, " extv $H,$S,AR,AL\n",ASSIGN, INAREG|FOREFF|FORCC, SAREG|AWD, TWORD, SFLD, ANYUSIGNED, 0, RLEFT|RESCC, " extzv $H,$S,AR,AL\n",/* dummy UNARY MUL entry to get U* to possibly match OPLTYPE */UNARY MUL, FOREFF, SCC, TANY, SCC, TANY, 0, RNULL, " HELP HELP HELP\n",REG, INTEMP, SANY, TANY, SAREG, TDOUBLE, 2*NTEMP, RESC1, " movZV AR,A1\n", /* slr001 */REG, INTEMP, SANY, TANY, SAREG, TANY, NTEMP, RESC1, " movZF AR,A1\n",#ifdef FORTREG, FORARG, SANY, TANY, SAREG, TFLOAT, 0, RNULL, " cvtfd AR,-(sp)\n",REG, FORARG, SANY, TANY, SAREG, TDOUBLE, 0, RNULL, " movZR AR,-(sp)\n",#endifOPLEAF, FOREFF, SANY, TANY, SAREG|AWD, TANY, 0, RLEFT, "",OPLTYPE, INAREG|INTAREG, SANY, TANY, SANY, TFLOAT|TDOUBLE, 2*NAREG|NASR, RESC1, " ZA\n",OPLTYPE, INAREG|INTAREG, SANY, TANY, SANY, TANY, NAREG|NASR, RESC1, " ZA\n",OPLTYPE, FORCC, SANY, TANY, SANY, TANY, 0, RESCC, " tstZR AR\n",OPLTYPE, FORARG, SANY, TANY, SANY, TWORD, 0, RNULL, " pushl AR\n",OPLTYPE, FORARG, SANY, TANY, SANY, TCHAR|TSHORT, 0, RNULL, " cvtZRl AR,-(sp)\n",OPLTYPE, FORARG, SANY, TANY, SANY, TUCHAR|TUSHORT, 0, RNULL, " movzZRl AR,-(sp)\n",OPLTYPE, FORARG, SANY, TANY, SANY, TDOUBLE, 0, RNULL, " movZV AR,-(sp)\n", /* slr001 */OPLTYPE, FORARG, SANY, TANY, SANY, TFLOAT, 0, RNULL, " cvtfZV AR,-(sp)\n", /* slr001 */UNARY MINUS, INTAREG|FORCC, /* vdp008 */ SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG|TDOUBLE|TFLOAT, SANY, TANY, FLOATFLG|NAREG|NASL, RESC1|RESCC, " mnegZL AL,A1\n",UNARY MINUS, INTAREG|FORCC, SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG|TDOUBLE, SANY, TANY, NAREG|NASL, RESC1|RESCC, " mnegZL AL,A1\n",COMPL, INTAREG|FORCC, SAREG|AWD, TINT|TUNSIGNED, SANY, TANY, NAREG|NASL, RESC1|RESCC, " mcomZL AL,A1\n",COMPL, INTAREG|FORCC, SAREG|AWD, ANYSIGNED|ANYUSIGNED, SANY, TANY, NAREG|NASL, RESC1|RESCC, " cvtZLl AL,A1\n mcoml A1,A1\n",AND, FORCC, SAREG|AWD, TWORD, SCON, TWORD, 0, RESCC, " bitl ZZ,AL\n",AND, FORCC, SAREG|AWD, TSHORT|TUSHORT, SSCON, TWORD, 0, RESCC, " bitw ZZ,AL\n",AND, FORCC, SAREG|AWD, TCHAR|TUCHAR, SCCON, TWORD, 0, RESCC, " bitb ZZ,AL\n",ASG AND, INAREG|FOREFF|FORCC, SAREG, TWORD, SCON, TWORD, 0, RLEFT|RESCC, " bicl2 AR,AL\n",ASG OPMUL, INAREG|FOREFF|FORCC, SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 0, RLEFT|RESCC, " OL2 AR,AL\n",OPMUL, INAREG|INTAREG|FORCC, STAREG, TINT|TUNSIGNED|TLONG|TULONG, SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, 0, RLEFT|RESCC, " OL2 AR,AL\n",OPMUL, INAREG|INTAREG|FORCC, SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, NAREG|NASL|NASR, RESC1|RESCC, " OL3 AR,AL,A1\n",ASG MOD, INAREG|INTAREG|FOREFF|FORCC, SAREG, TINT|TUNSIGNED|TLONG|TULONG, SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, NAREG, RLEFT|RESCC, " divl3 AR,AL,A1\n mull2 AR,A1\n subl2 A1,AL\n",MOD, INAREG|INTAREG, SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, SAREG|AWD, TINT|TUNSIGNED|TLONG|TULONG, NAREG, RESC1, " divl3 AR,AL,A1\n mull2 AR,A1\n subl3 A1,AL,A1\n",ASG PLUS, INAREG|FOREFF|FORCC, SAREG, TPOINT|TINT|TLONG|TUNSIGNED|TULONG, SONE, TINT|TLONG, 0, RLEFT|RESCC, " incZL AL\n",ASG PLUS, INAREG|FOREFF|FORCC, AWD, ANYSIGNED|ANYUSIGNED, SONE, TINT|TLONG, 0, RLEFT|RESCC, " incZL AL\n",ASG PLUS, INAREG|FOREFF|FORCC, SAREG, TSHORT|TCHAR, SONE, TINT|TLONG, 0, RLEFT|RESCC, " incZL AL\n cvtZLl AL,AL\n",ASG PLUS, INAREG|FOREFF|FORCC, SAREG, TUSHORT|TUCHAR, SONE, TINT|TLONG, 0, RLEFT|RESCC, " incZL AL\n movzZLl AL,AL\n",ASG MINUS, INAREG|FOREFF|FORCC, SAREG, TPOINT|TINT|TLONG|TUNSIGNED|TULONG, SONE, TINT|TLONG, 0, RLEFT|RESCC, " decZL AL\n",ASG MINUS, INAREG|FOREFF|FORCC, AWD, ANYSIGNED|ANYUSIGNED, SONE, TINT|TLONG, 0, RLEFT|RESCC, " decZL AL\n",ASG MINUS, INAREG|FOREFF|FORCC, SAREG, TSHORT|TCHAR, SONE, TINT|TLONG, 0, RLEFT|RESCC, " decZL AL\n cvtZLl AL,AL\n",ASG MINUS, INAREG|FOREFF|FORCC, SAREG, TUSHORT|TUCHAR, SONE, TINT|TLONG, 0, RLEFT|RESCC, " decZL AL\n movzZLl AL,AL\n",PLUS, INAREG|INTAREG|FORCC, STAREG, TWORD, SONE, TWORD, 0, RLEFT|RESCC, " incZL AL\n",PLUS, INAREG|INTAREG|FORCC, STAREG, TSHORT|TCHAR, SONE, TWORD, 0, RLEFT|RESCC, " incZL AL\n cvtZLl AL,AL\n",PLUS, INAREG|INTAREG|FORCC, STAREG, TUSHORT|TUCHAR, SONE, TWORD, 0, RLEFT|RESCC, " incZL AL\n movzZLl AL,AL\n",MINUS, INAREG|INTAREG|FORCC, STAREG, TWORD, SONE, TWORD, 0, RLEFT|RESCC, " decZL AL\n",MINUS, INAREG|INTAREG|FORCC, STAREG, TSHORT|TCHAR, SONE, TWORD, 0, RLEFT|RESCC, " decZL AL\n cvtZLl AL,AL\n",MINUS, INAREG|INTAREG|FORCC, STAREG, TUSHORT|TUCHAR, SONE, TWORD, 0, RLEFT|RESCC, " decZL AL\n movzZLl AL,AL\n",ASG OPSIMP, INAREG|FOREFF|FORCC, SAREG|AWD, TWORD, SAREG|AWD, TWORD, 0, RLEFT|RESCC, " OL2 AR,AL\n",ASG OPSIMP, INAREG|FOREFF|FORCC, SAREG, TWORD, SAREG, TSHORT|TUSHORT|TCHAR|TUCHAR, 0, RLEFT|RESCC, " OL2 AR,AL\n",ASG OPSIMP, INAREG|FOREFF|FORCC, AWD, TSHORT|TUSHORT, SAREG|AWD, TSHORT|TUSHORT, 0, RLEFT|RESCC, " OW2 AR,AL\n",ASG OPSIMP, INAREG|FOREFF|FORCC, AWD, TSHORT|TUSHORT, SSCON, TWORD, 0, RLEFT|RESCC, " OW2 AR,AL\n",ASG OPSIMP, INAREG|FOREFF|FORCC, AWD, TCHAR|TUCHAR, SAREG|AWD, TCHAR|TUCHAR, 0, RLEFT|RESCC, " OB2 AR,AL\n",ASG OPSIMP, INAREG|FOREFF|FORCC, AWD, TCHAR|TUCHAR, SCCON, TWORD, 0, RLEFT|RESCC, " OB2 AR,AL\n",ASG OPSIMP, INAREG|FOREFF|FORCC, SAREG, TSHORT, SAREG|AWD, ANYFIXED, 0, RLEFT|RESCC, " OW2 AR,AL\n cvtZLl AL,AL\n",ASG OPSIMP, INAREG|FOREFF|FORCC, SAREG, TUSHORT, SAREG|AWD, ANYFIXED, 0, RLEFT|RESCC, " OW2 AR,AL\n movzZLl AL,AL\n",ASG OPSIMP, INAREG|FOREFF|FORCC, SAREG, TCHAR, SAREG|AWD, ANYFIXED, 0, RLEFT|RESCC, " OB2 AR,AL\n cvtZLl AL,AL\n",ASG OPSIMP, INAREG|FOREFF|FORCC, SAREG, TUCHAR, SAREG|AWD, ANYFIXED, 0, RLEFT|RESCC, " OB2 AR,AL\n movzZLl AL,AL\n",OPSIMP, INAREG|INTAREG|FORCC, STAREG, ANYFIXED, SAREG|AWD, TWORD, 0, RLEFT|RESCC, " OL2 AR,AL\n",OPSIMP, INAREG|INTAREG|FORCC, SAREG|AWD, TWORD, SAREG|AWD, TWORD, NAREG|NASL|NASR, RESC1|RESCC, " OL3 AR,AL,A1\n",ASG OPFLOAT, INAREG|FOREFF|FORCC, SAREG|AWD, TDOUBLE, SAREG|AWD, TDOUBLE, 0, RLEFT|RESCC, " OD2 AR,AL\n",ASG OPFLOAT, INAREG|FOREFF|FORCC, /* SLR003 */ SAREG|AWD, ANYSIGNED, /* SLR004 */ SAREG|AWD, TDOUBLE, NAREG, RLEFT|RESC1|RESCC, " cvtZLZV AL,A1\n OD2 AR,A1\n cvtZVZL A1,AL\n", ASG OPFLOAT, INAREG|FOREFF|FORCC, /* SLR004 */ SAREG|AWD, TUCHAR|TUSHORT, SAREG|AWD, TDOUBLE, NAREG, RLEFT|RESC1|RESCC, " movzZLl AL,A1\n cvtlZV A1,A1\n OD2 AR,A1\n cvtZVZL A1,AL\n", ASG OPFLOAT, INAREG|FOREFF|FORCC, /* vdp008 */ SAREG|AWD, ANYSIGNED, /* vdp008 */ SAREG|AWD, TFLOAT, FLOATFLG|NAREG, RLEFT|RESC1|RESCC, " cvtZLf AL,A1\n OF2 AR,A1\n cvtfZL A1,AL\n",ASG OPFLOAT, INAREG|FOREFF|FORCC, /* SLR003 */ SAREG|AWD, ANYSIGNED|TUNSIGNED|TULONG, /* SLR004 */ SAREG|AWD, TFLOAT, 2*NAREG, RLEFT|RESC1|RESCC, " cvtZLZV AL,A1\n cvtZRZV AR,A2\n OD2 A2,A1\n cvtZVZL A1,AL\n",/* 009 */ASG OPFLOAT, INAREG|FOREFF|FORCC, SAREG|AWD, ANYFIXED, SAREG|AWD, TFLOAT|TDOUBLE, NAREG, RLEFT|RESCC, /* usable() knows we need a reg pair */ " ZG\n",ASG OPFLOAT, INAREG|FOREFF|FORCC, /* vdp008 */ SAREG|AWD, TUSHORT|TUCHAR, /* vdp008*/ SAREG|AWD, TFLOAT, FLOATFLG|NAREG, RLEFT|RESC1|RESCC, /* vdp008 no 2*nareg*/ " movzZLl AL,A1\n cvtlf A1,A1\n OF2 AR,A1\n cvtfZL A1,AL\n",ASG OPFLOAT, INAREG|FOREFF|FORCC, /* SLR003 */ SAREG|AWD, TUSHORT|TUCHAR, /* SLR004 */ SAREG|AWD, TFLOAT, 2*NAREG, RLEFT|RESC1|RESCC, " movzZLl AL,A1\n cvtlZV A1,A1\n cvtZRZV AR,A2\n OD2 A2,A1\n cvtZVZL A1,AL\n",/* * #ifdef FORT * SLR002 This production is not needed and is incorrect because * it does floating arithmetic in float instead of double * vdp008 Add this production back in but check FLOATFLG */ASG OPFLOAT, INAREG|FOREFF|FORCC|INTAREG, /*vdp008 also added intareg*/ SAREG|AWD, TFLOAT, SAREG|AWD, TFLOAT, FLOATFLG, RLEFT|RESCC, " OF2 AR,AL\n", /* slr002 float arith must be done in double *//* vdp008 #endif */ ASG OPFLOAT, INAREG|FOREFF|FORCC, SAREG|AWD, TDOUBLE, SAREG|AWD, TFLOAT, NAREG|NASR, RLEFT|RESCC, " cvtfZV AR,A1\n OD2 A1,AL\n", /* slr001 */ASG OPFLOAT, INAREG|INTAREG|FOREFF|FORCC, SAREG|AWD, TFLOAT, SAREG|AWD, TDOUBLE, NAREG, RLEFT|RESC1|RESCC, " cvtfZV AL,A1\n OD2 AR,A1\n cvtZVf A1,AL\n", /* slr001 */OPFLOAT, INAREG|INTAREG|FORCC, STAREG, TDOUBLE, SAREG|AWD, TDOUBLE, 0, RLEFT|RESCC, " OD2 AR,AL\n",OPFLOAT, INAREG|INTAREG|FORCC, SAREG|AWD, TDOUBLE, SAREG|AWD, TDOUBLE, NAREG|NASL|NASR, RESC1|RESCC, " OD3 AR,AL,A1\n",OPFLOAT, INAREG|INTAREG|FORCC, SAREG|AWD, TFLOAT, SAREG|AWD, TDOUBLE, NAREG|NASL, RESC1|RESCC, " cvtfZV AL,A1\n OD2 AR,A1\n", /* slr001 */OPFLOAT, INAREG|INTAREG|FORCC, SAREG|AWD, TDOUBLE, SAREG|AWD, TFLOAT, NAREG|NASR, RESC1|RESCC, " cvtfZV AR,A1\n OD3 A1,AL,A1\n", /* slr001 */ /* vdp008 added next two productions to match float op float * when fflag is set ... see FLOATFLG */OPFLOAT, INAREG|INTAREG|FORCC, STAREG, TFLOAT, SAREG|AWD, TFLOAT, FLOATFLG, RLEFT|RESCC, " OF2 TAR,AL\n",OPFLOAT, INAREG|INTAREG|FORCC, SAREG|AWD, TFLOAT, SAREG|AWD, TFLOAT, FLOATFLG|NAREG|NASL|NASR, RESC1|RESCC, " OF3 AR,AL,TA1\n",/* SLR002 This production is not needed and is incorrect becuase it does floating arithmetic in float instead of doubleOPFLOAT, INAREG|INTAREG|FORCC, SAREG|AWD, TFLOAT, SAREG|AWD, TFLOAT, NAREG|NASL|NASR, RESC1|RESCC, " OF3 AR,AL,A1\n cvtfZV A1,A1\n", slr001*/ /* Default actions for hard trees ... */# define DF(x) FORREW,SANY,TANY,SANY,TANY,REWRITE,x,""UNARY MUL, DF( UNARY MUL ),INCR, DF(INCR),DECR, DF(INCR),ASSIGN, DF(ASSIGN),STASG, DF(STASG),FLD, DF(FLD),OPLEAF, DF(NAME),OPLOG, FORCC, SANY, TANY, SANY, TANY, REWRITE, BITYPE, "",OPLOG, DF(NOT),COMOP, DF(COMOP),INIT, DF(INIT),OPUNARY, DF(UNARY MINUS),ASG OPANY, DF(ASG PLUS),OPANY, DF(BITYPE),FREE, FREE, FREE, FREE, FREE, FREE, FREE, FREE, "help; I'm in trouble\n" };
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -