📄 kaffe.def
字号:
check_stack_int(0); check_stack_long(1); slot_nowriteback(stack(0)); slot_nowriteback2(stack_long(1)); lshl_long(stack_long(1), stack_long(1), stack(0)); pop(1);}define_insn_finidefine_insn(ISHR){ /* * ..., val1, val2 -> ... val1 >> val2 */ trace_jcode ("ishr\n"); check_stack_int(0); check_stack_int(1); ashr_int(stack(1), rstack(1), rstack(0)); pop(1);}define_insn_finidefine_insn(LSHR){ /* * ..., long val1, val2 -> ... long val1 >> val2 */ trace_jcode ("lshr\n"); check_stack_int(0); check_stack_long(1); slot_nowriteback(stack(0)); slot_nowriteback2(stack_long(1)); ashr_long(stack_long(1), stack_long(1), stack(0)); pop(1);}define_insn_finidefine_insn(IUSHR){ /* * ..., val1, val2 -> ... val1 >> val2 */ trace_jcode ("iushr\n"); check_stack_int(0); check_stack_int(1); lshr_int(stack(1), rstack(1), rstack(0)); pop(1);}define_insn_finidefine_insn(LUSHR){ /* * ..., long val1, val2 -> ... long val1 >> val2 */ trace_jcode ("lushr\n"); 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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_insn(I2L){ trace_jcode ("i2l\n"); check_stack_int(0); push(1); cvt_int_long(stack_long(0), stack(1));}define_insn_finidefine_insn(I2F){ trace_jcode ("i2f\n"); check_stack_int(0); cvt_int_float(stack(0), stack(0));}define_insn_finidefine_insn(I2D){ trace_jcode ("i2d\n"); check_stack_int(0); push(1); cvt_int_double(stack_double(0), stack(1));}define_insn_finidefine_insn(L2I){ trace_jcode ("l2i\n"); check_stack_long(0); cvt_long_int(stack(1), stack_long(0)); pop(1);}define_insn_finidefine_insn(L2F){ trace_jcode ("l2f\n"); check_stack_long(0); cvt_long_float(stack(1), stack_long(0)); pop(1);}define_insn_finidefine_insn(L2D){ trace_jcode ("l2d\n"); check_stack_long(0); cvt_long_double(stack_double(0), stack_long(0));}define_insn_finidefine_insn(F2I){ trace_jcode ("f2i\n"); check_stack_float(0); cvt_float_int(stack(0), stack(0));}define_insn_finidefine_insn(F2L){ trace_jcode ("f2l\n"); check_stack_float(0); push(1); cvt_float_long(stack_long(0), stack(1));}define_insn_finidefine_insn(F2D){ trace_jcode ("f2d\n"); check_stack_float(0); push(1); cvt_float_double(stack_double(0), stack(1));}define_insn_finidefine_insn(D2I){ trace_jcode ("d2i\n"); check_stack_double(0); cvt_double_int(stack(1), stack_double(0)); pop(1);}define_insn_finidefine_insn(D2L){ trace_jcode ("d2l\n"); check_stack_double(0); cvt_double_long(stack_long(0), stack_double(0));}define_insn_finidefine_insn(D2F){ trace_jcode ("d2f\n"); check_stack_double(0); cvt_double_float(stack(1), stack_double(0)); pop(1);}define_insn_finidefine_insn(INT2BYTE){ trace_jcode ("int2byte\n"); check_stack_int(0); cvt_int_byte(stack(0), rstack(0));}define_insn_finidefine_insn(INT2CHAR){ trace_jcode ("int2char\n"); check_stack_int(0); cvt_int_char(stack(0), rstack(0));}define_insn_finidefine_insn(INT2SHORT){ trace_jcode ("int2short\n"); check_stack_int(0); cvt_int_short(stack(0), rstack(0));}define_insn_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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_finidefine_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));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -