dagcheck.c

来自「基于4个mips核的noc设计」· C语言 代码 · 共 2,087 行 · 第 1/4 页

C
2,087
字号
#include "c.h"typedef Node NODEPTR_TYPE;#define OP_LABEL(p)     (specific((p)->op))#define LEFT_CHILD(p)   ((p)->kids[0])#define RIGHT_CHILD(p)  ((p)->kids[1])#define STATE_LABEL(p)  ((p)->x.state)#define PANIC	   error/*generated at Tue Dec 18 12:36:56 2007by $Id: lburg.c,v 2.8 1997/10/30 23:41:10 drh Exp $*/static void _kids(NODEPTR_TYPE, int, NODEPTR_TYPE[]);static void _label(NODEPTR_TYPE);static int _rule(void*, int);#define _stmt_NT 1#define _P_NT 2#define _V_NT 3#define _bogus_NT 4#define _I_NT 5#define _U_NT 6#define _F_NT 7#define _B_NT 8static char *_ntname[] = {	0,	"stmt",	"P",	"V",	"bogus",	"I",	"U",	"F",	"B",	0};struct _state {	short cost[9];	struct {		unsigned int _stmt:4;		unsigned int _P:4;		unsigned int _V:6;		unsigned int _bogus:3;		unsigned int _I:5;		unsigned int _U:5;		unsigned int _F:4;		unsigned int _B:2;	} rule;};static short _nts_0[] = { _P_NT, 0 };static short _nts_1[] = { _V_NT, 0 };static short _nts_2[] = { _I_NT, 0 };static short _nts_3[] = { _U_NT, 0 };static short _nts_4[] = { _F_NT, 0 };static short _nts_5[] = { _B_NT, 0 };static short _nts_6[] = { _bogus_NT, 0 };static short _nts_7[] = { 0 };static short _nts_8[] = { _P_NT, _B_NT, 0 };static short _nts_9[] = { _P_NT, _F_NT, 0 };static short _nts_10[] = { _P_NT, _I_NT, 0 };static short _nts_11[] = { _P_NT, _U_NT, 0 };static short _nts_12[] = { _P_NT, _P_NT, 0 };static short _nts_13[] = { _F_NT, _F_NT, 0 };static short _nts_14[] = { _I_NT, _I_NT, 0 };static short _nts_15[] = { _I_NT, _P_NT, 0 };static short _nts_16[] = { _U_NT, _P_NT, 0 };static short _nts_17[] = { _U_NT, _U_NT, 0 };static short _nts_18[] = { _U_NT, _I_NT, 0 };static short *_nts[] = {	0,	/* 0 */	_nts_0,	/* 1 */	_nts_0,	/* 2 */	_nts_0,	/* 3 */	_nts_0,	/* 4 */	_nts_0,	/* 5 */	_nts_0,	/* 6 */	_nts_0,	/* 7 */	_nts_0,	/* 8 */	_nts_0,	/* 9 */	_nts_1,	/* 10 */	_nts_2,	/* 11 */	_nts_3,	/* 12 */	_nts_0,	/* 13 */	_nts_4,	/* 14 */	_nts_5,	/* 15 */	_nts_1,	/* 16 */	_nts_6,	/* 17 */	_nts_6,	/* 18 */	_nts_6,	/* 19 */	_nts_6,	/* 20 */	_nts_6,	/* 21 */	_nts_6,	/* 22 */	_nts_7,	/* 23 */	_nts_7,	/* 24 */	_nts_7,	/* 25 */	_nts_7,	/* 26 */	_nts_5,	/* 27 */	_nts_4,	/* 28 */	_nts_2,	/* 29 */	_nts_3,	/* 30 */	_nts_0,	/* 31 */	_nts_8,	/* 32 */	_nts_9,	/* 33 */	_nts_10,	/* 34 */	_nts_11,	/* 35 */	_nts_12,	/* 36 */	_nts_0,	/* 37 */	_nts_0,	/* 38 */	_nts_0,	/* 39 */	_nts_0,	/* 40 */	_nts_0,	/* 41 */	_nts_2,	/* 42 */	_nts_3,	/* 43 */	_nts_4,	/* 44 */	_nts_2,	/* 45 */	_nts_3,	/* 46 */	_nts_0,	/* 47 */	_nts_2,	/* 48 */	_nts_4,	/* 49 */	_nts_3,	/* 50 */	_nts_0,	/* 51 */	_nts_4,	/* 52 */	_nts_2,	/* 53 */	_nts_12,	/* 54 */	_nts_0,	/* 55 */	_nts_0,	/* 56 */	_nts_0,	/* 57 */	_nts_0,	/* 58 */	_nts_0,	/* 59 */	_nts_4,	/* 60 */	_nts_2,	/* 61 */	_nts_3,	/* 62 */	_nts_0,	/* 63 */	_nts_7,	/* 64 */	_nts_7,	/* 65 */	_nts_7,	/* 66 */	_nts_7,	/* 67 */	_nts_13,	/* 68 */	_nts_14,	/* 69 */	_nts_10,	/* 70 */	_nts_15,	/* 71 */	_nts_16,	/* 72 */	_nts_11,	/* 73 */	_nts_17,	/* 74 */	_nts_13,	/* 75 */	_nts_14,	/* 76 */	_nts_10,	/* 77 */	_nts_11,	/* 78 */	_nts_17,	/* 79 */	_nts_14,	/* 80 */	_nts_18,	/* 81 */	_nts_14,	/* 82 */	_nts_17,	/* 83 */	_nts_14,	/* 84 */	_nts_18,	/* 85 */	_nts_17,	/* 86 */	_nts_14,	/* 87 */	_nts_3,	/* 88 */	_nts_2,	/* 89 */	_nts_14,	/* 90 */	_nts_17,	/* 91 */	_nts_17,	/* 92 */	_nts_14,	/* 93 */	_nts_13,	/* 94 */	_nts_14,	/* 95 */	_nts_17,	/* 96 */	_nts_13,	/* 97 */	_nts_14,	/* 98 */	_nts_17,	/* 99 */	_nts_13,	/* 100 */	_nts_14,	/* 101 */	_nts_17,	/* 102 */	_nts_13,	/* 103 */	_nts_14,	/* 104 */	_nts_17,	/* 105 */	_nts_13,	/* 106 */	_nts_14,	/* 107 */	_nts_17,	/* 108 */	_nts_13,	/* 109 */	_nts_14,	/* 110 */	_nts_17,	/* 111 */	_nts_13,	/* 112 */	_nts_14,	/* 113 */	_nts_17,	/* 114 */	_nts_13,	/* 115 */	_nts_14,	/* 116 */	_nts_17,	/* 117 */	_nts_0,	/* 118 */	_nts_7,	/* 119 */};static char *_templates[] = {/* 0 */	0,/* 1 */	"",	/* stmt: INDIRB(P) *//* 2 */	"",	/* stmt: INDIRF(P) *//* 3 */	"",	/* stmt: INDIRI(P) *//* 4 */	"",	/* stmt: INDIRU(P) *//* 5 */	"",	/* stmt: INDIRP(P) *//* 6 */	"",	/* stmt: CALLF(P) *//* 7 */	"",	/* stmt: CALLI(P) *//* 8 */	"",	/* stmt: CALLU(P) *//* 9 */	"",	/* stmt: CALLP(P) *//* 10 */	"",	/* stmt: V *//* 11 */	"",	/* bogus: I *//* 12 */	"",	/* bogus: U *//* 13 */	"",	/* bogus: P *//* 14 */	"",	/* bogus: F *//* 15 */	"",	/* bogus: B *//* 16 */	"",	/* bogus: V *//* 17 */	"",	/* I: bogus *//* 18 */	"",	/* U: bogus *//* 19 */	"",	/* P: bogus *//* 20 */	"",	/* F: bogus *//* 21 */	"",	/* B: bogus *//* 22 */	"",	/* V: bogus *//* 23 */	"",	/* F: CNSTF *//* 24 */	"",	/* I: CNSTI *//* 25 */	"",	/* P: CNSTP *//* 26 */	"",	/* U: CNSTU *//* 27 */	"",	/* V: ARGB(B) *//* 28 */	"",	/* V: ARGF(F) *//* 29 */	"",	/* V: ARGI(I) *//* 30 */	"",	/* V: ARGU(U) *//* 31 */	"",	/* V: ARGP(P) *//* 32 */	"",	/* V: ASGNB(P,B) *//* 33 */	"",	/* V: ASGNF(P,F) *//* 34 */	"",	/* V: ASGNI(P,I) *//* 35 */	"",	/* V: ASGNU(P,U) *//* 36 */	"",	/* V: ASGNP(P,P) *//* 37 */	"",	/* B: INDIRB(P) *//* 38 */	"",	/* F: INDIRF(P) *//* 39 */	"",	/* I: INDIRI(P) *//* 40 */	"",	/* U: INDIRU(P) *//* 41 */	"",	/* P: INDIRP(P) *//* 42 */	"",	/* I: CVII(I) *//* 43 */	"",	/* I: CVUI(U) *//* 44 */	"",	/* I: CVFI(F) *//* 45 */	"",	/* U: CVIU(I) *//* 46 */	"",	/* U: CVUU(U) *//* 47 */	"",	/* U: CVPU(P) *//* 48 */	"",	/* F: CVIF(I) *//* 49 */	"",	/* F: CVFF(F) *//* 50 */	"",	/* P: CVUP(U) *//* 51 */	"",	/* P: CVPP(P) *//* 52 */	"",	/* F: NEGF(F) *//* 53 */	"",	/* I: NEGI(I) *//* 54 */	"",	/* V: CALLB(P,P) *//* 55 */	"",	/* F: CALLF(P) *//* 56 */	"",	/* I: CALLI(P) *//* 57 */	"",	/* U: CALLU(P) *//* 58 */	"",	/* P: CALLP(P) *//* 59 */	"",	/* V: CALLV(P) *//* 60 */	"",	/* V: RETF(F) *//* 61 */	"",	/* V: RETI(I) *//* 62 */	"",	/* V: RETU(U) *//* 63 */	"",	/* V: RETP(P) *//* 64 */	"",	/* V: RETV *//* 65 */	"",	/* P: ADDRGP *//* 66 */	"",	/* P: ADDRFP *//* 67 */	"",	/* P: ADDRLP *//* 68 */	"",	/* F: ADDF(F,F) *//* 69 */	"",	/* I: ADDI(I,I) *//* 70 */	"",	/* P: ADDP(P,I) *//* 71 */	"",	/* P: ADDP(I,P) *//* 72 */	"",	/* P: ADDP(U,P) *//* 73 */	"",	/* P: ADDP(P,U) *//* 74 */	"",	/* U: ADDU(U,U) *//* 75 */	"",	/* F: SUBF(F,F) *//* 76 */	"",	/* I: SUBI(I,I) *//* 77 */	"",	/* P: SUBP(P,I) *//* 78 */	"",	/* P: SUBP(P,U) *//* 79 */	"",	/* U: SUBU(U,U) *//* 80 */	"",	/* I: LSHI(I,I) *//* 81 */	"",	/* U: LSHU(U,I) *//* 82 */	"",	/* I: MODI(I,I) *//* 83 */	"",	/* U: MODU(U,U) *//* 84 */	"",	/* I: RSHI(I,I) *//* 85 */	"",	/* U: RSHU(U,I) *//* 86 */	"",	/* U: BANDU(U,U) *//* 87 */	"",	/* I: BANDI(I,I) *//* 88 */	"",	/* U: BCOMU(U) *//* 89 */	"",	/* I: BCOMI(I) *//* 90 */	"",	/* I: BORI(I,I) *//* 91 */	"",	/* U: BORU(U,U) *//* 92 */	"",	/* U: BXORU(U,U) *//* 93 */	"",	/* I: BXORI(I,I) *//* 94 */	"",	/* F: DIVF(F,F) *//* 95 */	"",	/* I: DIVI(I,I) *//* 96 */	"",	/* U: DIVU(U,U) *//* 97 */	"",	/* F: MULF(F,F) *//* 98 */	"",	/* I: MULI(I,I) *//* 99 */	"",	/* U: MULU(U,U) *//* 100 */	"",	/* V: EQF(F,F) *//* 101 */	"",	/* V: EQI(I,I) *//* 102 */	"",	/* V: EQU(U,U) *//* 103 */	"",	/* V: GEF(F,F) *//* 104 */	"",	/* V: GEI(I,I) *//* 105 */	"",	/* V: GEU(U,U) *//* 106 */	"",	/* V: GTF(F,F) *//* 107 */	"",	/* V: GTI(I,I) *//* 108 */	"",	/* V: GTU(U,U) *//* 109 */	"",	/* V: LEF(F,F) *//* 110 */	"",	/* V: LEI(I,I) *//* 111 */	"",	/* V: LEU(U,U) *//* 112 */	"",	/* V: LTF(F,F) *//* 113 */	"",	/* V: LTI(I,I) *//* 114 */	"",	/* V: LTU(U,U) *//* 115 */	"",	/* V: NEF(F,F) *//* 116 */	"",	/* V: NEI(I,I) *//* 117 */	"",	/* V: NEU(U,U) *//* 118 */	"",	/* V: JUMPV(P) *//* 119 */	"",	/* V: LABELV */};static char _isinstruction[] = {/* 0 */	0,/* 1 */	0,	/*  *//* 2 */	0,	/*  *//* 3 */	0,	/*  *//* 4 */	0,	/*  *//* 5 */	0,	/*  *//* 6 */	0,	/*  *//* 7 */	0,	/*  *//* 8 */	0,	/*  *//* 9 */	0,	/*  *//* 10 */	0,	/*  *//* 11 */	0,	/*  *//* 12 */	0,	/*  *//* 13 */	0,	/*  *//* 14 */	0,	/*  *//* 15 */	0,	/*  *//* 16 */	0,	/*  *//* 17 */	0,	/*  *//* 18 */	0,	/*  *//* 19 */	0,	/*  *//* 20 */	0,	/*  *//* 21 */	0,	/*  *//* 22 */	0,	/*  *//* 23 */	0,	/*  *//* 24 */	0,	/*  *//* 25 */	0,	/*  *//* 26 */	0,	/*  *//* 27 */	0,	/*  *//* 28 */	0,	/*  *//* 29 */	0,	/*  *//* 30 */	0,	/*  *//* 31 */	0,	/*  *//* 32 */	0,	/*  *//* 33 */	0,	/*  *//* 34 */	0,	/*  *//* 35 */	0,	/*  *//* 36 */	0,	/*  *//* 37 */	0,	/*  *//* 38 */	0,	/*  *//* 39 */	0,	/*  *//* 40 */	0,	/*  *//* 41 */	0,	/*  *//* 42 */	0,	/*  *//* 43 */	0,	/*  *//* 44 */	0,	/*  *//* 45 */	0,	/*  *//* 46 */	0,	/*  *//* 47 */	0,	/*  *//* 48 */	0,	/*  *//* 49 */	0,	/*  *//* 50 */	0,	/*  *//* 51 */	0,	/*  *//* 52 */	0,	/*  *//* 53 */	0,	/*  *//* 54 */	0,	/*  *//* 55 */	0,	/*  *//* 56 */	0,	/*  *//* 57 */	0,	/*  *//* 58 */	0,	/*  *//* 59 */	0,	/*  *//* 60 */	0,	/*  *//* 61 */	0,	/*  *//* 62 */	0,	/*  *//* 63 */	0,	/*  *//* 64 */	0,	/*  *//* 65 */	0,	/*  *//* 66 */	0,	/*  *//* 67 */	0,	/*  *//* 68 */	0,	/*  *//* 69 */	0,	/*  *//* 70 */	0,	/*  *//* 71 */	0,	/*  *//* 72 */	0,	/*  *//* 73 */	0,	/*  *//* 74 */	0,	/*  *//* 75 */	0,	/*  *//* 76 */	0,	/*  *//* 77 */	0,	/*  *//* 78 */	0,	/*  *//* 79 */	0,	/*  *//* 80 */	0,	/*  *//* 81 */	0,	/*  *//* 82 */	0,	/*  *//* 83 */	0,	/*  *//* 84 */	0,	/*  *//* 85 */	0,	/*  *//* 86 */	0,	/*  *//* 87 */	0,	/*  *//* 88 */	0,	/*  *//* 89 */	0,	/*  *//* 90 */	0,	/*  *//* 91 */	0,	/*  *//* 92 */	0,	/*  *//* 93 */	0,	/*  *//* 94 */	0,	/*  *//* 95 */	0,	/*  *//* 96 */	0,	/*  *//* 97 */	0,	/*  *//* 98 */	0,	/*  *//* 99 */	0,	/*  *//* 100 */	0,	/*  *//* 101 */	0,	/*  *//* 102 */	0,	/*  *//* 103 */	0,	/*  *//* 104 */	0,	/*  *//* 105 */	0,	/*  *//* 106 */	0,	/*  *//* 107 */	0,	/*  *//* 108 */	0,	/*  *//* 109 */	0,	/*  *//* 110 */	0,	/*  *//* 111 */	0,	/*  *//* 112 */	0,	/*  *//* 113 */	0,	/*  *//* 114 */	0,	/*  *//* 115 */	0,	/*  *//* 116 */	0,	/*  *//* 117 */	0,	/*  *//* 118 */	0,	/*  *//* 119 */	0,	/*  */};static char *_string[] = {/* 0 */	0,/* 1 */	"stmt: INDIRB(P)",/* 2 */	"stmt: INDIRF(P)",/* 3 */	"stmt: INDIRI(P)",/* 4 */	"stmt: INDIRU(P)",/* 5 */	"stmt: INDIRP(P)",/* 6 */	"stmt: CALLF(P)",/* 7 */	"stmt: CALLI(P)",/* 8 */	"stmt: CALLU(P)",/* 9 */	"stmt: CALLP(P)",/* 10 */	"stmt: V",/* 11 */	"bogus: I",/* 12 */	"bogus: U",/* 13 */	"bogus: P",/* 14 */	"bogus: F",/* 15 */	"bogus: B",/* 16 */	"bogus: V",/* 17 */	"I: bogus",/* 18 */	"U: bogus",/* 19 */	"P: bogus",/* 20 */	"F: bogus",/* 21 */	"B: bogus",/* 22 */	"V: bogus",/* 23 */	"F: CNSTF",/* 24 */	"I: CNSTI",/* 25 */	"P: CNSTP",/* 26 */	"U: CNSTU",/* 27 */	"V: ARGB(B)",/* 28 */	"V: ARGF(F)",/* 29 */	"V: ARGI(I)",/* 30 */	"V: ARGU(U)",/* 31 */	"V: ARGP(P)",/* 32 */	"V: ASGNB(P,B)",/* 33 */	"V: ASGNF(P,F)",/* 34 */	"V: ASGNI(P,I)",/* 35 */	"V: ASGNU(P,U)",/* 36 */	"V: ASGNP(P,P)",/* 37 */	"B: INDIRB(P)",/* 38 */	"F: INDIRF(P)",/* 39 */	"I: INDIRI(P)",/* 40 */	"U: INDIRU(P)",/* 41 */	"P: INDIRP(P)",/* 42 */	"I: CVII(I)",/* 43 */	"I: CVUI(U)",/* 44 */	"I: CVFI(F)",/* 45 */	"U: CVIU(I)",/* 46 */	"U: CVUU(U)",/* 47 */	"U: CVPU(P)",/* 48 */	"F: CVIF(I)",/* 49 */	"F: CVFF(F)",/* 50 */	"P: CVUP(U)",/* 51 */	"P: CVPP(P)",/* 52 */	"F: NEGF(F)",/* 53 */	"I: NEGI(I)",/* 54 */	"V: CALLB(P,P)",/* 55 */	"F: CALLF(P)",/* 56 */	"I: CALLI(P)",/* 57 */	"U: CALLU(P)",/* 58 */	"P: CALLP(P)",/* 59 */	"V: CALLV(P)",/* 60 */	"V: RETF(F)",/* 61 */	"V: RETI(I)",/* 62 */	"V: RETU(U)",/* 63 */	"V: RETP(P)",/* 64 */	"V: RETV",/* 65 */	"P: ADDRGP",/* 66 */	"P: ADDRFP",/* 67 */	"P: ADDRLP",/* 68 */	"F: ADDF(F,F)",/* 69 */	"I: ADDI(I,I)",/* 70 */	"P: ADDP(P,I)",/* 71 */	"P: ADDP(I,P)",/* 72 */	"P: ADDP(U,P)",/* 73 */	"P: ADDP(P,U)",/* 74 */	"U: ADDU(U,U)",/* 75 */	"F: SUBF(F,F)",/* 76 */	"I: SUBI(I,I)",/* 77 */	"P: SUBP(P,I)",/* 78 */	"P: SUBP(P,U)",/* 79 */	"U: SUBU(U,U)",/* 80 */	"I: LSHI(I,I)",

⌨️ 快捷键说明

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