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

📄 mips-opc.c

📁 基于4个mips核的noc设计
💻 C
📖 第 1 页 / 共 4 页
字号:
{"rem",     "z,s,t",    0x0000001a, 0xfc00ffff, RD_s|RD_t|WR_HILO,      I1	},{"rem",     "d,v,t",	0,    (int) M_REM_3,	INSN_MACRO,		I1	},{"rem",     "d,v,I",	0,    (int) M_REM_3I,	INSN_MACRO,		I1	},{"remu",    "z,s,t",    0x0000001b, 0xfc00ffff, RD_s|RD_t|WR_HILO,      I1	},{"remu",    "d,v,t",	0,    (int) M_REMU_3,	INSN_MACRO,		I1	},{"remu",    "d,v,I",	0,    (int) M_REMU_3I,	INSN_MACRO,		I1	},{"rfe",     "",		0x42000010, 0xffffffff,	0,			I1|T3	},{"rol",     "d,v,t",	0,    (int) M_ROL,	INSN_MACRO,		I1	},{"rol",     "d,v,I",	0,    (int) M_ROL_I,	INSN_MACRO,		I1	},{"ror",     "d,v,t",	0,    (int) M_ROR,	INSN_MACRO,		I1	},{"ror",     "d,v,I",	0,    (int) M_ROR_I,	INSN_MACRO,		I1	},{"round.l.d", "D,S",	0x46200008, 0xffff003f, WR_D|RD_S|FP_D,		I3	},{"round.l.s", "D,S",	0x46000008, 0xffff003f, WR_D|RD_S|FP_S,		I3	},{"round.w.d", "D,S",	0x4620000c, 0xffff003f, WR_D|RD_S|FP_D,		I2	},{"round.w.s", "D,S",	0x4600000c, 0xffff003f, WR_D|RD_S|FP_S,		I2	},{"rsqrt.d", "D,S",	0x46200016, 0xffff003f, WR_D|RD_S|FP_D,		I4	},{"rsqrt.s", "D,S",	0x46000016, 0xffff003f, WR_D|RD_S|FP_S,		I4	},{"sb",      "t,o(b)",	0xa0000000, 0xfc000000,	SM|RD_t|RD_b,		I1	},{"sb",      "t,A(b)",	0,    (int) M_SB_AB,	INSN_MACRO,		I1	},{"sc",	    "t,o(b)",	0xe0000000, 0xfc000000, SM|RD_t|WR_t|RD_b,	I2	},{"sc",	    "t,A(b)",	0,    (int) M_SC_AB,	INSN_MACRO,		I2	},{"scd",	    "t,o(b)",	0xf0000000, 0xfc000000, SM|RD_t|WR_t|RD_b,	I3	},{"scd",	    "t,A(b)",	0,    (int) M_SCD_AB,	INSN_MACRO,		I3	},{"sd",	    "t,o(b)",	0xfc000000, 0xfc000000,	SM|RD_t|RD_b,		I3	},{"sd",      "t,o(b)",	0,    (int) M_SD_OB,	INSN_MACRO,		I1	},{"sd",      "t,A(b)",	0,    (int) M_SD_AB,	INSN_MACRO,		I1	},{"sdbbp",   "",		0x0000000e, 0xffffffff,	TRAP,           	G2	},{"sdbbp",   "c",	0x0000000e, 0xfc00ffff,	TRAP,			G2	},{"sdbbp",   "c,q",	0x0000000e, 0xfc00003f,	TRAP,			G2	},{"sdbbp",   "",         0x7000003f, 0xffffffff, TRAP,           	I32     },{"sdbbp",   "B",        0x7000003f, 0xfc00003f, TRAP,           	I32     },{"sdc1",    "T,o(b)",	0xf4000000, 0xfc000000, SM|RD_T|RD_b|FP_D,	I2	},{"sdc1",    "E,o(b)",	0xf4000000, 0xfc000000, SM|RD_T|RD_b|FP_D,	I2	},{"sdc1",    "T,A(b)",	0,    (int) M_SDC1_AB,	INSN_MACRO,		I2	},{"sdc1",    "E,A(b)",	0,    (int) M_SDC1_AB,	INSN_MACRO,		I2	},{"sdc2",    "E,o(b)",	0xf8000000, 0xfc000000, SM|RD_C2|RD_b,		I2	},{"sdc2",    "E,A(b)",	0,    (int) M_SDC2_AB,	INSN_MACRO,		I2	},{"sdc3",    "E,o(b)",	0xfc000000, 0xfc000000, SM|RD_C3|RD_b,		I2	},{"sdc3",    "E,A(b)",	0,    (int) M_SDC3_AB,	INSN_MACRO,		I2	},{"s.d",     "T,o(b)",	0xf4000000, 0xfc000000, SM|RD_T|RD_b|FP_D,	I2	},{"s.d",     "T,o(b)",	0,    (int) M_S_DOB,	INSN_MACRO,		I1	},{"s.d",     "T,A(b)",	0,    (int) M_S_DAB,	INSN_MACRO,		I1	},{"sdl",     "t,o(b)",	0xb0000000, 0xfc000000,	SM|RD_t|RD_b,		I3	},{"sdl",     "t,A(b)",	0,    (int) M_SDL_AB,	INSN_MACRO,		I3	},{"sdr",     "t,o(b)",	0xb4000000, 0xfc000000,	SM|RD_t|RD_b,		I3	},{"sdr",     "t,A(b)",	0,    (int) M_SDR_AB,	INSN_MACRO,		I3	},{"sdxc1",   "S,t(b)",   0x4c000009, 0xfc0007ff, SM|RD_S|RD_t|RD_b,	I4	},{"selsl",   "d,v,t",	0x00000005, 0xfc0007ff,	WR_d|RD_s|RD_t,		L1	},{"selsr",   "d,v,t",	0x00000001, 0xfc0007ff,	WR_d|RD_s|RD_t,		L1	},{"seq",     "d,v,t",	0,    (int) M_SEQ,	INSN_MACRO,		I1	},{"seq",     "d,v,I",	0,    (int) M_SEQ_I,	INSN_MACRO,		I1	},{"sge",     "d,v,t",	0,    (int) M_SGE,	INSN_MACRO,		I1	},{"sge",     "d,v,I",	0,    (int) M_SGE_I,	INSN_MACRO,		I1	},{"sgeu",    "d,v,t",	0,    (int) M_SGEU,	INSN_MACRO,		I1	},{"sgeu",    "d,v,I",	0,    (int) M_SGEU_I,	INSN_MACRO,		I1	},{"sgt",     "d,v,t",	0,    (int) M_SGT,	INSN_MACRO,		I1	},{"sgt",     "d,v,I",	0,    (int) M_SGT_I,	INSN_MACRO,		I1	},{"sgtu",    "d,v,t",	0,    (int) M_SGTU,	INSN_MACRO,		I1	},{"sgtu",    "d,v,I",	0,    (int) M_SGTU_I,	INSN_MACRO,		I1	},{"sh",      "t,o(b)",	0xa4000000, 0xfc000000,	SM|RD_t|RD_b,		I1	},{"sh",      "t,A(b)",	0,    (int) M_SH_AB,	INSN_MACRO,		I1	},{"sle",     "d,v,t",	0,    (int) M_SLE,	INSN_MACRO,		I1	},{"sle",     "d,v,I",	0,    (int) M_SLE_I,	INSN_MACRO,		I1	},{"sleu",    "d,v,t",	0,    (int) M_SLEU,	INSN_MACRO,		I1	},{"sleu",    "d,v,I",	0,    (int) M_SLEU_I,	INSN_MACRO,		I1	},{"sllv",    "d,t,s",	0x00000004, 0xfc0007ff,	WR_d|RD_t|RD_s,		I1	},{"sll",     "d,w,s",	0x00000004, 0xfc0007ff,	WR_d|RD_t|RD_s,		I1	}, /* sllv */{"sll",     "d,w,<",	0x00000000, 0xffe0003f,	WR_d|RD_t,		I1	},{"slt",     "d,v,t",	0x0000002a, 0xfc0007ff,	WR_d|RD_s|RD_t,		I1	},{"slt",     "d,v,I",	0,    (int) M_SLT_I,	INSN_MACRO,		I1	},{"slti",    "t,r,j",	0x28000000, 0xfc000000,	WR_t|RD_s,		I1	},{"sltiu",   "t,r,j",	0x2c000000, 0xfc000000,	WR_t|RD_s,		I1	},{"sltu",    "d,v,t",	0x0000002b, 0xfc0007ff,	WR_d|RD_s|RD_t,		I1	},{"sltu",    "d,v,I",	0,    (int) M_SLTU_I,	INSN_MACRO,		I1	},{"sne",     "d,v,t",	0,    (int) M_SNE,	INSN_MACRO,		I1	},{"sne",     "d,v,I",	0,    (int) M_SNE_I,	INSN_MACRO,		I1	},{"sqrt.d",  "D,S",	0x46200004, 0xffff003f, WR_D|RD_S|FP_D,		I2	},{"sqrt.s",  "D,S",	0x46000004, 0xffff003f, WR_D|RD_S|FP_S,		I2	},{"srav",    "d,t,s",	0x00000007, 0xfc0007ff,	WR_d|RD_t|RD_s,		I1	},{"sra",     "d,w,s",	0x00000007, 0xfc0007ff,	WR_d|RD_t|RD_s,		I1	}, /* srav */{"sra",     "d,w,<",	0x00000003, 0xffe0003f,	WR_d|RD_t,		I1	},{"srlv",    "d,t,s",	0x00000006, 0xfc0007ff,	WR_d|RD_t|RD_s,		I1	},{"srl",     "d,w,s",	0x00000006, 0xfc0007ff,	WR_d|RD_t|RD_s,		I1	}, /* srlv */{"srl",     "d,w,<",	0x00000002, 0xffe0003f,	WR_d|RD_t,		I1	},/* ssnop is at the start of the table.  */{"standby", "",         0x42000021, 0xffffffff,	0,			V1	},{"sub",     "d,v,t",	0x00000022, 0xfc0007ff,	WR_d|RD_s|RD_t,		I1	},{"sub",     "d,v,I",	0,    (int) M_SUB_I,	INSN_MACRO,		I1	},{"sub.d",   "D,V,T",	0x46200001, 0xffe0003f,	WR_D|RD_S|RD_T|FP_D,	I1	},     {"sub.s",   "D,V,T",	0x46000001, 0xffe0003f,	WR_D|RD_S|RD_T|FP_S,	I1	},{"sub.ps",  "D,V,T",	0x46c00001, 0xffe0003f,	WR_D|RD_S|RD_T|FP_D,	I5	},{"subu",    "d,v,t",	0x00000023, 0xfc0007ff,	WR_d|RD_s|RD_t,		I1	},{"subu",    "d,v,I",	0,    (int) M_SUBU_I,	INSN_MACRO,		I1	},{"suspend", "",         0x42000022, 0xffffffff,	0,			V1	},{"suxc1",   "S,t(b)",   0x4c00000d, 0xfc0007ff, SM|RD_S|RD_t|RD_b,	I5	},{"sw",      "t,o(b)",	0xac000000, 0xfc000000,	SM|RD_t|RD_b,		I1	},{"sw",      "t,A(b)",	0,    (int) M_SW_AB,	INSN_MACRO,		I1	},{"swc0",    "E,o(b)",	0xe0000000, 0xfc000000,	SM|RD_C0|RD_b,		I1	},{"swc0",    "E,A(b)",	0,    (int) M_SWC0_AB,	INSN_MACRO,		I1	},{"swc1",    "T,o(b)",	0xe4000000, 0xfc000000,	SM|RD_T|RD_b|FP_S,	I1	},{"swc1",    "E,o(b)",	0xe4000000, 0xfc000000,	SM|RD_T|RD_b|FP_S,	I1	},{"swc1",    "T,A(b)",	0,    (int) M_SWC1_AB,	INSN_MACRO,		I1	},{"swc1",    "E,A(b)",	0,    (int) M_SWC1_AB,	INSN_MACRO,		I1	},{"s.s",     "T,o(b)",	0xe4000000, 0xfc000000,	SM|RD_T|RD_b|FP_S,	I1	}, /* swc1 */{"s.s",     "T,A(b)",	0,    (int) M_SWC1_AB,	INSN_MACRO,		I1	},{"swc2",    "E,o(b)",	0xe8000000, 0xfc000000,	SM|RD_C2|RD_b,		I1	},{"swc2",    "E,A(b)",	0,    (int) M_SWC2_AB,	INSN_MACRO,		I1	},{"swc3",    "E,o(b)",	0xec000000, 0xfc000000,	SM|RD_C3|RD_b,		I1	},{"swc3",    "E,A(b)",	0,    (int) M_SWC3_AB,	INSN_MACRO,		I1	},{"swl",     "t,o(b)",	0xa8000000, 0xfc000000,	SM|RD_t|RD_b,		I1	},{"swl",     "t,A(b)",	0,    (int) M_SWL_AB,	INSN_MACRO,		I1	},{"scache",  "t,o(b)",	0xa8000000, 0xfc000000,	RD_t|RD_b,		I2	}, /* same */{"scache",  "t,A(b)",	0,    (int) M_SWL_AB,	INSN_MACRO,		I2	}, /* as swl */{"swr",     "t,o(b)",	0xb8000000, 0xfc000000,	SM|RD_t|RD_b,		I1	},{"swr",     "t,A(b)",	0,    (int) M_SWR_AB,	INSN_MACRO,		I1	},{"invalidate", "t,o(b)",0xb8000000, 0xfc000000,	RD_t|RD_b,		I2	}, /* same */{"invalidate", "t,A(b)",0,    (int) M_SWR_AB,	INSN_MACRO,		I2	}, /* as swr */{"swxc1",   "S,t(b)",   0x4c000008, 0xfc0007ff, SM|RD_S|RD_t|RD_b,	I4	},{"sync",    "",		0x0000000f, 0xffffffff,	INSN_SYNC,		I2|G1	},{"sync.p",  "",		0x0000040f, 0xffffffff,	INSN_SYNC,		I2	},{"sync.l",  "",		0x0000000f, 0xffffffff,	INSN_SYNC,		I2	},{"syscall", "",		0x0000000c, 0xffffffff,	TRAP,			I1	},{"syscall", "B",	0x0000000c, 0xfc00003f,	TRAP,			I1	},{"teqi",    "s,j",	0x040c0000, 0xfc1f0000, RD_s|TRAP,		I2	},{"teq",	    "s,t",	0x00000034, 0xfc00ffff, RD_s|RD_t|TRAP,		I2	},{"teq",	    "s,t,q",	0x00000034, 0xfc00003f, RD_s|RD_t|TRAP,		I2	},{"teq",     "s,j",	0x040c0000, 0xfc1f0000, RD_s|TRAP,		I2	}, /* teqi */{"teq",     "s,I",	0,    (int) M_TEQ_I,	INSN_MACRO,		I2	},{"tgei",    "s,j",	0x04080000, 0xfc1f0000, RD_s|TRAP,		I2	},{"tge",	    "s,t",	0x00000030, 0xfc00ffff,	RD_s|RD_t|TRAP,		I2	},{"tge",	    "s,t,q",	0x00000030, 0xfc00003f,	RD_s|RD_t|TRAP,		I2	},{"tge",     "s,j",	0x04080000, 0xfc1f0000, RD_s|TRAP,		I2	}, /* tgei */{"tge",	    "s,I",	0,    (int) M_TGE_I,    INSN_MACRO,		I2	},{"tgeiu",   "s,j",	0x04090000, 0xfc1f0000, RD_s|TRAP,		I2	},{"tgeu",    "s,t",	0x00000031, 0xfc00ffff, RD_s|RD_t|TRAP,		I2	},{"tgeu",    "s,t,q",	0x00000031, 0xfc00003f, RD_s|RD_t|TRAP,		I2	},{"tgeu",    "s,j",	0x04090000, 0xfc1f0000, RD_s|TRAP,		I2	}, /* tgeiu */{"tgeu",    "s,I",	0,    (int) M_TGEU_I,	INSN_MACRO,		I2	},{"tlbp",    "",         0x42000008, 0xffffffff, INSN_TLB,       	I1   	},{"tlbr",    "",         0x42000001, 0xffffffff, INSN_TLB,       	I1   	},{"tlbwi",   "",         0x42000002, 0xffffffff, INSN_TLB,       	I1   	},{"tlbwr",   "",         0x42000006, 0xffffffff, INSN_TLB,       	I1   	},{"tlti",    "s,j",	0x040a0000, 0xfc1f0000,	RD_s|TRAP,		I2	},{"tlt",     "s,t",	0x00000032, 0xfc00ffff, RD_s|RD_t|TRAP,		I2	},{"tlt",     "s,t,q",	0x00000032, 0xfc00003f, RD_s|RD_t|TRAP,		I2	},{"tlt",     "s,j",	0x040a0000, 0xfc1f0000,	RD_s|TRAP,		I2	}, /* tlti */{"tlt",     "s,I",	0,    (int) M_TLT_I,	INSN_MACRO,		I2	},{"tltiu",   "s,j",	0x040b0000, 0xfc1f0000, RD_s|TRAP,		I2	},{"tltu",    "s,t",	0x00000033, 0xfc00ffff, RD_s|RD_t|TRAP,		I2	},{"tltu",    "s,t,q",	0x00000033, 0xfc00003f, RD_s|RD_t|TRAP,		I2	},{"tltu",    "s,j",	0x040b0000, 0xfc1f0000, RD_s|TRAP,		I2	}, /* tltiu */{"tltu",    "s,I",	0,    (int) M_TLTU_I,	INSN_MACRO,		I2	},{"tnei",    "s,j",	0x040e0000, 0xfc1f0000, RD_s|TRAP,		I2	},{"tne",     "s,t",	0x00000036, 0xfc00ffff, RD_s|RD_t|TRAP,		I2	},{"tne",     "s,t,q",	0x00000036, 0xfc00003f, RD_s|RD_t|TRAP,		I2	},{"tne",     "s,j",	0x040e0000, 0xfc1f0000, RD_s|TRAP,		I2	}, /* tnei */{"tne",     "s,I",	0,    (int) M_TNE_I,	INSN_MACRO,		I2	},{"trunc.l.d", "D,S",	0x46200009, 0xffff003f, WR_D|RD_S|FP_D,		I3	},{"trunc.l.s", "D,S",	0x46000009, 0xffff003f,	WR_D|RD_S|FP_S,		I3	},{"trunc.w.d", "D,S",	0x4620000d, 0xffff003f, WR_D|RD_S|FP_D,		I2	},{"trunc.w.d", "D,S,x",	0x4620000d, 0xffff003f, WR_D|RD_S|FP_D,		I2	},{"trunc.w.d", "D,S,t",	0,    (int) M_TRUNCWD,	INSN_MACRO,		I1	},{"trunc.w.s", "D,S",	0x4600000d, 0xffff003f,	WR_D|RD_S|FP_S,		I2	},{"trunc.w.s", "D,S,x",	0x4600000d, 0xffff003f,	WR_D|RD_S|FP_S,		I2	},{"trunc.w.s", "D,S,t",	0,    (int) M_TRUNCWS,	INSN_MACRO,		I1	},{"uld",     "t,o(b)",	0,    (int) M_ULD,	INSN_MACRO,		I3	},{"uld",     "t,A(b)",	0,    (int) M_ULD_A,	INSN_MACRO,		I3	},{"ulh",     "t,o(b)",	0,    (int) M_ULH,	INSN_MACRO,		I1	},{"ulh",     "t,A(b)",	0,    (int) M_ULH_A,	INSN_MACRO,		I1	},{"ulhu",    "t,o(b)",	0,    (int) M_ULHU,	INSN_MACRO,		I1	},{"ulhu",    "t,A(b)",	0,    (int) M_ULHU_A,	INSN_MACRO,		I1	},{"ulw",     "t,o(b)",	0,    (int) M_ULW,	INSN_MACRO,		I1	},{"ulw",     "t,A(b)",	0,    (int) M_ULW_A,	INSN_MACRO,		I1	},{"usd",     "t,o(b)",	0,    (int) M_USD,	INSN_MACRO,		I3	},{"usd",     "t,A(b)",	0,    (int) M_USD_A,	INSN_MACRO,		I3	},{"ush",     "t,o(b)",	0,    (int) M_USH,	INSN_MACRO,		I1	},{"ush",     "t,A(b)",	0,    (int) M_USH_A,	INSN_MACRO,		I1	},{"usw",     "t,o(b)",	0,    (int) M_USW,	INSN_MACRO,		I1	},{"usw",     "t,A(b)",	0,    (int) M_USW_A,	INSN_MACRO,		I1	},{"xor",     "d,v,t",	0x00000026, 0xfc0007ff,	WR_d|RD_s|RD_t,		I1	},{"xor",     "t,r,I",	0,    (int) M_XOR_I,	INSN_MACRO,		I1	},{"xori",    "t,r,i",	0x38000000, 0xfc000000,	WR_t|RD_s,		I1	},{"wait",    "",         0x42000020, 0xffffffff, TRAP,   		I3|I32	},{"wait",    "J",        0x42000020, 0xfe00003f, TRAP,   		I32     },{"waiti",   "",		0x42000020, 0xffffffff,	TRAP,			L1	},{"wb", 	    "o(b)",	0xbc040000, 0xfc1f0000, SM|RD_b,		L1	},/* No hazard protection on coprocessor instructions--they shouldn't   change the state of the processor and if they do it's up to the   user to put in nops as necessary.  These are at the end so that the   disasembler recognizes more specific versions first.  */{"c0",      "C",	0x42000000, 0xfe000000,	0,			I1	},{"c1",      "C",	0x46000000, 0xfe000000,	0,			I1	},{"c2",      "C",	0x4a000000, 0xfe000000,	0,			I1	},{"c3",      "C",	0x4e000000, 0xfe000000,	0,			I1	},{"cop0",     "C",	0,    (int) M_COP0,	INSN_MACRO,		I1	},{"cop1",     "C",	0,    (int) M_COP1,	INSN_MACRO,		I1	},{"cop2",     "C",	0,    (int) M_COP2,	INSN_MACRO,		I1	},{"cop3",     "C",	0,    (int) M_COP3,	INSN_MACRO,		I1	},  /* Conflicts with the 4650's "mul" instruction.  Nobody's using the     4010 any more, so move this insn out of the way.  If the object     format gave us more info, we could do this right.  */{"addciu",  "t,r,j",	0x70000000, 0xfc000000,	WR_t|RD_s,		L1	},};#define MIPS_NUM_OPCODES \	((sizeof mips_builtin_opcodes) / (sizeof (mips_builtin_opcodes[0])))const int bfd_mips_num_builtin_opcodes = MIPS_NUM_OPCODES;/* const removed from the following to allow for dynamic extensions to the  * built-in instruction set. */struct mips_opcode *mips_opcodes =  (struct mips_opcode *) mips_builtin_opcodes;int bfd_mips_num_opcodes = MIPS_NUM_OPCODES;#undef MIPS_NUM_OPCODES

⌨️ 快捷键说明

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