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

📄 kaffe.def

📁 基于LWVCL开发的库
💻 DEF
📖 第 1 页 / 共 5 页
字号:
	trace_jcode ("fstore %d\n", getopcode() - FSTORE_0);	check_stack_float(0);	move_float(local_float(getopcode() - FSTORE_0), stack(0));	pop(1);}define_insn_finidefine_insn(DSTORE_0)define_insn_alias(DSTORE_1)define_insn_alias(DSTORE_2)define_insn_alias(DSTORE_3){	/*	 * ..., double val -> ...	 */	trace_jcode ("dstore %d\n", getopcode() - DSTORE_0);	check_stack_double(0);	move_double(local_double(getopcode() - DSTORE_0), stack_double(0));	pop(2);}define_insn_finidefine_insn(ASTORE_0)define_insn_alias(ASTORE_1)define_insn_alias(ASTORE_2)define_insn_alias(ASTORE_3){	/*	 * ..., val -> ...	 */	trace_jcode ("astore %d\n", getopcode() - ASTORE_0);	check_stack_ref(0);	move_ref(local(getopcode() - ASTORE_0), stack(0));	pop(1);}define_insn_finidefine_insn(IASTORE){	/*	 * ..., array ref, index, val -> ...	 */	trace_jcode ("iastore\n");	check_stack_int(0);	check_stack_int(1);	check_stack_intarray(2);	check_null(IASTORE, rstack(2), 34);	/* Check we are within the array bounds */	check_array_index(rstack(2), rstack(1));	store_offset_scaled_int(rstack(2), rstack(1), object_array_offset, rstack(0));	pop(3);}define_insn_finidefine_insn(LASTORE){	/*	 * ..., array ref, index, long val -> ...	 */	trace_jcode ("lastore\n");	check_stack_int(0);	check_stack_int(1);	check_stack_longarray(2);	check_null(LASTORE, stack(3), 34);	/* Check we are within the array bounds */	check_array_index(rstack(3), rstack(2));	store_offset_scaled_long(stack(3), stack(2), object_array_offset, stack_long(0));	pop(4);}define_insn_finidefine_insn(FASTORE){	/*	 * ..., array ref, index, float val -> ...	 */	trace_jcode ("fastore\n");	check_stack_int(0);	check_stack_int(1);	check_stack_floatarray(2);	check_null(FASTORE, stack(2), 34);	/* Check we are within the array bounds */	check_array_index(rstack(2), rstack(1));	store_offset_scaled_float(stack(2), stack(1), object_array_offset, stack(0));	pop(3);}define_insn_finidefine_insn(DASTORE){	/*	 * ..., array ref, index, double val -> ...	 */	trace_jcode ("dastore\n");	check_stack_int(0);	check_stack_int(1);	check_stack_doublearray(2);	check_null(DASTORE, stack(3), 34);	/* Check we are within the array bounds */	check_array_index(rstack(3), rstack(2));	store_offset_scaled_double(stack(3), stack(2), object_array_offset, stack_double(0));	pop(4);}define_insn_finidefine_insn(AASTORE){	/*	 * ..., array ref, index, val -> ...	 */	trace_jcode ("aastore\n");	check_stack_int(0);	check_stack_int(1);	check_stack_refarray(2);	check_null(AASTORE, rstack(2), 34);	/* Check we are within the array bounds */	check_array_index(rstack(2), rstack(1));	check_array_store(rstack(2), rstack(0));	SOFT_ADDREFERENCE(rstack(2), rstack(0));	store_offset_scaled_ref(rstack(2), rstack(1), object_array_offset, rstack(0));	pop(3);}define_insn_finidefine_insn(BASTORE){	/*	 * ..., array ref, index, byte value  -> ...	 */	trace_jcode ("bastore\n");	check_stack_int(0);	check_stack_int(1);	check_stack_bytearray(2);	check_null(BASTORE, rstack(2), 34);	/* Check we are within the array bounds */	check_array_index(rstack(2), rstack(1));	store_offset_scaled_byte(rstack(2), rstack(1), object_array_offset, rstack(0));	pop(3);}define_insn_finidefine_insn(CASTORE){	/*	 * ..., array ref, index, char value  -> ...	 */	trace_jcode ("castore\n");	check_stack_int(0);	check_stack_int(1);	check_stack_chararray(2);	check_null(CASTORE, rstack(2), 34);	/* Check we are within the array bounds */	check_array_index(rstack(2), rstack(1));	store_offset_scaled_char(rstack(2), rstack(1), object_array_offset, rstack(0));	pop(3);}define_insn_finidefine_insn(SASTORE){	/*	 * ..., array ref, index, short value  -> ...	 */	trace_jcode ("sastore\n");	check_stack_int(0);	check_stack_int(1);	check_stack_shortarray(2);	check_null(SASTORE, rstack(2), 34);	/* Check we are within the array bounds */	check_array_index(rstack(2), rstack(1));	store_offset_scaled_short(rstack(2), rstack(1), object_array_offset, rstack(0));	pop(3);}define_insn_finidefine_insn(POP){    	/*	 * ..., slot -> ...	 */	trace_jcode ("pop\n");	pop(1);}define_insn_finidefine_insn(POP2){    	/*	 * ..., slot, slot -> ...	 */	trace_jcode ("pop2\n");	pop(2);}define_insn_finidefine_insn(DUP){	trace_jcode ("dup\n");	push(1);	move_any(stack(0), stack(1));}define_insn_finidefine_insn(DUP_X1){	trace_jcode ("dup_x1\n");	push(1);	move_any(stack(0), stack(1));	move_any(stack(1), stack(2));	move_any(stack(2), stack(0));}define_insn_finidefine_insn(DUP_X2){	trace_jcode ("dup_x2\n");	push(1);	move_any(stack(0), stack(1));	move_any(stack(1), stack(2));	move_any(stack(2), stack(3));	move_any(stack(3), stack(0));}define_insn_finidefine_insn(DUP2){	trace_jcode ("dup2\n");	push(2);	move_any(stack(0), stack(2));	move_any(stack(1), stack(3));}define_insn_finidefine_insn(DUP2_X1){	trace_jcode ("dup2_x1\n");	push(2);	move_any(stack(0), stack(2));	move_any(stack(1), stack(3));	move_any(stack(2), stack(4));	move_any(stack(3), stack(0));	move_any(stack(4), stack(1));}define_insn_finidefine_insn(DUP2_X2){	trace_jcode ("dup2_x2\n");	push(2);	move_any(stack(0), stack(2));	move_any(stack(1), stack(3));	move_any(stack(2), stack(4));	move_any(stack(3), stack(5));	move_any(stack(4), stack(0));	move_any(stack(5), stack(1));}define_insn_finidefine_insn(SWAP){        /*         * ..., val1, val2 -> ..., val2, val1         */	trace_jcode ("swap\n");	swap_any(stack(0), stack(1));}define_insn_finidefine_insn(IADD){        /*         * ..., val1, val2 -> ..., val1+val2         */	trace_jcode ("iadd\n");	check_stack_int(0);	check_stack_int(1);	add_int(stack(1), rstack(1), rstack(0));	pop(1);}define_insn_finidefine_insn(LADD){        /*         * ..., long val1, long val2 -> ..., long val1+val2         */	trace_jcode ("ladd\n");	check_stack_long(0);	check_stack_long(2);	slot_nowriteback2(stack_long(0));	slot_nowriteback2(stack_long(2));	add_long(stack_long(2), rstack_long(2), rstack_long(0));	pop(2);}define_insn_finidefine_insn(FADD){        /*         * ..., val1, val2 -> ..., val1+val2         */	trace_jcode ("fadd\n");	check_stack_float(0);	check_stack_float(1);	add_float(stack_float(1), rstack_float(1), rstack_float(0));	pop(1);}define_insn_finidefine_insn(DADD){        /*         * ..., double val1, long val2 -> ..., double val1+val2         */	trace_jcode ("dadd\n");	check_stack_double(0);	check_stack_double(2);	add_double(stack_double(2), rstack_double(2), rstack_double(0));	pop(2);}define_insn_finidefine_insn(ISUB){        /*         * ..., val1, val2 -> ..., val1-val2         */	trace_jcode ("isub\n");	check_stack_int(0);	check_stack_int(1);	sub_int(stack(1), rstack(1), rstack(0));	pop(1);}define_insn_finidefine_insn(LSUB){        /*         * ..., long val1, long val2 -> ..., long val1-val2         */	trace_jcode ("lsub\n");	check_stack_long(0);	check_stack_long(2);	slot_nowriteback2(stack_long(0));	slot_nowriteback2(stack_long(2));	sub_long(stack_long(2), rstack_long(2), rstack_long(0));	pop(2);}define_insn_finidefine_insn(FSUB){        /*         * ..., val1, val2 -> ..., val1-val2         */	trace_jcode ("fsub\n");	check_stack_float(0);	check_stack_float(1);	sub_float(stack_float(1), rstack_float(1), rstack_float(0));	pop(1);}define_insn_finidefine_insn(DSUB){        /*         * ..., double val1, long val2 -> ..., double val1-val2         */	trace_jcode ("dsub\n");	check_stack_double(0);	check_stack_double(2);	sub_double(stack_double(2), rstack_double(2), rstack_double(0));	pop(2);}define_insn_finidefine_insn(IMUL){        /*         * ..., val1, val2 -> ..., val1*val2         */	trace_jcode ("imul\n");	check_stack_int(0);	check_stack_int(1);	mul_int(stack(1), rstack(1), rstack(0));	pop(1);}define_insn_finidefine_insn(LMUL){        /*         * ..., long val1, long val2 -> ..., long val1*val2         */	trace_jcode ("lmul\n");	check_stack_long(0);	check_stack_long(2);	slot_nowriteback2(stack_long(0));	slot_nowriteback2(stack_long(2));	mul_long(stack_long(2), rstack_long(2), rstack_long(0));	pop(2);}define_insn_finidefine_insn(FMUL){        /*         * ..., val1, val2 -> ..., val1*val2         */	trace_jcode ("fmul\n");	check_stack_float(0);	check_stack_float(1);	mul_float(stack_float(1), rstack_float(1), rstack_float(0));	pop(1);}define_insn_finidefine_insn(DMUL){        /*         * ..., double val1, long val2 -> ..., double val1*val2         */	trace_jcode ("dmul\n");	check_stack_double(0);	check_stack_double(2);	mul_double(stack_double(2), rstack_double(2), rstack_double(0));	pop(2);}define_insn_finidefine_insn(IDIV){        /*         * ..., val1, val2 -> ..., val1/val2         */	trace_jcode ("idiv\n");	check_stack_int(0);	check_stack_int(1);	check_div(IDIV, rstack(0), 1);	div_int(stack(1), rstack(1), rstack(0));	pop(1);}define_insn_finidefine_insn(LDIV){        /*         * ..., long val1, long val2 -> ..., long val1/val2         */	trace_jcode ("ldiv\n");	check_stack_long(0);	check_stack_long(2);	slot_nowriteback2(stack_long(0));	slot_nowriteback2(stack_long(2));	check_div_long(LDIV, rstack_long(0), 1);	div_long(stack_long(2), rstack_long(2), rstack_long(0));	pop(2);}define_insn_finidefine_insn(FDIV){        /*         * ..., val1, val2 -> ..., val1/val2         */	trace_jcode ("fdiv\n");	check_stack_float(0);	check_stack_float(1);	div_float(stack_float(1), rstack_float(1), rstack_float(0));	pop(1);}define_insn_finidefine_insn(DDIV){        /*         * ..., val1, val2 -> ..., val1/val2         */	trace_jcode ("ddiv\n");	check_stack_double(0);	check_stack_double(2);	div_double(stack_double(2), rstack_double(2), rstack_double(0));	pop(2);}define_insn_finidefine_insn(IREM){        /*         * ..., val1, val2 -> ..., val1%val2         */	trace_jcode ("irem\n");	check_stack_int(0);	check_stack_int(1);	check_div(IREM, rstack(0), 1);	rem_int(stack(1), rstack(1), rstack(0));	pop(1);}define_insn_finidefine_insn(LREM){        /*         * ..., long val1, long val2 -> ..., long val1%val2         */	trace_jcode ("lrem\n");	check_stack_long(0);	check_stack_long(2);	slot_nowriteback2(stack_long(0));	slot_nowriteback2(stack_long(2));	check_div_long(LREM, rstack_long(0), 1);	rem_long(stack_long(2), rstack_long(2), rstack_long(0));	pop(2);}define_insn_finidefine_insn(FREM){        /*         * ..., val1, val2 -> ..., val1%val2         */	trace_jcode ("frem\n");	check_stack_float(0);	check_stack_float(1);	rem_float(stack_float(1), rstack_float(1), rstack_float(0));	pop(1);}define_insn_finidefine_insn(DREM){        /*         * ..., val1, val2 -> ..., val1%val2         */	trace_jcode ("drem\n");	check_stack_double(0);	check_stack_double(2);	rem_double(stack_double(2), rstack_double(2), rstack_double(0));	pop(2);}define_insn_finidefine_insn(INEG){	trace_jcode ("ineg\n");	check_stack_int(0);	neg_int(stack(0), rstack(0));}define_insn_finidefine_insn(LNEG){	trace_jcode ("lneg\n");	check_stack_long(0);	slot_nowriteback2(stack_long(0));	neg_long(stack_long(0), rstack_long(0));}define_insn_finidefine_insn(FNEG){	trace_jcode ("fneg\n");	check_stack_float(0);	neg_float(stack_float(0), rstack_float(0));}define_insn_finidefine_insn(DNEG){	trace_jcode ("dneg\n");	check_stack_double(0);	neg_double(stack_double(0), rstack_double(0));}define_insn_finidefine_insn(ISHL){	/*	 * ..., val1, val2 -> ... val1 << val2	 */	trace_jcode ("ishl\n");	check_stack_int(0);	check_stack_int(1);	lshl_int(stack(1), rstack(1), rstack(0));	pop(1);}define_insn_finidefine_insn(LSHL){	/*	 * ..., long val1, val2 -> ... long val1 << val2	 */	trace_jcode ("lshl\n");

⌨️ 快捷键说明

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