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

📄 minimips.c

📁 基于4个mips核的noc设计
💻 C
📖 第 1 页 / 共 5 页
字号:
		_label(LEFT_CHILD(a));		_label(RIGHT_CHILD(a));		if (	/* stmt: ASGNU4(VREGP,reg) */			LEFT_CHILD(a)->op == 711 /* VREGP */		) {			c = ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 0;			if (c + 0 < p->cost[_stmt_NT]) {				p->cost[_stmt_NT] = c + 0;				p->rule._stmt = 6;			}		}		/* stmt: ASGNU4(addr,reg) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_addr_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 1;		if (c + 0 < p->cost[_stmt_NT]) {			p->cost[_stmt_NT] = c + 0;			p->rule._stmt = 11;		}		break;	case 4151: /* ASGNP4 */		_label(LEFT_CHILD(a));		_label(RIGHT_CHILD(a));		if (	/* stmt: ASGNP4(VREGP,reg) */			LEFT_CHILD(a)->op == 711 /* VREGP */		) {			c = ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 0;			if (c + 0 < p->cost[_stmt_NT]) {				p->cost[_stmt_NT] = c + 0;				p->rule._stmt = 5;			}		}		/* stmt: ASGNP4(addr,reg) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_addr_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 1;		if (c + 0 < p->cost[_stmt_NT]) {			p->cost[_stmt_NT] = c + 0;			p->rule._stmt = 12;		}		break;	case 4161: /* INDIRF4 */		_label(LEFT_CHILD(a));		if (	/* reg: INDIRF4(VREGP) */			LEFT_CHILD(a)->op == 711 /* VREGP */		) {			if (mayrecalc(a)) {				struct _state *q = a->syms[RX]->u.t.cse->x.state;				if (q->cost[_stmt_NT] == 0) {					p->cost[_stmt_NT] = 0;					p->rule._stmt = q->rule._stmt;				}				if (q->cost[_reg_NT] == 0) {					p->cost[_reg_NT] = 0;					p->rule._reg = q->rule._reg;				}				if (q->cost[_con_NT] == 0) {					p->cost[_con_NT] = 0;					p->rule._con = q->rule._con;				}				if (q->cost[_acon_NT] == 0) {					p->cost[_acon_NT] = 0;					p->rule._acon = q->rule._acon;				}				if (q->cost[_addr_NT] == 0) {					p->cost[_addr_NT] = 0;					p->rule._addr = q->rule._addr;				}				if (q->cost[_rc_NT] == 0) {					p->cost[_rc_NT] = 0;					p->rule._rc = q->rule._rc;				}				if (q->cost[_ar_NT] == 0) {					p->cost[_ar_NT] = 0;					p->rule._ar = q->rule._ar;				}				if (q->cost[_magic_addr_NT] == 0) {					p->cost[_magic_addr_NT] = 0;					p->rule._magic_addr = q->rule._magic_addr;				}			}			c = 0;			if (c + 0 < p->cost[_reg_NT]) {				p->cost[_reg_NT] = c + 0;				p->rule._reg = 3;				_closure_reg(a, c + 0);			}		}		/* reg: INDIRF4(addr) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_addr_NT] + 1;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 22;			_closure_reg(a, c + 0);		}		break;	case 4165: /* INDIRI4 */		_label(LEFT_CHILD(a));		if (	/* reg: INDIRI4(VREGP) */			LEFT_CHILD(a)->op == 711 /* VREGP */		) {			if (mayrecalc(a)) {				struct _state *q = a->syms[RX]->u.t.cse->x.state;				if (q->cost[_stmt_NT] == 0) {					p->cost[_stmt_NT] = 0;					p->rule._stmt = q->rule._stmt;				}				if (q->cost[_reg_NT] == 0) {					p->cost[_reg_NT] = 0;					p->rule._reg = q->rule._reg;				}				if (q->cost[_con_NT] == 0) {					p->cost[_con_NT] = 0;					p->rule._con = q->rule._con;				}				if (q->cost[_acon_NT] == 0) {					p->cost[_acon_NT] = 0;					p->rule._acon = q->rule._acon;				}				if (q->cost[_addr_NT] == 0) {					p->cost[_addr_NT] = 0;					p->rule._addr = q->rule._addr;				}				if (q->cost[_rc_NT] == 0) {					p->cost[_rc_NT] = 0;					p->rule._rc = q->rule._rc;				}				if (q->cost[_ar_NT] == 0) {					p->cost[_ar_NT] = 0;					p->rule._ar = q->rule._ar;				}				if (q->cost[_magic_addr_NT] == 0) {					p->cost[_magic_addr_NT] = 0;					p->rule._magic_addr = q->rule._magic_addr;				}			}			c = 0;			if (c + 0 < p->cost[_reg_NT]) {				p->cost[_reg_NT] = c + 0;				p->rule._reg = 4;				_closure_reg(a, c + 0);			}		}		/* reg: INDIRI4(addr) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_addr_NT] + 1;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 16;			_closure_reg(a, c + 0);		}		break;	case 4166: /* INDIRU4 */		_label(LEFT_CHILD(a));		if (	/* reg: INDIRU4(VREGP) */			LEFT_CHILD(a)->op == 711 /* VREGP */		) {			if (mayrecalc(a)) {				struct _state *q = a->syms[RX]->u.t.cse->x.state;				if (q->cost[_stmt_NT] == 0) {					p->cost[_stmt_NT] = 0;					p->rule._stmt = q->rule._stmt;				}				if (q->cost[_reg_NT] == 0) {					p->cost[_reg_NT] = 0;					p->rule._reg = q->rule._reg;				}				if (q->cost[_con_NT] == 0) {					p->cost[_con_NT] = 0;					p->rule._con = q->rule._con;				}				if (q->cost[_acon_NT] == 0) {					p->cost[_acon_NT] = 0;					p->rule._acon = q->rule._acon;				}				if (q->cost[_addr_NT] == 0) {					p->cost[_addr_NT] = 0;					p->rule._addr = q->rule._addr;				}				if (q->cost[_rc_NT] == 0) {					p->cost[_rc_NT] = 0;					p->rule._rc = q->rule._rc;				}				if (q->cost[_ar_NT] == 0) {					p->cost[_ar_NT] = 0;					p->rule._ar = q->rule._ar;				}				if (q->cost[_magic_addr_NT] == 0) {					p->cost[_magic_addr_NT] = 0;					p->rule._magic_addr = q->rule._magic_addr;				}			}			c = 0;			if (c + 0 < p->cost[_reg_NT]) {				p->cost[_reg_NT] = c + 0;				p->rule._reg = 6;				_closure_reg(a, c + 0);			}		}		/* reg: INDIRU4(addr) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_addr_NT] + 1;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 17;			_closure_reg(a, c + 0);		}		break;	case 4167: /* INDIRP4 */		_label(LEFT_CHILD(a));		if (	/* reg: INDIRP4(VREGP) */			LEFT_CHILD(a)->op == 711 /* VREGP */		) {			if (mayrecalc(a)) {				struct _state *q = a->syms[RX]->u.t.cse->x.state;				if (q->cost[_stmt_NT] == 0) {					p->cost[_stmt_NT] = 0;					p->rule._stmt = q->rule._stmt;				}				if (q->cost[_reg_NT] == 0) {					p->cost[_reg_NT] = 0;					p->rule._reg = q->rule._reg;				}				if (q->cost[_con_NT] == 0) {					p->cost[_con_NT] = 0;					p->rule._con = q->rule._con;				}				if (q->cost[_acon_NT] == 0) {					p->cost[_acon_NT] = 0;					p->rule._acon = q->rule._acon;				}				if (q->cost[_addr_NT] == 0) {					p->cost[_addr_NT] = 0;					p->rule._addr = q->rule._addr;				}				if (q->cost[_rc_NT] == 0) {					p->cost[_rc_NT] = 0;					p->rule._rc = q->rule._rc;				}				if (q->cost[_ar_NT] == 0) {					p->cost[_ar_NT] = 0;					p->rule._ar = q->rule._ar;				}				if (q->cost[_magic_addr_NT] == 0) {					p->cost[_magic_addr_NT] = 0;					p->rule._magic_addr = q->rule._magic_addr;				}			}			c = 0;			if (c + 0 < p->cost[_reg_NT]) {				p->cost[_reg_NT] = c + 0;				p->rule._reg = 5;				_closure_reg(a, c + 0);			}		}		/* reg: INDIRP4(addr) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_addr_NT] + 1;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 18;			_closure_reg(a, c + 0);		}		break;	case 4209: /* CVFF4 */		_label(LEFT_CHILD(a));		/* reg: CVFF4(reg) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + 100;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 66;			_closure_reg(a, c + 0);		}		break;	case 4213: /* CVFI4 */		_label(LEFT_CHILD(a));		/* reg: CVFI4(reg) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + 100;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 68;			_closure_reg(a, c + 0);		}		break;	case 4225: /* CVIF4 */		_label(LEFT_CHILD(a));		/* reg: CVIF4(reg) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + 100;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 67;			_closure_reg(a, c + 0);		}		break;	case 4229: /* CVII4 */		_label(LEFT_CHILD(a));		if (	/* reg: CVII4(INDIRI1(addr)) */			LEFT_CHILD(a)->op == 1093 /* INDIRI1 */		) {			c = ((struct _state *)(LEFT_CHILD(LEFT_CHILD(a))->x.state))->cost[_addr_NT] + 1;			if (c + 0 < p->cost[_reg_NT]) {				p->cost[_reg_NT] = c + 0;				p->rule._reg = 19;				_closure_reg(a, c + 0);			}		}		/* reg: CVII4(reg) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + 2;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 63;			_closure_reg(a, c + 0);		}		break;	case 4230: /* CVIU4 */		break;	case 4246: /* CVPU4 */		break;	case 4277: /* CVUI4 */		_label(LEFT_CHILD(a));		if (	/* reg: CVUI4(INDIRU1(addr)) */			LEFT_CHILD(a)->op == 1094 /* INDIRU1 */		) {			c = ((struct _state *)(LEFT_CHILD(LEFT_CHILD(a))->x.state))->cost[_addr_NT] + 2;			if (c + 0 < p->cost[_reg_NT]) {				p->cost[_reg_NT] = c + 0;				p->rule._reg = 21;				_closure_reg(a, c + 0);			}		}		/* reg: CVUI4(reg) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + 1;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 64;			_closure_reg(a, c + 0);		}		break;	case 4278: /* CVUU4 */		_label(LEFT_CHILD(a));		if (	/* reg: CVUU4(INDIRU1(addr)) */			LEFT_CHILD(a)->op == 1094 /* INDIRU1 */		) {			c = ((struct _state *)(LEFT_CHILD(LEFT_CHILD(a))->x.state))->cost[_addr_NT] + 2;			if (c + 0 < p->cost[_reg_NT]) {				p->cost[_reg_NT] = c + 0;				p->rule._reg = 20;				_closure_reg(a, c + 0);			}		}		/* reg: CVUU4(reg) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + 1;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 65;			_closure_reg(a, c + 0);		}		break;	case 4279: /* CVUP4 */		break;	case 4289: /* NEGF4 */		_label(LEFT_CHILD(a));		/* reg: NEGF4(reg) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + 100;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 62;			_closure_reg(a, c + 0);		}		break;	case 4293: /* NEGI4 */		_label(LEFT_CHILD(a));		/* reg: NEGI4(reg) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + 1;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 51;			_closure_reg(a, c + 0);		}		break;	case 4305: /* CALLF4 */		_label(LEFT_CHILD(a));		/* reg: CALLF4(ar) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_ar_NT] + 1;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 69;			_closure_reg(a, c + 0);		}		break;	case 4309: /* CALLI4 */		_label(LEFT_CHILD(a));		/* reg: CALLI4(ar) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_ar_NT] + 1;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 70;			_closure_reg(a, c + 0);		}		break;	case 4310: /* CALLU4 */		_label(LEFT_CHILD(a));		/* reg: CALLU4(ar) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_ar_NT] + 1;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 72;			_closure_reg(a, c + 0);		}		break;	case 4311: /* CALLP4 */		_label(LEFT_CHILD(a));		/* reg: CALLP4(ar) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_ar_NT] + 1;		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 71;			_closure_reg(a, c + 0);		}		break;	case 4321: /* LOADF4 */		_label(LEFT_CHILD(a));		/* reg: LOADF4(reg) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + (move(a));		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 57;			_closure_reg(a, c + 0);		}		break;	case 4325: /* LOADI4 */		_label(LEFT_CHILD(a));		/* reg: LOADI4(reg) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + (move(a));		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 54;			_closure_reg(a, c + 0);		}		break;	case 4326: /* LOADU4 */		_label(LEFT_CHILD(a));		/* reg: LOADU4(reg) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + (move(a));		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 56;			_closure_reg(a, c + 0);		}		break;	case 4327: /* LOADP4 */		_label(LEFT_CHILD(a));		/* reg: LOADP4(reg) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + (move(a));		if (c + 0 < p->cost[_reg_NT]) {			p->cost[_reg_NT] = c + 0;			p->rule._reg = 55;			_closure_reg(a, c + 0);		}		break;	case 4337: /* RETF4 */		_label(LEFT_CHILD(a));		/* stmt: RETF4(reg) */		c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + 1;		if (c + 0 < p->cost[_stmt_NT]) {			p->cost[_stmt_NT] = c + 0;			p->rule._stmt = 36;		}		break;	case 4341: /* RETI4 */

⌨️ 快捷键说明

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