📄 minimips.c
字号:
_label(LEFT_CHILD(a)); /* stmt: RETI4(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 = 37; } break; case 4342: /* RETU4 */ _label(LEFT_CHILD(a)); /* stmt: RETU4(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 = 38; } break; case 4343: /* RETP4 */ _label(LEFT_CHILD(a)); /* stmt: RETP4(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 = 39; } break; case 4359: /* ADDRGP4 */ /* acon: ADDRGP4 */ if (0 + 0 < p->cost[_acon_NT]) { p->cost[_acon_NT] = 0 + 0; p->rule._acon = 2; _closure_acon(a, 0 + 0); } /* ar: ADDRGP4 */ if (0 + 0 < p->cost[_ar_NT]) { p->cost[_ar_NT] = 0 + 0; p->rule._ar = 3; } break; case 4375: /* ADDRFP4 */ /* addr: ADDRFP4 */ if (0 + 0 < p->cost[_addr_NT]) { p->cost[_addr_NT] = 0 + 0; p->rule._addr = 6; _closure_addr(a, 0 + 0); } break; case 4391: /* ADDRLP4 */ /* addr: ADDRLP4 */ if (0 + 0 < p->cost[_addr_NT]) { p->cost[_addr_NT] = 0 + 0; p->rule._addr = 7; _closure_addr(a, 0 + 0); } break; case 4401: /* ADDF4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: ADDF4(reg,reg) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 100; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 58; _closure_reg(a, c + 0); } break; case 4405: /* ADDI4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* addr: ADDI4(reg,acon) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_acon_NT] + 0; if (c + 0 < p->cost[_addr_NT]) { p->cost[_addr_NT] = c + 0; p->rule._addr = 1; _closure_addr(a, c + 0); } /* reg: ADDI4(reg,rc) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_rc_NT] + 1; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 29; _closure_reg(a, c + 0); } if ( /* reg: ADDI4(reg,ADDI4(reg,INDIRI4(magic_addr))) */ RIGHT_CHILD(a)->op == 4405 && /* ADDI4 */ RIGHT_CHILD(RIGHT_CHILD(a))->op == 4165 /* INDIRI4 */ ) { c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(LEFT_CHILD(RIGHT_CHILD(a))->x.state))->cost[_reg_NT] + ((struct _state *)(LEFT_CHILD(RIGHT_CHILD(RIGHT_CHILD(a)))->x.state))->cost[_magic_addr_NT] + 0; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 73; _closure_reg(a, c + 0); } } if ( /* reg: ADDI4(reg,SUBI4(reg,INDIRI4(magic_addr))) */ RIGHT_CHILD(a)->op == 4421 && /* SUBI4 */ RIGHT_CHILD(RIGHT_CHILD(a))->op == 4165 /* INDIRI4 */ ) { c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(LEFT_CHILD(RIGHT_CHILD(a))->x.state))->cost[_reg_NT] + ((struct _state *)(LEFT_CHILD(RIGHT_CHILD(RIGHT_CHILD(a)))->x.state))->cost[_magic_addr_NT] + 0; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 75; _closure_reg(a, c + 0); } } break; case 4406: /* ADDU4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* addr: ADDU4(reg,acon) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_acon_NT] + 0; if (c + 0 < p->cost[_addr_NT]) { p->cost[_addr_NT] = c + 0; p->rule._addr = 2; _closure_addr(a, c + 0); } /* reg: ADDU4(reg,rc) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_rc_NT] + 1; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 31; _closure_reg(a, c + 0); } break; case 4407: /* ADDP4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* addr: ADDP4(reg,acon) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_acon_NT] + 0; if (c + 0 < p->cost[_addr_NT]) { p->cost[_addr_NT] = c + 0; p->rule._addr = 3; _closure_addr(a, c + 0); } /* reg: ADDP4(reg,rc) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_rc_NT] + 1; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 30; _closure_reg(a, c + 0); } break; case 4417: /* SUBF4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: SUBF4(reg,reg) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 100; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 59; _closure_reg(a, c + 0); } break; case 4421: /* SUBI4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: SUBI4(reg,rc) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_rc_NT] + 1; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 38; _closure_reg(a, c + 0); } if ( /* reg: SUBI4(reg,ADDI4(reg,INDIRI4(magic_addr))) */ RIGHT_CHILD(a)->op == 4405 && /* ADDI4 */ RIGHT_CHILD(RIGHT_CHILD(a))->op == 4165 /* INDIRI4 */ ) { c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(LEFT_CHILD(RIGHT_CHILD(a))->x.state))->cost[_reg_NT] + ((struct _state *)(LEFT_CHILD(RIGHT_CHILD(RIGHT_CHILD(a)))->x.state))->cost[_magic_addr_NT] + 0; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 74; _closure_reg(a, c + 0); } } if ( /* reg: SUBI4(reg,SUBI4(reg,INDIRI4(magic_addr))) */ RIGHT_CHILD(a)->op == 4421 && /* SUBI4 */ RIGHT_CHILD(RIGHT_CHILD(a))->op == 4165 /* INDIRI4 */ ) { c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(LEFT_CHILD(RIGHT_CHILD(a))->x.state))->cost[_reg_NT] + ((struct _state *)(LEFT_CHILD(RIGHT_CHILD(RIGHT_CHILD(a)))->x.state))->cost[_magic_addr_NT] + 0; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 76; _closure_reg(a, c + 0); } } if ( /* reg: SUBI4(reg,SUBI4(reg,ADDI4(reg,INDIRI4(magic_addr)))) */ RIGHT_CHILD(a)->op == 4421 && /* SUBI4 */ RIGHT_CHILD(RIGHT_CHILD(a))->op == 4405 && /* ADDI4 */ RIGHT_CHILD(RIGHT_CHILD(RIGHT_CHILD(a)))->op == 4165 /* INDIRI4 */ ) { c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(LEFT_CHILD(RIGHT_CHILD(a))->x.state))->cost[_reg_NT] + ((struct _state *)(LEFT_CHILD(RIGHT_CHILD(RIGHT_CHILD(a)))->x.state))->cost[_reg_NT] + ((struct _state *)(LEFT_CHILD(RIGHT_CHILD(RIGHT_CHILD(RIGHT_CHILD(a))))->x.state))->cost[_magic_addr_NT] + 0; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 77; _closure_reg(a, c + 0); } } break; case 4422: /* SUBU4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: SUBU4(reg,rc) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_rc_NT] + 1; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 40; _closure_reg(a, c + 0); } break; case 4423: /* SUBP4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: SUBP4(reg,rc) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_rc_NT] + 1; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 39; _closure_reg(a, c + 0); } break; case 4437: /* LSHI4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); if ( /* reg: LSHI4(reg,CNSTI4) */ RIGHT_CHILD(a)->op == 4117 /* CNSTI4 */ ) { c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + 4; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 41; _closure_reg(a, c + 0); } } /* reg: LSHI4(reg,reg) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 100; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 45; _closure_reg(a, c + 0); } break; case 4438: /* LSHU4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); if ( /* reg: LSHU4(reg,CNSTI4) */ RIGHT_CHILD(a)->op == 4117 /* CNSTI4 */ ) { c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + 4; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 42; _closure_reg(a, c + 0); } } /* reg: LSHU4(reg,reg) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 100; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 46; _closure_reg(a, c + 0); } break; case 4453: /* MODI4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: MODI4(reg,reg) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 100; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 25; _closure_reg(a, c + 0); } break; case 4454: /* MODU4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: MODU4(reg,reg) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 100; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 26; _closure_reg(a, c + 0); } break; case 4469: /* RSHI4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); if ( /* reg: RSHI4(reg,CNSTI4) */ RIGHT_CHILD(a)->op == 4117 /* CNSTI4 */ ) { c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + 4; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 43; _closure_reg(a, c + 0); } } /* reg: RSHI4(reg,reg) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 100; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 47; _closure_reg(a, c + 0); } break; case 4470: /* RSHU4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); if ( /* reg: RSHU4(reg,CNSTI4) */ RIGHT_CHILD(a)->op == 4117 /* CNSTI4 */ ) { c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + 4; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 44; _closure_reg(a, c + 0); } } /* reg: RSHU4(reg,reg) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 100; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 48; _closure_reg(a, c + 0); } break; case 4485: /* BANDI4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: BANDI4(reg,rc) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_rc_NT] + 1; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 32; _closure_reg(a, c + 0); } break; case 4486: /* BANDU4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: BANDU4(reg,rc) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_rc_NT] + 1; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 35; _closure_reg(a, c + 0); } break; case 4501: /* BCOMI4 */ _label(LEFT_CHILD(a)); /* reg: BCOMI4(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 = 49; _closure_reg(a, c + 0); } break; case 4502: /* BCOMU4 */ _label(LEFT_CHILD(a)); /* reg: BCOMU4(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 = 50; _closure_reg(a, c + 0); } break; case 4517: /* BORI4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: BORI4(reg,rc) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_rc_NT] + 1; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 33; _closure_reg(a, c + 0); } break; case 4518: /* BORU4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: BORU4(reg,rc) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_rc_NT] + 1; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 36; _closure_reg(a, c + 0); } break; case 4533: /* BXORI4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: BXORI4(reg,rc) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_rc_NT] + 1; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 34; _closure_reg(a, c + 0); } break; case 4534: /* BXORU4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: BXORU4(reg,rc) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_rc_NT] + 1; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 37; _closure_reg(a, c + 0); } break; case 4545: /* DIVF4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: DIVF4(reg,reg) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 100; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 61; _closure_reg(a, c + 0); } break; case 4549: /* DIVI4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: DIVI4(reg,reg) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 100; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 23; _closure_reg(a, c + 0); } break; case 4550: /* DIVU4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: DIVU4(reg,reg) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 100; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 24; _closure_reg(a, c + 0); } break; case 4561: /* MULF4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: MULF4(reg,reg) */ c = ((struct _state *)(LEFT_CHILD(a)->x.state))->cost[_reg_NT] + ((struct _state *)(RIGHT_CHILD(a)->x.state))->cost[_reg_NT] + 100; if (c + 0 < p->cost[_reg_NT]) { p->cost[_reg_NT] = c + 0; p->rule._reg = 60; _closure_reg(a, c + 0); } break; case 4565: /* MULI4 */ _label(LEFT_CHILD(a)); _label(RIGHT_CHILD(a)); /* reg: MULI4(reg,reg) */ c = ((struct _state *)(LEFT_CHILD(a)->x.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -