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

📄 jit3-mips.def

📁 kaffe Java 解释器语言,源码,Java的子集系统,开放源代码
💻 DEF
📖 第 1 页 / 共 3 页
字号:
define_insn(add_float, fadd_RRR) {	int r1;	int r2;	int w;	debug_name(("add_float:\n"));	r2 = rreg_float(2);	r1 = rreg_float(1);	w = wreg_float(0);	finsn_RRR(_FADD, SINGLE_FORMAT, w, r1, r2, COP1);	debug(("	add.s	%s,%s,%s\n", fregname(w), fregname(r1), fregname(r2)));}define_insn(add_double, faddl_RRR) {	int r1;	int r2;	int w;	debug_name(("add_double:\n"));	r2 = rreg_double(2);	r1 = rreg_double(1);	w = wreg_double(0);	finsn_RRR(_FADD, DOUBLE_FORMAT, w, r1, r2, COP1);	debug(("	add.d	%s,%s,%s\n", fregname(w), fregname(r1), fregname(r2)));}define_insn(neg_int, neg_RRR) {	int r;	int w;	debug_name(("neg_int:\n"));	r = rreg_int(2);	w = wreg_int(0);	insn_RRR(_SUB, w, REG_i0, r);	debug(("	sub	%s,%s,%s\n", regname(w), regname(REG_i0), regname(r)));}define_insn(neg_float, fneg_RRR) {	int r;	int w;	debug_name(("neg_float:\n"));	r = rreg_float(2);	w = wreg_float(0);	finsn_RRR(_FNEG, SINGLE_FORMAT, w, r, 0, COP1);	debug(("	neg.s	%s,%s\n", fregname(w), fregname(r)));}define_insn(neg_double, fnegl_RRR) {	int r;	int w;	debug_name(("neg_double:\n"));	r = rreg_double(2);	w = wreg_double(0);	finsn_RRR(_FNEG, DOUBLE_FORMAT, w, r, 0, COP1);	debug(("	neg.d	%s,%s\n", fregname(w), fregname(r)));}define_insn(sub_int, sub_RRR) {	int r1;	int r2;	int w;	debug_name(("sub_int:\n"));	r2 = rreg_int(2);	r1 = rreg_int(1);	w = wreg_int(0);	insn_RRR(_SUB, w, r1, r2); /*subu html 431*/	debug(("	sub	%s,%s,%s\n", regname(w), regname(r1), regname(r2)));}define_insn(sub_ref, subu_RRR) {	int r1;	int r2;	int w;	debug_name(("sub_ref:\n"));	r2 = rreg_int(2);	r1 = rreg_int(1);	w = wreg_int(0);	insn_RRR(_SUBU, w, r1, r2);	debug(("	subu	%s,%s,%s\n", regname(w), regname(r1), regname(r2)));}define_insn(sub_int_const, sub_RRC) {	int o;	int r;	int w;	debug_name(("sub_int_const:\n"));	o = -const_int(2);	r = rreg_int(1);	w = wreg_int(0);	insn_RRC(_ADDI, w, r, o); 	debug(("	addi	%s,%s,%d\n", regname(w), regname(w), o));}define_insn(sub_float, fsub_RRR) {	int r1;	int r2;	int w;	debug_name(("sub_float:\n"));	r2 = rreg_float(2);	r1 = rreg_float(1);	w = wreg_float(0);	finsn_RRR(_FSUB, SINGLE_FORMAT, w, r1, r2, COP1);	debug(("	sub.s	%s,%s,%s\n", fregname(w), fregname(r1), fregname(r2)));}define_insn(sub_double, fsubl_RRR) {	int r1;	int r2;	int w;	debug_name(("sub_double:\n"));	r2 = rreg_double(2);	r1 = rreg_double(1);	w = wreg_double(0);	finsn_RRR(_FSUB, DOUBLE_FORMAT, w, r1, r2, COP1);	debug(("	sub.d	%s,%s,%s\n", fregname(w), fregname(r1), fregname(r2)));}define_insn(mul_int, mul_RRR) {	int r1;	int r2;	int w;	debug_name(("mul_int:\n"));	r2 = rreg_int(2);	r1 = rreg_int(1);	w = wreg_int(0);	insn_RRR(_MULT, REG_i0, r1, r2);       	insn_RRR(_MFLO, w, REG_i0, REG_i0);	debug(("	mult	%s,%s\n", regname(r1), regname(r2)));	debug(("	mflo	%s\n", regname(w)));	/* the following instructions mustn't be a mult to keep the result in LO */	NOP();	NOP();}define_insn(mul_float, fmul_RRR) {	int r1;	int r2;	int w;	debug_name(("mul_float:\n"));	r2 = rreg_float(2);	r1 = rreg_float(1);	w = wreg_float(0);	finsn_RRR(_FMULT, SINGLE_FORMAT, w, r1, r2, COP1);	debug(("	mul.s	%s,%s,%s\n", fregname(w), fregname(r1), fregname(r2)));}define_insn(mul_double, fmull_RRR) {	int r1;	int r2;	int w;	debug_name(("mul_double:\n"));	r2 = rreg_double(2);	r1 = rreg_double(1);	w = wreg_double(0);	finsn_RRR(_FMULT, DOUBLE_FORMAT, w, r1, r2, COP1);	debug(("	mul.d	%s,%s,%s\n", fregname(w), fregname(r1), fregname(r2)));}define_insn(div_int, div_RRR) {	int r1;	int r2;	int w;	debug_name(("div_int:\n"));	r2 = rreg_int(2);	r1 = rreg_int(1);	w = wreg_int(0);	insn_RRR(_DIV, REG_i0, r1, r2);       	insn_RRR(_MFLO, w, REG_i0, REG_i0);	debug(("	div	%s,%s\n", regname(r1), regname(r2)));	debug(("	mflo	%s\n", regname(w)));	/* the following instructions mustn't be a mult to keep the result in LO */	NOP();	NOP();}define_insn(div_float, fdiv_RRR) {	int r1;	int r2;	int w;	debug_name(("div_float:\n"));	r2 = rreg_float(2);	r1 = rreg_float(1);	w = wreg_float(0);	finsn_RRR(_FDIV, SINGLE_FORMAT, w, r1, r2, COP1);	debug(("	div.s	%s,%s,%s\n", fregname(w), fregname(r1), fregname(r2)));}define_insn(div_double, fdivl_RRR) {	int r1;	int r2;	int w;	debug_name(("div_double:\n"));	r2 = rreg_double(2);	r1 = rreg_double(1);	w = wreg_double(0);	finsn_RRR(_FDIV, DOUBLE_FORMAT, w, r1, r2, COP1);	debug(("	div.d	%s,%s,%s\n", fregname(w), fregname(r1), fregname(r2)));}define_insn(rem_int, rem_RRR) {	int r1;	int r2;	int w;	debug_name(("rem_int:\n"));	r2 = rreg_int(2);	r1 = rreg_int(1);	w = wreg_int(0);	insn_RRR(_DIV, REG_i0, r1, r2);       	insn_RRR(_MFHI, w, REG_i0, REG_i0);	debug(("	div	%s,%s\n", regname(r1), regname(r2)));	debug(("	mfhi	%s\n", regname(w)));	/* the following instructions mustn't be a mult to keep the result in LO */	NOP();	NOP();}/* --------------------------------------------------------------------- */define_insn(and_int, and_RRR) {	int r1;	int r2;	int w;	debug_name(("and_int:\n"));	r2 = rreg_int(2);	r1 = rreg_int(1);	w = wreg_int(0);	insn_RRR(_AND, w, r1, r2);	debug(("	and	%s,%s,%s\n", regname(w), regname(r1), regname(r2)));}define_insn(and_int_const, and_RRC) {	int r;	int o;	int w;	debug_name(("and_int_const:\n"));	o = const_int(2);	r = rreg_int(1);	w = wreg_int(0);	insn_RRC(_ANDI, w, r, o);	debug(("	andi	%s,%s,%d\n", regname(w), regname(r), o));}define_insn(or_int, or_RRR) {	int r1;	int r2;	int w;	debug_name(("or_int:\n"));	r2 = rreg_int(2);	r1 = rreg_int(1);	w = wreg_int(0);	insn_RRR(_OR, w, r1, r2);	debug(("	or	%s,%s,%s\n", regname(w), regname(r1), regname(r2)));}define_insn(xor_int, xor_RRR) {	int r1;	int r2;	int w;	debug_name(("xor_int:\n"));	r2 = rreg_int(2);	r1 = rreg_int(1);	w = wreg_int(0);	insn_RRR(_XOR, w, r1, r2);	debug(("	xor	%s,%s,%s\n", regname(w), regname(r1), regname(r2)));}define_insn(nor_int, nor_RRR) {	int r1;	int r2;	int w;	debug_name(("nor_int:\n"));	r2 = rreg_int(2);	r1 = rreg_int(1);	w = wreg_int(0);	insn_RRR(_NOR, w, r1, r2);	debug(("	nor	%s,%s,%s\n", regname(w), regname(r1), regname(r2)));}define_insn(ashr_int, ashr_RRR) {	int r1;	int r2;	int w;	debug_name(("ashr_int:\n"));	r2 = rreg_int(2);	r1 = rreg_int(1);	w = wreg_int(0);	insn_RRR(_SRAV, w, r2, r1);	debug(("	srav	%s,%s,%s\n", regname(w), regname(r1), regname(r2)));}define_insn(ashr_int_const, ashr_RRC) {	int r;	int o;	int w;	debug_name(("ashr_int_const:\n"));	o = const_int(2);	r = rreg_int(1);	w = wreg_int(0);	insn_sRRC(_SRA, w, r, o);	debug(("	sra	%s,%s,%d\n", regname(w), regname(r), o));}define_insn(lshr_int, lshr_RRR) {	int r1;	int r2;	int w;	debug_name(("lshr_int:\n"));	r2 = rreg_int(2);	r1 = rreg_int(1);	w = wreg_int(0);	insn_RRR(_SRLV, w, r2, r1);	debug(("	srlv	%s,%s,%s\n", regname(r1), regname(r2), regname(w)));}define_insn(lshr_int_const, lshr_RRC) {	int r;	int o;	int w;	debug_name(("lshr_int_const:\n"));	o = const_int(2);	r = rreg_int(1);	w = wreg_int(0);	insn_sRRC(_SRL, w, r, o);	debug(("	srl	%s,%s,%d\n", regname(w), regname(r), o));}define_insn(lshl_int, lshl_RRR) {	int r1;	int r2;	int w;	debug_name(("lshl_int:\n"));	r2 = rreg_int(2);	r1 = rreg_int(1);	w = wreg_int(0);	insn_RRR(_SLLV, w, r2, r1);	debug(("	sllv	%s,%s,%s\n", regname(w), regname(r1), regname(r2)));}define_insn(lshl_int_const, lshl_RRC) {	int r;	int o;	int w;	debug_name(("lshl_int_const:\n"));	o = const_int(2);	r = rreg_int(1);	w = wreg_int(0);	insn_sRRC(_SLL, w, r, o);	debug(("	sll	%s,%s,%d\n", regname(w), regname(r), o));}/* --------------------------------------------------------------------- */define_insn(load_int, load_RRx) {	int r = rreg_int(2);	int w = wreg_int(0);	debug_name(("load_int:\n"));	ldst_RRC(_LW, w, r, 0);	debug(("	lw	%s,0[%s]\n", regname(w), regname(r)));}define_insn(load_offset_int, load_RRC) {	int o = const_int(2);	int r = rreg_int(1);	int w = wreg_int(0);	debug_name(("load_offset_int:\n"));	ldst_RRC(_LW, w, r, o);	debug(("	lw	%s,%d[%s]\n", regname(w), o, regname(r)));}define_insn(load_float, fload_RRx) {	int r = rreg_int(2);	int w = wreg_float(0);	debug_name(("load_float:\n"));	ldst_RRC(_LWC1, w, r, 0);	debug(("	lwc1	%s,0[%s]\n", fregname(w), regname(r)));}define_insn(load_double, floadl_RRx) {	int r = rreg_int(2);	int w = wreg_double(0);	debug_name(("load_double:\n"));	/* FIX: use ldc1 */	ldst_RRC(_LWC1, w, r, LOFFSET);	debug(("	lwc1	%s,%d[%s]\n", fregname(w), LOFFSET, regname(r)));	ldst_RRC(_LWC1, w+1, r, HOFFSET);	debug(("	lwc1	%s,%d[%s]\n", fregname(w+1), HOFFSET, regname(r)));}define_insn(load_byte, loadb_RRx) {	int r = rreg_int(2);	int w = wreg_int(0);	debug_name(("load_byte:\n"));	ldst_RRC(_LB, w, r, 0);	debug(("	lb	%s,0[%s]\n", regname(w), regname(r)));}define_insn(load_char, loadc_RRx) {	int r = rreg_int(2);	int w = wreg_int(0);	debug_name(("load_char:\n"));	ldst_RRC(_LHU, w, r, 0);	debug(("	lhu	%s,0[%s]\n", regname(w), regname(r)));}define_insn(load_short, loads_RRx) {	int r = rreg_int(2);	int w = wreg_int(0);		debug_name(("load_short:\n"));	ldst_RRC(_LH, w, r, 0);	debug(("	lh	%s,0[%s]\n", regname(w), regname(r)));}define_insn(store_int, store_RRx) {	int r = rreg_int(2);	int w = rreg_int(1);	debug_name(("store_int:\n"));	ldst_RRC(_SW, r, w, 0);	debug(("	sw	%s,0[%s]\n", regname(r), regname(w)));}define_insn(store_offset_int, store_RRC) {	int o = const_int(2);	int w = rreg_int(1);	int r = rreg_int(0);	debug_name(("store_offset_int:\n"));	ldst_RRC(_SW, r, w, o);	debug(("	sw	%s,%d[%s]\n", regname(r), o, regname(w)));}define_insn(store_float, fstore_RRx) {	int r = rreg_float(2);	int w = rreg_int(1);	debug_name(("store_float:\n"));	ldst_RRC(_SWC1, r, w, 0);	debug(("	swc1	%s,0[%s]\n", fregname(r), regname(w)));}define_insn(store_double, fstorel_RRx) {	int r = rreg_double(2);	int w = rreg_int(1);	debug_name(("store_double:\n"));	/* FIX: use sdc1 */	ldst_RRC(_SWC1, r, w, LOFFSET);	debug(("	swc1	%s,%d[%s]\n", fregname(r), LOFFSET, regname(w)));	ldst_RRC(_SWC1, r+1, w, HOFFSET);	debug(("	swc1	%s,%d[%s]\n", fregname(r+1), HOFFSET, regname(w)));}define_insn(store_byte, storeb_RRx) {	int r = rreg_int(2);	int w = rreg_int(1);	debug_name(("store_byte:\n"));	ldst_RRC(_SB, r, w, 0);	debug(("	sb	%s,0[%s]\n", regname(r), regname(w)));}define_insn(store_short, stores_RRx) {	int r = rreg_int(2);	int w = rreg_int(1);	debug_name(("store_short:\n"));	ldst_RRC(_SH, r, w, 0);	debug(("	sh	%s,0[%s]\n", regname(r), regname(w)));}/* --------------------------------------------------------------------- */define_insn(cvt_int_float, cvtif_RRx) {	int r;	int w;	debug_name(("cvt_int_float:\n"));	r = rreg_float(2);	w = wreg_float(0);	finsn_RRR(_FCVT_S, WORD_FORMAT, w, r, 0, COP1);	debug(("	cvt.s.w	%s,%s\n", fregname(w), fregname(r)));}define_insn(cvt_int_double, cvtid_RRx) {	int r;	int w;	debug_name(("cvt_int_double:\n"));	r = rreg_float(2);	w = wreg_double(0);	finsn_RRR(_FCVT_D, WORD_FORMAT, w, r, 0, COP1);	debug(("	cvt.d.w	%s,%s\n", fregname(w), fregname(r)));}define_insn(cvt_float_int, cvtfi_RRx) {	int r;	int w;	debug_name(("cvt_float_int:\n"));	r = rreg_float(2);	w = wreg_float(0);#if 1	finsn_RRR(_FCVT_W, SINGLE_FORMAT, w, r, 0, COP1);	debug(("	cvt.w.s	%s,%s\n", fregname(w), fregname(r)));#else	finsn_RRR(_FFLOOR_W, SINGLE_FORMAT, w, r, 0, COP1);	debug(("	floor.w.s	%s,%s\n", fregname(w), fregname(r)));#endif}define_insn(cvt_double_int, cvtdi_RRx) {	int r;	int w;	debug_name(("cvt_double_int:\n"));	r = rreg_double(2);	w = wreg_float(0);#if 1	finsn_RRR(_FCVT_W, DOUBLE_FORMAT, w, r, 0, COP1);	debug(("	cvt.w.d	%s,%s\n", fregname(w), fregname(r)));#else	finsn_RRR(_FFLOOR_W, DOUBLE_FORMAT, w, r, 0, COP1);	debug(("	floor.w.d	%s,%s\n", fregname(w), fregname(r)));#endif}define_insn(cvt_float_double, cvtfd_RRx) {	int r;	int w;	debug_name(("cvt_float_double:\n"));	r = rreg_float(2);	w = wreg_double(0);	finsn_RRR(_FCVT_D, SINGLE_FORMAT, w, r, 0, COP1);	debug(("	cvt.d.s	%s,%s\n", fregname(w), fregname(r)));}define_insn(cvt_double_float, cvtdf_RRx) {	int r;	int w;	debug_name(("cvt_double_float:\n"));	r = rreg_double(2);	w = wreg_float(0);	finsn_RRR(_FCVT_S, DOUBLE_FORMAT, w, r, 0, COP1);

⌨️ 快捷键说明

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