📄 kaffe.def
字号:
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 + -