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

📄 kaffe.def

📁 kaffe Java 解释器语言,源码,Java的子集系统,开放源代码
💻 DEF
📖 第 1 页 / 共 5 页
字号:
	check_stack_int(0);	check_stack_long(1);	slot_nowriteback(stack(0));	slot_nowriteback2(stack_long(1));	lshr_long(stack_long(1), stack_long(1), stack(0));	pop(1);}define_insn(IAND){        /*         * ..., val1, val2 -> ..., val1 & val2         */	trace_jcode (("iand\n"));	check_stack_int(0);	check_stack_int(1);	and_int(stack(1), rstack(1), rstack(0));	pop(1);}define_insn(LAND){        /*         * ..., long val1, long val2 -> ..., long val1 & val2         */	trace_jcode (("land\n"));	check_stack_long(0);	check_stack_long(2);	slot_nowriteback2(stack_long(0));	slot_nowriteback2(stack_long(2));	and_long(stack_long(2), rstack_long(2), rstack_long(0));	pop(2);}define_insn(IOR){        /*         * ..., val1, val2 -> ..., val1 | val2         */	trace_jcode (("ior\n"));	check_stack_int(0);	check_stack_int(1);	or_int(stack(1), rstack(1), rstack(0));	pop(1);}define_insn(LOR){        /*         * ..., long val1, long val2 -> ..., long val1 | val2         */	trace_jcode (("lor\n"));	check_stack_long(0);	check_stack_long(2);	slot_nowriteback2(stack_long(0));	slot_nowriteback2(stack_long(2));	or_long(stack_long(2), rstack_long(2), rstack_long(0));	pop(2);}define_insn(IXOR){        /*         * ..., val1, val2 -> ..., val1 ^ val2         */	trace_jcode (("ixor\n"));	check_stack_int(0);	check_stack_int(1);	xor_int(stack(1), rstack(1), rstack(0));	pop(1);}define_insn(LXOR){        /*         * ..., long val1, long val2 -> ..., long val1 ^ val2         */	trace_jcode (("lxor\n"));	check_stack_long(0);	check_stack_long(2);	slot_nowriteback2(stack_long(0));	slot_nowriteback2(stack_long(2));	xor_long(stack_long(2), rstack_long(2), rstack_long(0));	pop(2);}define_insn(IINC){	check_pc (0);	check_pc (1);	idx = (uint8)getpc(0);	low = (int8)getpc(1);	trace_jcode (("iinc %d %d\n", idx, low));	check_local_int(idx);	add_int_const(local(idx), local(idx), low);}define_insn(I2L){	trace_jcode (("i2l\n"));	check_stack_int(0);	push(1);	cvt_int_long(stack_long(0), stack(1));}define_insn(I2F){	trace_jcode (("i2f\n"));	check_stack_int(0);	cvt_int_float(stack(0), stack(0));}define_insn(I2D){	trace_jcode (("i2d\n"));	check_stack_int(0);	push(1);	cvt_int_double(stack_double(0), stack(1));}define_insn(L2I){	trace_jcode (("l2i\n"));	check_stack_long(0);	cvt_long_int(stack(1), stack_long(0));	pop(1);}define_insn(L2F){	trace_jcode (("l2f\n"));	check_stack_long(0);	cvt_long_float(stack(1), stack_long(0));	pop(1);}define_insn(L2D){	trace_jcode (("l2d\n"));	check_stack_long(0);	cvt_long_double(stack_double(0), stack_long(0));}define_insn(F2I){	trace_jcode (("f2i\n"));	check_stack_float(0);	cvt_float_int(stack(0), stack(0));}define_insn(F2L){	trace_jcode (("f2l\n"));	check_stack_float(0);	push(1);	cvt_float_long(stack_long(0), stack(1));}define_insn(F2D){	trace_jcode (("f2d\n"));	check_stack_float(0);	push(1);	cvt_float_double(stack_double(0), stack(1));}define_insn(D2I){	trace_jcode (("d2i\n"));	check_stack_double(0);	cvt_double_int(stack(1), stack_double(0));	pop(1);}define_insn(D2L){	trace_jcode (("d2l\n"));	check_stack_double(0);	cvt_double_long(stack_long(0), stack_double(0));}define_insn(D2F){	trace_jcode (("d2f\n"));	check_stack_double(0);	cvt_double_float(stack(1), stack_double(0));	pop(1);}define_insn(INT2BYTE){	trace_jcode (("int2byte\n"));	check_stack_int(0);	cvt_int_byte(stack(0), rstack(0));}define_insn(INT2CHAR){	trace_jcode (("int2char\n"));	check_stack_int(0);	cvt_int_char(stack(0), rstack(0));}define_insn(INT2SHORT){	trace_jcode (("int2short\n"));	check_stack_int(0);	cvt_int_short(stack(0), rstack(0));}define_insn(LCMP){	/*	 * ..., long val1, long val2 -> ..., result	 */	trace_jcode (("lcmp\n"));	check_stack_long(0);	check_stack_long(2);	slot_nowriteback2(stack_long(0));	slot_nowriteback2(stack_long(2));	lcmp(stack(3), rstack_long(0), rstack_long(2));	pop(3);}define_insn(FCMPL){	/*	 * ..., float val1, float val2 -> ..., result	 */	trace_jcode (("fcmpl\n"));	check_stack_float(0);	check_stack_float(1);	cmpl_float(stack(1), stack(1), stack(0));	pop(1);}define_insn(FCMPG){	/*	 * ..., float val1, float val2 -> ..., result	 */	trace_jcode (("fcmpg\n"));	check_stack_float(0);	check_stack_float(1);	cmpg_float(stack(1), stack(1), stack(0));	pop(1);}define_insn(DCMPL){	/*	 * ..., double val1, double val2 -> ..., result	 */	trace_jcode (("dcmpl\n"));	check_stack_double(0);	check_stack_double(2);	cmpl_double(stack(3), stack_double(2), stack_double(0));	pop(3);}define_insn(DCMPG){	/*	 * ..., double val1, double val2 -> ..., result	 */	trace_jcode (("dcmpg\n"));	check_stack_double(0);	check_stack_double(2);	cmpg_double(stack(3), stack_double(2), stack_double(0));	pop(3);}define_insn(IFEQ){	check_pcidx (0);	check_stack_int(0);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("ifeq %ld\n", (long) (pc + idx) ));	slot_nowriteback(stack(0));	begin_sync();	cbranch_int_const_eq(rstack(0), 0, reference_code_label(pc+idx));	pop(1);	end_sync();}define_insn(IFNE){	check_pcidx (0);	check_stack_int(0);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("ifne %ld\n", (long) (pc + idx)));	slot_nowriteback(stack(0));	begin_sync();	cbranch_int_const_ne(rstack(0), 0, reference_code_label(pc+idx));	pop(1);	end_sync();}define_insn(IFLT){	check_pcidx (0);	check_stack_int(0);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("iflt %ld\n", (long) (pc + idx)));	slot_nowriteback(stack(0));	begin_sync();	cbranch_int_const_lt(rstack(0), 0, reference_code_label(pc+idx));	pop(1);	end_sync();}define_insn(IFGE){	check_pcidx (0);	check_stack_int(0);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("ifge %ld\n", (long) (pc + idx)));	slot_nowriteback(stack(0));	begin_sync();	cbranch_int_const_ge(rstack(0), 0, reference_code_label(pc+idx));	pop(1);	end_sync();}define_insn(IFGT){	check_pcidx (0);	check_stack_int(0);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("ifgt %ld\n", (long) (pc + idx)));	slot_nowriteback(stack(0));	begin_sync();	cbranch_int_const_gt(rstack(0), 0, reference_code_label(pc+idx));	pop(1);	end_sync();}define_insn(IFLE){	check_pcidx (0);	check_stack_int(0);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("ifle %ld\n", (long) (pc + idx)));	slot_nowriteback(stack(0));	begin_sync();	cbranch_int_const_le(rstack(0), 0, reference_code_label(pc+idx));	pop(1);	end_sync();}define_insn(IF_ICMPEQ){	check_pcidx (0);	check_stack_int(0);	check_stack_int(1);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("if_icmpeq %ld\n", (long) (pc + idx)));	slot_nowriteback(stack(0));	slot_nowriteback(stack(1));	begin_sync();	cbranch_int_eq(rstack(1), rstack(0), reference_code_label(pc+idx));	pop(2);	end_sync();}define_insn(IF_ICMPNE){	check_pcidx (0);	check_stack_int(0);	check_stack_int(1);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("if_icmpne %ld\n", (long) (pc + idx)));	slot_nowriteback(stack(0));	slot_nowriteback(stack(1));	begin_sync();	cbranch_int_ne(rstack(1), rstack(0), reference_code_label(pc+idx));	pop(2);	end_sync();}define_insn(IF_ICMPLT){	check_pcidx (0);	check_stack_int(0);	check_stack_int(1);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("if_icmplt %ld\n", (long) (pc + idx)));	slot_nowriteback(stack(0));	slot_nowriteback(stack(1));	begin_sync();	cbranch_int_lt(rstack(1), rstack(0), reference_code_label(pc+idx));	pop(2);	end_sync();}define_insn(IF_ICMPGE){	check_pcidx (0);	check_stack_int(0);	check_stack_int(1);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("if_icmpge %ld\n", (long) (pc + idx)));	slot_nowriteback(stack(0));	slot_nowriteback(stack(1));	begin_sync();	cbranch_int_ge(rstack(1), rstack(0), reference_code_label(pc+idx));	pop(2);	end_sync();}define_insn(IF_ICMPGT){	check_pcidx (0);	check_stack_int(0);	check_stack_int(1);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("if_icmpgt %ld\n", (long) (pc + idx)));	slot_nowriteback(stack(0));	slot_nowriteback(stack(1));	begin_sync();	cbranch_int_gt(rstack(1), rstack(0), reference_code_label(pc+idx));	pop(2);	end_sync();}define_insn(IF_ICMPLE){	check_pcidx (0);	check_stack_int(0);	check_stack_int(1);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("if_icmple %ld\n", (long) (pc + idx)));	slot_nowriteback(stack(0));	slot_nowriteback(stack(1));	begin_sync();	cbranch_int_le(rstack(1), rstack(0), reference_code_label(pc+idx));	pop(2);	end_sync();}define_insn(IF_ACMPEQ){	check_pcidx (0);	check_stack_ref(0);	check_stack_ref(1);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("if_acmpeq %ld\n", (long) (pc + idx)));	slot_nowriteback(stack(0));	slot_nowriteback(stack(1));	begin_sync();	cbranch_ref_eq(rstack(1), rstack(0), reference_code_label(pc+idx));	pop(2);	end_sync();}define_insn(IF_ACMPNE){	check_pcidx (0);	check_stack_ref(0);	check_stack_ref(1);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("if_acmpne %ld\n", (long)(pc + idx)));	slot_nowriteback(stack(0));	slot_nowriteback(stack(1));	begin_sync();	cbranch_ref_ne(rstack(1), rstack(0), reference_code_label(pc+idx));	pop(2);	end_sync();}define_insn(GOTO){	check_pcidx (0);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("goto %ld\n", (long) (pc + idx)));	begin_sync();	branch_a(reference_code_label(pc+idx));	end_sync();}define_insn(JSR){	/*	 * ... -> ..., ret-addr	 */	check_pcidx (0);	idx = (int16)((getpc(0) << 8) | getpc(1));	trace_jcode (("jsr %ld\n", (long) (pc + idx)));	push(1);	move_label_const(stack(0), reference_code_label(npc));	begin_sync();	branch_a(reference_code_label(pc+idx));	end_sync();}define_insn(RET){	check_pc (0);	idx = (uint8)getpc(0);	trace_jcode (("ret %d\n", idx));	check_local_ref(idx);	begin_sync();	branch_indirect(stored_code_label(local(idx)));	end_sync();}define_insn(TABLESWITCH){	/*	 * ..., index -> ...	 */	check_stack_int(0);	npc = (pc + 1 + 3) & -4;	low = (int32)((getcode(npc+4) << 24) | (getcode(npc+5) << 16) |				(getcode(npc+6) << 8) | getcode(npc+7));	high = (int32)((getcode(npc+8) << 24) | (getcode(npc+9) << 16) |				(getcode(npc+10) << 8) | getcode(npc+11));	npc = npc + 12;	trace_jcode (("tableswitch %d %d\n", low, high));	end_sub_block();	cbranch_int_const_lt(stack(0), low, reference_label(TABLESWITCH, 8));	cbranch_int_const_le(stack(0), high, reference_label(TABLESWITCH, 7));	start_sub_block();	set_label(TABLESWITCH, 8);	move_int_const(stack(0), low-3); /* Position at default entry */	end_sub_block();	start_sub_block();	set_label(TABLESWITCH, 7);	if (low != 0) {		start_sub_block();		sub_int_const(stack(0), stack(0), low);		end_sub_block();	}	lshl_int_const(stack(0), stack(0), switchtable_shift);	slot_alloctmp(tmp2);	move_label_const(tmp2, reference_table_label(9));	add_ref(stack(0), tmp2, stack(0));	slot_freetmp(tmp2);	load_code_ref(stack(0), stack(0));	end_sub_block();	branch_indirect(table_code_label(stack(0)));	pop(1);#if defined(TRANSLATOR)	{		build_code_ref(&getcode(npc-12), pc);	/* Default entry */		build_code_ref(&getcode(npc-12), pc);	/* Dummy */		build_code_ref(&getcode(npc-12), pc);	/* Dummy */		set_label(TABLESWITCH, 9);		for (idx = 0; idx < high-low+1; idx++) {			build_code_ref(&getcode(npc + (idx << switchtable_shift)), pc);		}

⌨️ 快捷键说明

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