bytecodeparser.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 1,117 行 · 第 1/3 页
JAVA
1,117 行
handler.visit_dstore(getu1());
break;
case 0x3a:
handler.visit_astore(getu1());
break;
case 0x3b:
handler.visit_istore(0);
break;
// -- 60 --
case 0x3c:
handler.visit_istore(1);
break;
case 0x3d:
handler.visit_istore(2);
break;
case 0x3e:
handler.visit_istore(3);
break;
case 0x3f:
handler.visit_lstore(0);
break;
case 0x40:
handler.visit_lstore(1);
break;
case 0x41:
handler.visit_lstore(2);
break;
case 0x42:
handler.visit_lstore(3);
break;
case 0x43:
handler.visit_fstore(0);
break;
case 0x44:
handler.visit_fstore(1);
break;
case 0x45:
handler.visit_fstore(2);
break;
// -- 70 --
case 0x46:
handler.visit_fstore(3);
break;
case 0x47:
handler.visit_dstore(0);
break;
case 0x48:
handler.visit_dstore(1);
break;
case 0x49:
handler.visit_dstore(2);
break;
case 0x4a:
handler.visit_dstore(3);
break;
case 0x4b:
handler.visit_astore(0);
break;
case 0x4c:
handler.visit_astore(1);
break;
case 0x4d:
handler.visit_astore(2);
break;
case 0x4e:
handler.visit_astore(3);
break;
case 0x4f:
handler.visit_iastore();
break;
// -- 80 --
case 0x50:
handler.visit_lastore();
break;
case 0x51:
handler.visit_fastore();
break;
case 0x52:
handler.visit_dastore();
break;
case 0x53:
handler.visit_aastore();
break;
case 0x54:
handler.visit_bastore();
break;
case 0x55:
handler.visit_castore();
break;
case 0x56:
handler.visit_sastore();
break;
case 0x57:
handler.visit_pop();
break;
case 0x58:
handler.visit_pop2();
break;
case 0x59:
handler.visit_dup();
break;
// -- 90 --
case 0x5a:
handler.visit_dup_x1();
break;
case 0x5b:
handler.visit_dup_x2();
break;
case 0x5c:
handler.visit_dup2();
break;
case 0x5d:
handler.visit_dup2_x1();
break;
case 0x5e:
handler.visit_dup2_x2();
break;
case 0x5f:
handler.visit_swap();
break;
case 0x60:
handler.visit_iadd();
break;
case 0x61:
handler.visit_ladd();
break;
case 0x62:
handler.visit_fadd();
break;
case 0x63:
handler.visit_dadd();
break;
// -- 100 --
case 0x64:
handler.visit_isub();
break;
case 0x65:
handler.visit_lsub();
break;
case 0x66:
handler.visit_fsub();
break;
case 0x67:
handler.visit_dsub();
break;
case 0x68:
handler.visit_imul();
break;
case 0x69:
handler.visit_lmul();
break;
case 0x6a:
handler.visit_fmul();
break;
case 0x6b:
handler.visit_dmul();
break;
case 0x6c:
handler.visit_idiv();
break;
case 0x6d:
handler.visit_ldiv();
break;
// -- 110 --
case 0x6e:
handler.visit_fdiv();
break;
case 0x6f:
handler.visit_ddiv();
break;
case 0x70:
handler.visit_irem();
break;
case 0x71:
handler.visit_lrem();
break;
case 0x72:
handler.visit_frem();
break;
case 0x73:
handler.visit_drem();
break;
case 0x74:
handler.visit_ineg();
break;
case 0x75:
handler.visit_lneg();
break;
case 0x76:
handler.visit_fneg();
break;
case 0x77:
handler.visit_dneg();
break;
// -- 120 --
case 0x78:
handler.visit_ishl();
break;
case 0x79:
handler.visit_lshl();
break;
case 0x7a:
handler.visit_ishr();
break;
case 0x7b:
handler.visit_lshr();
break;
case 0x7c:
handler.visit_iushr();
break;
case 0x7d:
handler.visit_lushr();
break;
case 0x7e:
handler.visit_iand();
break;
case 0x7f:
handler.visit_land();
break;
case 0x80:
handler.visit_ior();
break;
case 0x81:
handler.visit_lor();
break;
// -- 130 --
case 0x82:
handler.visit_ixor();
break;
case 0x83:
handler.visit_lxor();
break;
case 0x84:
{
int idx = getu1();
handler.visit_iinc(idx, gets1());
}
break;
case 0x85:
handler.visit_i2l();
break;
case 0x86:
handler.visit_i2f();
break;
case 0x87:
handler.visit_i2d();
break;
case 0x88:
handler.visit_l2i();
break;
case 0x89:
handler.visit_l2f();
break;
case 0x8a:
handler.visit_l2d();
break;
case 0x8b:
handler.visit_f2i();
break;
// -- 140 --
case 0x8c:
handler.visit_f2l();
break;
case 0x8d:
handler.visit_f2d();
break;
case 0x8e:
handler.visit_d2i();
break;
case 0x8f:
handler.visit_d2l();
break;
case 0x90:
handler.visit_d2f();
break;
case 0x91:
handler.visit_i2b();
break;
case 0x92:
handler.visit_i2c();
break;
case 0x93:
handler.visit_i2s();
break;
case 0x94:
handler.visit_lcmp();
break;
case 0x95:
handler.visit_fcmpl();
break;
// -- 150 --
case 0x96:
handler.visit_fcmpg();
break;
case 0x97:
handler.visit_dcmpl();
break;
case 0x98:
handler.visit_dcmpg();
break;
case 0x99:
handler.visit_ifeq(address + gets2());
break;
case 0x9a:
handler.visit_ifne(address + gets2());
break;
case 0x9b:
handler.visit_iflt(address + gets2());
break;
case 0x9c:
handler.visit_ifge(address + gets2());
break;
case 0x9d:
handler.visit_ifgt(address + gets2());
break;
case 0x9e:
handler.visit_ifle(address + gets2());
break;
case 0x9f:
handler.visit_if_icmpeq(address + gets2());
break;
// -- 160 --
case 0xa0:
handler.visit_if_icmpne(address + gets2());
break;
case 0xa1:
handler.visit_if_icmplt(address + gets2());
break;
case 0xa2:
handler.visit_if_icmpge(address + gets2());
break;
case 0xa3:
handler.visit_if_icmpgt(address + gets2());
break;
case 0xa4:
handler.visit_if_icmple(address + gets2());
break;
case 0xa5:
handler.visit_if_acmpeq(address + gets2());
break;
case 0xa6:
handler.visit_if_acmpne(address + gets2());
break;
case 0xa7:
handler.visit_goto(address + gets2());
break;
case 0xa8:
handler.visit_jsr(address + gets2());
break;
case 0xa9:
handler.visit_ret(getu1());
break;
// -- 170 --
case 0xaa:
{
skipPadding();
int defAddress = address + gets4();
int lowValue = gets4();
int highValue = gets4();
if (highValue < lowValue) { throw new ClassFormatError(
"tableSwitch high < low! (high=" + highValue
+ ", low=" + lowValue + ")"); }
int cnt = highValue - lowValue + 1;
int addresses[] = new int[ cnt];
for (int i = 0; i < cnt; i++) {
addresses[ i] = address + gets4();
}
handler.visit_tableswitch(defAddress, lowValue, highValue,
addresses);
}
break;
case 0xab:
{
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?