mips.c

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

C
2,447
字号
/* 4 */	1,	/* # read register\n *//* 5 */	1,	/* # read register\n *//* 6 */	1,	/* # read register\n *//* 7 */	1,	/* # read register\n *//* 8 */	1,	/* # read register\n *//* 9 */	1,	/* # read register\n *//* 10 */	1,	/* # read register\n *//* 11 */	1,	/* # read register\n *//* 12 */	1,	/* # read register\n *//* 13 */	1,	/* # write register\n *//* 14 */	1,	/* # write register\n *//* 15 */	1,	/* # write register\n *//* 16 */	1,	/* # write register\n *//* 17 */	1,	/* # write register\n *//* 18 */	1,	/* # write register\n *//* 19 */	1,	/* # write register\n *//* 20 */	1,	/* # write register\n *//* 21 */	1,	/* # write register\n *//* 22 */	1,	/* # write register\n *//* 23 */	1,	/* # write register\n *//* 24 */	1,	/* # write register\n *//* 25 */	0,	/* %a *//* 26 */	0,	/* %a *//* 27 */	0,	/* %a *//* 28 */	0,	/* %a *//* 29 */	0,	/* %a *//* 30 */	0,	/* %a *//* 31 */	0,	/* %a *//* 32 */	0,	/* %a *//* 33 */	0,	/* %a *//* 34 */	0,	/* %a *//* 35 */	0,	/*  *//* 36 */	0,	/* %0 *//* 37 */	0,	/* %a *//* 38 */	0,	/* %1($%0) *//* 39 */	0,	/* %1($%0) *//* 40 */	0,	/* %1($%0) *//* 41 */	0,	/* %0 *//* 42 */	0,	/* ($%0) *//* 43 */	0,	/* %a+%F($sp) *//* 44 */	0,	/* %a+%F($sp) *//* 45 */	1,	/* la $%c,%0\n *//* 46 */	1,	/* # reg\n *//* 47 */	1,	/* # reg\n *//* 48 */	1,	/* # reg\n *//* 49 */	1,	/* # reg\n *//* 50 */	1,	/* # reg\n *//* 51 */	1,	/* # reg\n *//* 52 */	1,	/* # reg\n *//* 53 */	1,	/* sb $%1,%0\n *//* 54 */	1,	/* sb $%1,%0\n *//* 55 */	1,	/* sh $%1,%0\n *//* 56 */	1,	/* sh $%1,%0\n *//* 57 */	1,	/* sw $%1,%0\n *//* 58 */	1,	/* sw $%1,%0\n *//* 59 */	1,	/* sw $%1,%0\n *//* 60 */	1,	/* lb $%c,%0\n *//* 61 */	1,	/* lbu $%c,%0\n *//* 62 */	1,	/* lh $%c,%0\n *//* 63 */	1,	/* lhu $%c,%0\n *//* 64 */	1,	/* lw $%c,%0\n *//* 65 */	1,	/* lw $%c,%0\n *//* 66 */	1,	/* lw $%c,%0\n *//* 67 */	1,	/* lb $%c,%0\n *//* 68 */	1,	/* lh $%c,%0\n *//* 69 */	1,	/* lbu $%c,%0\n *//* 70 */	1,	/* lhu $%c,%0\n *//* 71 */	1,	/* lbu $%c,%0\n *//* 72 */	1,	/* lhu $%c,%0\n *//* 73 */	1,	/* l.s $f%c,%0\n *//* 74 */	1,	/* l.d $f%c,%0\n *//* 75 */	1,	/* s.s $f%1,%0\n *//* 76 */	1,	/* s.d $f%1,%0\n *//* 77 */	1,	/* div $%c,$%0,$%1\n *//* 78 */	1,	/* divu $%c,$%0,$%1\n *//* 79 */	1,	/* rem $%c,$%0,$%1\n *//* 80 */	1,	/* remu $%c,$%0,$%1\n *//* 81 */	1,	/* mul $%c,$%0,$%1\n *//* 82 */	1,	/* mul $%c,$%0,$%1\n *//* 83 */	0,	/* %0 *//* 84 */	0,	/* $%0 *//* 85 */	1,	/* addu $%c,$%0,%1\n *//* 86 */	1,	/* addu $%c,$%0,%1\n *//* 87 */	1,	/* addu $%c,$%0,%1\n *//* 88 */	1,	/* and $%c,$%0,%1\n *//* 89 */	1,	/* or $%c,$%0,%1\n *//* 90 */	1,	/* xor $%c,$%0,%1\n *//* 91 */	1,	/* and $%c,$%0,%1\n *//* 92 */	1,	/* or $%c,$%0,%1\n *//* 93 */	1,	/* xor $%c,$%0,%1\n *//* 94 */	1,	/* subu $%c,$%0,%1\n *//* 95 */	1,	/* subu $%c,$%0,%1\n *//* 96 */	1,	/* subu $%c,$%0,%1\n *//* 97 */	0,	/* %a *//* 98 */	0,	/* $%0 *//* 99 */	1,	/* sll $%c,$%0,%1\n *//* 100 */	1,	/* sll $%c,$%0,%1\n *//* 101 */	1,	/* sra $%c,$%0,%1\n *//* 102 */	1,	/* srl $%c,$%0,%1\n *//* 103 */	1,	/* not $%c,$%0\n *//* 104 */	1,	/* not $%c,$%0\n *//* 105 */	1,	/* negu $%c,$%0\n *//* 106 */	1,	/* move $%c,$%0\n *//* 107 */	1,	/* move $%c,$%0\n *//* 108 */	1,	/* move $%c,$%0\n *//* 109 */	1,	/* move $%c,$%0\n *//* 110 */	1,	/* move $%c,$%0\n *//* 111 */	1,	/* move $%c,$%0\n *//* 112 */	1,	/* move $%c,$%0\n *//* 113 */	1,	/* add.s $f%c,$f%0,$f%1\n *//* 114 */	1,	/* add.d $f%c,$f%0,$f%1\n *//* 115 */	1,	/* div.s $f%c,$f%0,$f%1\n *//* 116 */	1,	/* div.d $f%c,$f%0,$f%1\n *//* 117 */	1,	/* mul.s $f%c,$f%0,$f%1\n *//* 118 */	1,	/* mul.d $f%c,$f%0,$f%1\n *//* 119 */	1,	/* sub.s $f%c,$f%0,$f%1\n *//* 120 */	1,	/* sub.d $f%c,$f%0,$f%1\n *//* 121 */	1,	/* mov.s $f%c,$f%0\n *//* 122 */	1,	/* mov.d $f%c,$f%0\n *//* 123 */	1,	/* neg.s $f%c,$f%0\n *//* 124 */	1,	/* neg.d $f%c,$f%0\n *//* 125 */	1,	/* sll $%c,$%0,8*(4-%a); sra $%c,$%c,8*(4-%a)\n *//* 126 */	1,	/* and $%c,$%0,(1<<(8*%a))-1\n *//* 127 */	1,	/* and $%c,$%0,(1<<(8*%a))-1\n *//* 128 */	1,	/* cvt.s.d $f%c,$f%0\n *//* 129 */	1,	/* cvt.d.s $f%c,$f%0\n *//* 130 */	1,	/* mtc1 $%0,$f%c; cvt.s.w $f%c,$f%c\n *//* 131 */	1,	/* mtc1 $%0,$f%c; cvt.d.w $f%c,$f%c\n *//* 132 */	1,	/* trunc.w.s $f2,$f%0,$%c; mfc1 $%c,$f2\n *//* 133 */	1,	/* trunc.w.d $f2,$f%0,$%c; mfc1 $%c,$f2\n *//* 134 */	1,	/* %a:\n *//* 135 */	1,	/* b %0\n *//* 136 */	1,	/* .cpadd $%0\nj $%0\n *//* 137 */	1,	/* j $%0\n *//* 138 */	1,	/* beq $%0,$%1,%a\n *//* 139 */	1,	/* beq $%0,$%1,%a\n *//* 140 */	1,	/* bge $%0,$%1,%a\n *//* 141 */	1,	/* bgeu $%0,$%1,%a\n *//* 142 */	1,	/* bgt $%0,$%1,%a\n *//* 143 */	1,	/* bgtu $%0,$%1,%a\n *//* 144 */	1,	/* ble $%0,$%1,%a\n *//* 145 */	1,	/* bleu $%0,$%1,%a\n *//* 146 */	1,	/* blt $%0,$%1,%a\n *//* 147 */	1,	/* bltu $%0,$%1,%a\n *//* 148 */	1,	/* bne $%0,$%1,%a\n *//* 149 */	1,	/* bne $%0,$%1,%a\n *//* 150 */	1,	/* c.eq.s $f%0,$f%1; bc1t %a\n *//* 151 */	1,	/* c.eq.d $f%0,$f%1; bc1t %a\n *//* 152 */	1,	/* c.le.s $f%0,$f%1; bc1t %a\n *//* 153 */	1,	/* c.le.d $f%0,$f%1; bc1t %a\n *//* 154 */	1,	/* c.lt.s $f%0,$f%1; bc1t %a\n *//* 155 */	1,	/* c.lt.d $f%0,$f%1; bc1t %a\n *//* 156 */	1,	/* c.lt.s $f%0,$f%1; bc1f %a\n *//* 157 */	1,	/* c.lt.d $f%0,$f%1; bc1f %a\n *//* 158 */	1,	/* c.le.s $f%0,$f%1; bc1f %a\n *//* 159 */	1,	/* c.le.d $f%0,$f%1; bc1f %a\n *//* 160 */	1,	/* c.eq.s $f%0,$f%1; bc1f %a\n *//* 161 */	1,	/* c.eq.d $f%0,$f%1; bc1f %a\n *//* 162 */	0,	/* %a *//* 163 */	1,	/* jal %0\n *//* 164 */	1,	/* jal %0\n *//* 165 */	1,	/* jal %0\n *//* 166 */	1,	/* jal %0\n *//* 167 */	1,	/* jal %0\n *//* 168 */	1,	/* jal %0\n *//* 169 */	0,	/* $%0 *//* 170 */	0,	/* %a *//* 171 */	1,	/* # ret\n *//* 172 */	1,	/* # ret\n *//* 173 */	1,	/* # ret\n *//* 174 */	1,	/* # ret\n *//* 175 */	1,	/* # ret\n *//* 176 */	1,	/* # ret\n *//* 177 */	1,	/* # arg\n *//* 178 */	1,	/* # arg\n *//* 179 */	1,	/* # arg\n *//* 180 */	1,	/* # arg\n *//* 181 */	1,	/* # arg\n *//* 182 */	1,	/* # argb %0\n *//* 183 */	1,	/* # asgnb %0 %1\n */};static char *_string[] = {/* 0 */	0,/* 1 */	"reg: INDIRI1(VREGP)",/* 2 */	"reg: INDIRU1(VREGP)",/* 3 */	"reg: INDIRI2(VREGP)",/* 4 */	"reg: INDIRU2(VREGP)",/* 5 */	"reg: INDIRF4(VREGP)",/* 6 */	"reg: INDIRI4(VREGP)",/* 7 */	"reg: INDIRP4(VREGP)",/* 8 */	"reg: INDIRU4(VREGP)",/* 9 */	"reg: INDIRF8(VREGP)",/* 10 */	"reg: INDIRI8(VREGP)",/* 11 */	"reg: INDIRP8(VREGP)",/* 12 */	"reg: INDIRU8(VREGP)",/* 13 */	"stmt: ASGNI1(VREGP,reg)",/* 14 */	"stmt: ASGNU1(VREGP,reg)",/* 15 */	"stmt: ASGNI2(VREGP,reg)",/* 16 */	"stmt: ASGNU2(VREGP,reg)",/* 17 */	"stmt: ASGNF4(VREGP,reg)",/* 18 */	"stmt: ASGNI4(VREGP,reg)",/* 19 */	"stmt: ASGNP4(VREGP,reg)",/* 20 */	"stmt: ASGNU4(VREGP,reg)",/* 21 */	"stmt: ASGNF8(VREGP,reg)",/* 22 */	"stmt: ASGNI8(VREGP,reg)",/* 23 */	"stmt: ASGNP8(VREGP,reg)",/* 24 */	"stmt: ASGNU8(VREGP,reg)",/* 25 */	"con: CNSTI1",/* 26 */	"con: CNSTU1",/* 27 */	"con: CNSTI2",/* 28 */	"con: CNSTU2",/* 29 */	"con: CNSTI4",/* 30 */	"con: CNSTU4",/* 31 */	"con: CNSTP4",/* 32 */	"con: CNSTI8",/* 33 */	"con: CNSTU8",/* 34 */	"con: CNSTP8",/* 35 */	"stmt: reg",/* 36 */	"acon: con",/* 37 */	"acon: ADDRGP4",/* 38 */	"addr: ADDI4(reg,acon)",/* 39 */	"addr: ADDU4(reg,acon)",/* 40 */	"addr: ADDP4(reg,acon)",/* 41 */	"addr: acon",/* 42 */	"addr: reg",/* 43 */	"addr: ADDRFP4",/* 44 */	"addr: ADDRLP4",/* 45 */	"reg: addr",/* 46 */	"reg: CNSTI1",/* 47 */	"reg: CNSTI2",/* 48 */	"reg: CNSTI4",/* 49 */	"reg: CNSTU1",/* 50 */	"reg: CNSTU2",/* 51 */	"reg: CNSTU4",/* 52 */	"reg: CNSTP4",/* 53 */	"stmt: ASGNI1(addr,reg)",/* 54 */	"stmt: ASGNU1(addr,reg)",/* 55 */	"stmt: ASGNI2(addr,reg)",/* 56 */	"stmt: ASGNU2(addr,reg)",/* 57 */	"stmt: ASGNI4(addr,reg)",/* 58 */	"stmt: ASGNU4(addr,reg)",/* 59 */	"stmt: ASGNP4(addr,reg)",/* 60 */	"reg: INDIRI1(addr)",/* 61 */	"reg: INDIRU1(addr)",/* 62 */	"reg: INDIRI2(addr)",/* 63 */	"reg: INDIRU2(addr)",/* 64 */	"reg: INDIRI4(addr)",/* 65 */	"reg: INDIRU4(addr)",/* 66 */	"reg: INDIRP4(addr)",/* 67 */	"reg: CVII4(INDIRI1(addr))",/* 68 */	"reg: CVII4(INDIRI2(addr))",/* 69 */	"reg: CVUU4(INDIRU1(addr))",/* 70 */	"reg: CVUU4(INDIRU2(addr))",/* 71 */	"reg: CVUI4(INDIRU1(addr))",/* 72 */	"reg: CVUI4(INDIRU2(addr))",/* 73 */	"reg: INDIRF4(addr)",/* 74 */	"reg: INDIRF8(addr)",/* 75 */	"stmt: ASGNF4(addr,reg)",/* 76 */	"stmt: ASGNF8(addr,reg)",/* 77 */	"reg: DIVI4(reg,reg)",/* 78 */	"reg: DIVU4(reg,reg)",/* 79 */	"reg: MODI4(reg,reg)",/* 80 */	"reg: MODU4(reg,reg)",/* 81 */	"reg: MULI4(reg,reg)",/* 82 */	"reg: MULU4(reg,reg)",/* 83 */	"rc: con",/* 84 */	"rc: reg",/* 85 */	"reg: ADDI4(reg,rc)",/* 86 */	"reg: ADDP4(reg,rc)",/* 87 */	"reg: ADDU4(reg,rc)",/* 88 */	"reg: BANDI4(reg,rc)",/* 89 */	"reg: BORI4(reg,rc)",/* 90 */	"reg: BXORI4(reg,rc)",/* 91 */	"reg: BANDU4(reg,rc)",/* 92 */	"reg: BORU4(reg,rc)",/* 93 */	"reg: BXORU4(reg,rc)",/* 94 */	"reg: SUBI4(reg,rc)",/* 95 */	"reg: SUBP4(reg,rc)",/* 96 */	"reg: SUBU4(reg,rc)",/* 97 */	"rc5: CNSTI4",/* 98 */	"rc5: reg",/* 99 */	"reg: LSHI4(reg,rc5)",/* 100 */	"reg: LSHU4(reg,rc5)",/* 101 */	"reg: RSHI4(reg,rc5)",/* 102 */	"reg: RSHU4(reg,rc5)",/* 103 */	"reg: BCOMI4(reg)",/* 104 */	"reg: BCOMU4(reg)",/* 105 */	"reg: NEGI4(reg)",/* 106 */	"reg: LOADI1(reg)",/* 107 */	"reg: LOADU1(reg)",/* 108 */	"reg: LOADI2(reg)",/* 109 */	"reg: LOADU2(reg)",/* 110 */	"reg: LOADI4(reg)",/* 111 */	"reg: LOADP4(reg)",/* 112 */	"reg: LOADU4(reg)",/* 113 */	"reg: ADDF4(reg,reg)",/* 114 */	"reg: ADDF8(reg,reg)",/* 115 */	"reg: DIVF4(reg,reg)",/* 116 */	"reg: DIVF8(reg,reg)",/* 117 */	"reg: MULF4(reg,reg)",/* 118 */	"reg: MULF8(reg,reg)",/* 119 */	"reg: SUBF4(reg,reg)",/* 120 */	"reg: SUBF8(reg,reg)",/* 121 */	"reg: LOADF4(reg)",/* 122 */	"reg: LOADF8(reg)",/* 123 */	"reg: NEGF4(reg)",/* 124 */	"reg: NEGF8(reg)",/* 125 */	"reg: CVII4(reg)",/* 126 */	"reg: CVUI4(reg)",/* 127 */	"reg: CVUU4(reg)",/* 128 */	"reg: CVFF4(reg)",/* 129 */	"reg: CVFF8(reg)",/* 130 */	"reg: CVIF4(reg)",/* 131 */	"reg: CVIF8(reg)",/* 132 */	"reg: CVFI4(reg)",/* 133 */	"reg: CVFI4(reg)",/* 134 */	"stmt: LABELV",/* 135 */	"stmt: JUMPV(acon)",/* 136 */	"stmt: JUMPV(reg)",/* 137 */	"stmt: JUMPV(reg)",/* 138 */	"stmt: EQI4(reg,reg)",/* 139 */	"stmt: EQU4(reg,reg)",/* 140 */	"stmt: GEI4(reg,reg)",/* 141 */	"stmt: GEU4(reg,reg)",/* 142 */	"stmt: GTI4(reg,reg)",/* 143 */	"stmt: GTU4(reg,reg)",/* 144 */	"stmt: LEI4(reg,reg)",/* 145 */	"stmt: LEU4(reg,reg)",/* 146 */	"stmt: LTI4(reg,reg)",/* 147 */	"stmt: LTU4(reg,reg)",/* 148 */	"stmt: NEI4(reg,reg)",/* 149 */	"stmt: NEU4(reg,reg)",/* 150 */	"stmt: EQF4(reg,reg)",/* 151 */	"stmt: EQF8(reg,reg)",/* 152 */	"stmt: LEF4(reg,reg)",/* 153 */	"stmt: LEF8(reg,reg)",/* 154 */	"stmt: LTF4(reg,reg)",/* 155 */	"stmt: LTF8(reg,reg)",/* 156 */	"stmt: GEF4(reg,reg)",/* 157 */	"stmt: GEF8(reg,reg)",/* 158 */	"stmt: GTF4(reg,reg)",/* 159 */	"stmt: GTF8(reg,reg)",/* 160 */	"stmt: NEF4(reg,reg)",/* 161 */	"stmt: NEF8(reg,reg)",/* 162 */	"ar: ADDRGP4",/* 163 */	"reg: CALLF4(ar)",/* 164 */	"reg: CALLF8(ar)",/* 165 */	"reg: CALLI4(ar)",/* 166 */	"reg: CALLP4(ar)",/* 167 */	"reg: CALLU4(ar)",/* 168 */	"stmt: CALLV(ar)",/* 169 */	"ar: reg",/* 170 */	"ar: CNSTP4",/* 171 */	"stmt: RETF4(reg)",/* 172 */	"stmt: RETF8(reg)",/* 173 */	"stmt: RETI4(reg)",/* 174 */	"stmt: RETU4(reg)",/* 175 */	"stmt: RETP4(reg)",/* 176 */	"stmt: RETV(reg)",/* 177 */	"stmt: ARGF4(reg)",/* 178 */	"stmt: ARGF8(reg)",/* 179 */	"stmt: ARGI4(reg)",/* 180 */	"stmt: ARGP4(reg)",/* 181 */	"stmt: ARGU4(reg)",/* 182 */	"stmt: ARGB(INDIRB(reg))",/* 183 */	"stmt: ASGNB(reg,INDIRB(reg))",};static short _decode_stmt[] = {	0,	13,	14,	15,	16,	17,	18,	19,	20,	21,	22,	23,	24,	35,	53,	54,	55,	56,	57,	58,	59,	75,	76,	134,	135,	136,	137,	138,	139,	140,	141,	142,	143,	144,	145,	146,	147,	148,	149,	150,	151,	152,	153,	154,	155,	156,	157,	158,	159,	160,	161,	168,	171,	172,	173,	174,	175,	176,	177,	178,	179,	180,	181,	182,	183,};static short _decode_reg[] = {	0,	1,	2,	3,	4,	5,	6,	7,	8,	9,	10,	11,	12,	45,	46,	47,	48,	49,	50,	51,	52,	60,	61,	62,	63,	64,	65,	66,	67,	68,	69,	70,	71,	72,	73,	74,	77,	78,	79,	80,	81,	82,	85,	86,	87,	88,	89,	90,	91,	92,	93,	94,

⌨️ 快捷键说明

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