Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Decompiled Enum

By: a guest on Apr 13th, 2013  |  syntax: Java  |  size: 33.89 KB  |  views: 87  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. public enum OpCode
  2. {
  3.     NOP(0, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.Pop0, StackBehavior.Push0),
  4.     ACONST_NULL(1, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.Pop0, StackBehavior.PushA),
  5.     ICONST_M1(2, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI4),
  6.     ICONST_0(3, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI4),
  7.     ICONST_1(4, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI4),
  8.     ICONST_2(5, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI4),
  9.     ICONST_3(6, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI4),
  10.     ICONST_4(7, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI4),
  11.     ICONST_5(8, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI4),
  12.     LCONST_0(9, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI8),
  13.     LCONST_1(10, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI8),
  14.     FCONST_0(11, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushR4),
  15.     FCONST_1(12, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushR4),
  16.     FCONST_2(13, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushR4),
  17.     DCONST_0(14, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushR8),
  18.     DCONST_1(15, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushR8),
  19.     BIPUSH(16, FlowControl.Next, OpCodeType.Primitive, OperandType.I1, StackBehavior.Pop0, StackBehavior.PushI4),
  20.     SIPUSH(17, FlowControl.Next, OpCodeType.Primitive, OperandType.I2, StackBehavior.Pop0, StackBehavior.PushI4),
  21.     LDC(18, FlowControl.Next, OpCodeType.Primitive, OperandType.Constant, StackBehavior.Pop0, StackBehavior.Push1),
  22.     LDC_W(19, FlowControl.Next, OpCodeType.Primitive, OperandType.WideConstant, StackBehavior.Pop0, StackBehavior.Push1),
  23.     LDC2_W(20, FlowControl.Next, OpCodeType.Primitive, OperandType.WideConstant, StackBehavior.Pop0, StackBehavior.Push2),
  24.     ILOAD(21, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.Pop0, StackBehavior.PushI4),
  25.     LLOAD(22, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.Pop0, StackBehavior.PushI8),
  26.     FLOAD(23, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.Pop0, StackBehavior.PushR4),
  27.     DLOAD(24, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.Pop0, StackBehavior.PushR8),
  28.     ALOAD(25, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.Pop0, StackBehavior.PushA),
  29.     ILOAD_0(26, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI4),
  30.     ILOAD_1(27, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI4),
  31.     ILOAD_2(28, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI4),
  32.     ILOAD_3(29, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI4),
  33.     LLOAD_0(30, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI8),
  34.     LLOAD_1(31, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI8),
  35.     LLOAD_2(32, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI8),
  36.     LLOAD_3(33, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushI8),
  37.     FLOAD_0(34, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushR4),
  38.     FLOAD_1(35, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushR4),
  39.     FLOAD_2(36, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushR4),
  40.     FLOAD_3(37, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushR4),
  41.     DLOAD_0(38, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushR8),
  42.     DLOAD_1(39, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushR8),
  43.     DLOAD_2(40, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushR8),
  44.     DLOAD_3(41, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushR8),
  45.     ALOAD_0(42, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushA),
  46.     ALOAD_1(43, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushA),
  47.     ALOAD_2(44, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushA),
  48.     ALOAD_3(45, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.Pop0, StackBehavior.PushA),
  49.     IALOAD(46, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopI4_PopA, StackBehavior.PushI4),
  50.     LALOAD(47, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopI4_PopA, StackBehavior.PushI8),
  51.     FALOAD(48, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopI4_PopA, StackBehavior.PushR4),
  52.     DALOAD(49, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopI4_PopA, StackBehavior.PushR8),
  53.     AALOAD(50, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopI4_PopA, StackBehavior.PushA),
  54.     BALOAD(51, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopI4_PopA, StackBehavior.PushI4),
  55.     CALOAD(52, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopI4_PopA, StackBehavior.PushI4),
  56.     SALOAD(53, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopI4_PopA, StackBehavior.PushI4),
  57.     ISTORE(54, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.PopI4, StackBehavior.Push0),
  58.     LSTORE(55, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.PopI8, StackBehavior.Push0),
  59.     FSTORE(56, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.PopR4, StackBehavior.Push0),
  60.     DSTORE(57, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.PopR8, StackBehavior.Push0),
  61.     ASTORE(58, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.PopA, StackBehavior.Push0),
  62.     ISTORE_0(59, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopI4, StackBehavior.Push0),
  63.     ISTORE_1(60, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopI4, StackBehavior.Push0),
  64.     ISTORE_2(61, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopI4, StackBehavior.Push0),
  65.     ISTORE_3(62, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopI4, StackBehavior.Push0),
  66.     LSTORE_0(63, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopI8, StackBehavior.Push0),
  67.     LSTORE_1(64, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopI8, StackBehavior.Push0),
  68.     LSTORE_2(65, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopI8, StackBehavior.Push0),
  69.     LSTORE_3(66, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopI8, StackBehavior.Push0),
  70.     FSTORE_0(67, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopR4, StackBehavior.Push0),
  71.     FSTORE_1(68, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopR4, StackBehavior.Push0),
  72.     FSTORE_2(69, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopR4, StackBehavior.Push0),
  73.     FSTORE_3(70, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopR4, StackBehavior.Push0),
  74.     DSTORE_0(71, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopR8, StackBehavior.Push0),
  75.     DSTORE_1(72, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopR8, StackBehavior.Push0),
  76.     DSTORE_2(73, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopR8, StackBehavior.Push0),
  77.     DSTORE_3(74, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopR8, StackBehavior.Push0),
  78.     ASTORE_0(75, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopA, StackBehavior.Push0),
  79.     ASTORE_1(76, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopA, StackBehavior.Push0),
  80.     ASTORE_2(77, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopA, StackBehavior.Push0),
  81.     ASTORE_3(78, FlowControl.Next, OpCodeType.Macro, OperandType.None, StackBehavior.PopA, StackBehavior.Push0),
  82.     IASTORE(79, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopI4_PopI4_PopA, StackBehavior.Push0),
  83.     LASTORE(80, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopI8_PopI4_PopA, StackBehavior.Push0),
  84.     FASTORE(81, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopR4_PopI4_PopA, StackBehavior.Push0),
  85.     DASTORE(82, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopR8_PopI4_PopA, StackBehavior.Push0),
  86.     AASTORE(83, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopA_PopI4_PopA, StackBehavior.Push0),
  87.     BASTORE(84, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopI4_PopI4_PopA, StackBehavior.Push0),
  88.     CASTORE(85, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopI4_PopI4_PopA, StackBehavior.Push0),
  89.     SASTORE(86, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopI4_PopI4_PopA, StackBehavior.Push0),
  90.     POP(87, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.Pop1, StackBehavior.Push0),
  91.     POP2(88, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.Pop2, StackBehavior.Push0),
  92.     DUP(89, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.Pop1, StackBehavior.Push1_Push1),
  93.     DUP_X1(90, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.Pop1_Pop1, StackBehavior.Push1_Push1_Push1),
  94.     DUP_X2(91, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.Pop2_Pop1, StackBehavior.Push1_Push2_Push1),
  95.     DUP2(92, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.Pop2, StackBehavior.Push2_Push2),
  96.     DUP2_X1(93, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.Pop1_Pop2, StackBehavior.Push2_Push1_Push2),
  97.     DUP2_X2(94, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.Pop2_Pop2, StackBehavior.Push2_Push2_Push2),
  98.     SWAP(95, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.Pop1_Pop1, StackBehavior.Push1_Push1),
  99.     IADD(96, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4_PopI4, StackBehavior.PushI4),
  100.     LADD(97, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI8_PopI8, StackBehavior.PushI8),
  101.     FADD(98, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR4_PopR4, StackBehavior.PushR4),
  102.     DADD(99, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR8_PopR8, StackBehavior.PushR8),
  103.     ISUB(100, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4_PopI4, StackBehavior.PushI4),
  104.     LSUB(101, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI8_PopI8, StackBehavior.PushI8),
  105.     FSUB(102, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR4_PopR4, StackBehavior.PushR4),
  106.     DSUB(103, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR8_PopR8, StackBehavior.PushR8),
  107.     IMUL(104, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4_PopI4, StackBehavior.PushI4),
  108.     LMUL(105, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI8_PopI8, StackBehavior.PushI8),
  109.     FMUL(106, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR4_PopR4, StackBehavior.PushR4),
  110.     DMUL(107, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR8_PopR8, StackBehavior.PushR8),
  111.     IDIV(108, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4_PopI4, StackBehavior.PushI4),
  112.     LDIV(109, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI8_PopI8, StackBehavior.PushI8),
  113.     FDIV(110, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR4_PopR4, StackBehavior.PushR4),
  114.     DDIV(111, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR8_PopR8, StackBehavior.PushR8),
  115.     IREM(112, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4_PopI4, StackBehavior.PushI4),
  116.     LREM(113, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI8_PopI8, StackBehavior.PushI8),
  117.     FREM(114, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR4_PopR4, StackBehavior.PushR4),
  118.     DREM(115, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR8_PopR8, StackBehavior.PushR8),
  119.     INEG(116, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4, StackBehavior.PushI4),
  120.     LNEG(117, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI8, StackBehavior.PushI8),
  121.     FNEG(118, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR4, StackBehavior.PushR4),
  122.     DNEG(119, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR8, StackBehavior.PushR8),
  123.     ISHL(120, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4_PopI4, StackBehavior.PushI4),
  124.     LSHL(121, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4_PopI8, StackBehavior.PushI8),
  125.     ISHR(122, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4_PopI4, StackBehavior.PushI4),
  126.     LSHR(123, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4_PopI8, StackBehavior.PushI8),
  127.     IUSHR(124, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4_PopI4, StackBehavior.PushI4),
  128.     LUSHR(125, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4_PopI8, StackBehavior.PushI8),
  129.     IAND(126, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4_PopI4, StackBehavior.PushI4),
  130.     LAND(127, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI8_PopI8, StackBehavior.PushI8),
  131.     IOR(128, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4_PopI4, StackBehavior.PushI4),
  132.     LOR(129, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI8_PopI8, StackBehavior.PushI8),
  133.     IXOR(130, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4_PopI4, StackBehavior.PushI4),
  134.     LXOR(131, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI8_PopI8, StackBehavior.PushI8),
  135.     IINC(132, FlowControl.Next, OpCodeType.Primitive, OperandType.LocalI1, StackBehavior.Pop0, StackBehavior.Push0),
  136.     I2L(133, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4, StackBehavior.PushI8),
  137.     I2F(134, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4, StackBehavior.PushR4),
  138.     I2D(135, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4, StackBehavior.PushR8),
  139.     L2I(136, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI8, StackBehavior.PushI4),
  140.     L2F(137, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI8, StackBehavior.PushR4),
  141.     L2D(138, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI8, StackBehavior.PushR8),
  142.     F2I(139, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR4, StackBehavior.PushI4),
  143.     F2L(140, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR4, StackBehavior.PushI8),
  144.     F2D(141, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR4, StackBehavior.PushR8),
  145.     D2I(142, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR8, StackBehavior.PushI4),
  146.     D2L(143, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR8, StackBehavior.PushI8),
  147.     D2F(144, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR8, StackBehavior.PushR4),
  148.     I2B(145, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4, StackBehavior.PushI4),
  149.     I2C(146, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4, StackBehavior.PushI4),
  150.     I2S(147, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4, StackBehavior.PushI4),
  151.     LCMP(148, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI8_PopI8, StackBehavior.PushI4),
  152.     FCMPL(149, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR4_PopR4, StackBehavior.PushI4),
  153.     FCMPG(150, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR4_PopR4, StackBehavior.PushI4),
  154.     DCMPL(151, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR8_PopR8, StackBehavior.PushI4),
  155.     DCMPG(152, FlowControl.Next, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR8_PopR8, StackBehavior.PushI4),
  156.     IFEQ(153, FlowControl.ConditionalBranch, OpCodeType.Primitive, OperandType.BranchTarget, StackBehavior.PopI4, StackBehavior.Push0),
  157.     IFNE(154, FlowControl.ConditionalBranch, OpCodeType.Primitive, OperandType.BranchTarget, StackBehavior.PopI4, StackBehavior.Push0),
  158.     IFLT(155, FlowControl.ConditionalBranch, OpCodeType.Primitive, OperandType.BranchTarget, StackBehavior.PopI4, StackBehavior.Push0),
  159.     IFGE(156, FlowControl.ConditionalBranch, OpCodeType.Primitive, OperandType.BranchTarget, StackBehavior.PopI4, StackBehavior.Push0),
  160.     IFGT(157, FlowControl.ConditionalBranch, OpCodeType.Primitive, OperandType.BranchTarget, StackBehavior.PopI4, StackBehavior.Push0),
  161.     IFLE(158, FlowControl.ConditionalBranch, OpCodeType.Primitive, OperandType.BranchTarget, StackBehavior.PopI4, StackBehavior.Push0),
  162.     IF_ICMPEQ(159, FlowControl.ConditionalBranch, OpCodeType.Macro, OperandType.BranchTarget, StackBehavior.PopI4_PopI4, StackBehavior.Push0),
  163.     IF_ICMPNE(160, FlowControl.ConditionalBranch, OpCodeType.Macro, OperandType.BranchTarget, StackBehavior.PopI4_PopI4, StackBehavior.Push0),
  164.     IF_ICMPLT(161, FlowControl.ConditionalBranch, OpCodeType.Macro, OperandType.BranchTarget, StackBehavior.PopI4_PopI4, StackBehavior.Push0),
  165.     IF_ICMPGE(162, FlowControl.ConditionalBranch, OpCodeType.Macro, OperandType.BranchTarget, StackBehavior.PopI4_PopI4, StackBehavior.Push0),
  166.     IF_ICMPGT(163, FlowControl.ConditionalBranch, OpCodeType.Macro, OperandType.BranchTarget, StackBehavior.PopI4_PopI4, StackBehavior.Push0),
  167.     IF_ICMPLE(164, FlowControl.ConditionalBranch, OpCodeType.Macro, OperandType.BranchTarget, StackBehavior.PopI4_PopI4, StackBehavior.Push0),
  168.     IF_ACMPEQ(165, FlowControl.ConditionalBranch, OpCodeType.Macro, OperandType.BranchTarget, StackBehavior.PopA_PopA, StackBehavior.Push0),
  169.     IF_ACMPNE(166, FlowControl.ConditionalBranch, OpCodeType.Macro, OperandType.BranchTarget, StackBehavior.PopA_PopA, StackBehavior.Push0),
  170.     GOTO(167, FlowControl.Branch, OpCodeType.Primitive, OperandType.BranchTarget, StackBehavior.Pop0, StackBehavior.Push0),
  171.     JSR(168, FlowControl.Call, OpCodeType.Primitive, OperandType.BranchTarget, StackBehavior.Pop0, StackBehavior.Push0),
  172.     RET(169, FlowControl.Branch, OpCodeType.Primitive, OperandType.Local, StackBehavior.Pop0, StackBehavior.Push0),
  173.     TABLESWITCH(170, FlowControl.ConditionalBranch, OpCodeType.Primitive, OperandType.Switch, StackBehavior.PopI4, StackBehavior.Push0),
  174.     LOOKUPSWITCH(171, FlowControl.ConditionalBranch, OpCodeType.Primitive, OperandType.Switch, StackBehavior.PopI4, StackBehavior.Push0),
  175.     IRETURN(172, FlowControl.Return, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI4, StackBehavior.Push0),
  176.     LRETURN(173, FlowControl.Return, OpCodeType.Primitive, OperandType.None, StackBehavior.PopI8, StackBehavior.Push0),
  177.     FRETURN(174, FlowControl.Return, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR4, StackBehavior.Push0),
  178.     DRETURN(175, FlowControl.Return, OpCodeType.Primitive, OperandType.None, StackBehavior.PopR8, StackBehavior.Push0),
  179.     ARETURN(176, FlowControl.Return, OpCodeType.Primitive, OperandType.None, StackBehavior.PopA, StackBehavior.Push0),
  180.     RETURN(177, FlowControl.Return, OpCodeType.Primitive, OperandType.None, StackBehavior.Pop0, StackBehavior.Push0),
  181.     GETSTATIC(178, FlowControl.Next, OpCodeType.ObjectModel, OperandType.FieldReference, StackBehavior.Pop0, StackBehavior.Push1),
  182.     PUTSTATIC(179, FlowControl.Next, OpCodeType.ObjectModel, OperandType.FieldReference, StackBehavior.Pop1, StackBehavior.Push0),
  183.     GETFIELD(180, FlowControl.Next, OpCodeType.ObjectModel, OperandType.FieldReference, StackBehavior.PopA, StackBehavior.Push1),
  184.     PUTFIELD(181, FlowControl.Next, OpCodeType.ObjectModel, OperandType.FieldReference, StackBehavior.Pop1_PopA, StackBehavior.Push0),
  185.     INVOKEVIRTUAL(182, FlowControl.Call, OpCodeType.ObjectModel, OperandType.MethodReference, StackBehavior.VarPop, StackBehavior.VarPush),
  186.     INVOKESPECIAL(183, FlowControl.Call, OpCodeType.ObjectModel, OperandType.MethodReference, StackBehavior.VarPop, StackBehavior.VarPush),
  187.     INVOKESTATIC(184, FlowControl.Call, OpCodeType.Primitive, OperandType.MethodReference, StackBehavior.VarPop, StackBehavior.VarPush),
  188.     INVOKEINTERFACE(185, FlowControl.Call, OpCodeType.ObjectModel, OperandType.MethodReference, StackBehavior.VarPop, StackBehavior.VarPush),
  189.     INVOKEDYNAMIC(186, FlowControl.Call, OpCodeType.ObjectModel, OperandType.DynamicCallSite, StackBehavior.Pop0, StackBehavior.VarPush),
  190.     NEW(187, FlowControl.Next, OpCodeType.ObjectModel, OperandType.TypeReference, StackBehavior.Pop0, StackBehavior.PushA),
  191.     NEWARRAY(188, FlowControl.Next, OpCodeType.ObjectModel, OperandType.PrimitiveTypeCode, StackBehavior.PopI4, StackBehavior.PushA),
  192.     ANEWARRAY(189, FlowControl.Next, OpCodeType.ObjectModel, OperandType.TypeReference, StackBehavior.PopI4, StackBehavior.PushA),
  193.     ARRAYLENGTH(190, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopA, StackBehavior.PushI4),
  194.     ATHROW(191, FlowControl.Throw, OpCodeType.ObjectModel, OperandType.None, StackBehavior.VarPop, StackBehavior.Push0),
  195.     CHECKCAST(192, FlowControl.Next, OpCodeType.ObjectModel, OperandType.TypeReference, StackBehavior.PopA, StackBehavior.PushA),
  196.     INSTANCEOF(193, FlowControl.Next, OpCodeType.ObjectModel, OperandType.TypeReference, StackBehavior.PopA, StackBehavior.PushI4),
  197.     MONITORENTER(194, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopA, StackBehavior.Push0),
  198.     MONITOREXIT(195, FlowControl.Next, OpCodeType.ObjectModel, OperandType.None, StackBehavior.PopA, StackBehavior.Push0),
  199.     MULTIANEWARRAY(197, FlowControl.Next, OpCodeType.ObjectModel, OperandType.TypeReferenceU1, StackBehavior.VarPop, StackBehavior.PushA),
  200.     IFNULL(198, FlowControl.ConditionalBranch, OpCodeType.Primitive, OperandType.BranchTarget, StackBehavior.PopA, StackBehavior.Push0),
  201.     IFNONNULL(199, FlowControl.ConditionalBranch, OpCodeType.Primitive, OperandType.BranchTarget, StackBehavior.PopA, StackBehavior.Push0),
  202.     GOTO_W(200, FlowControl.Branch, OpCodeType.Primitive, OperandType.BranchTarget, StackBehavior.Pop0, StackBehavior.Push0),
  203.     JSR_W(201, FlowControl.Branch, OpCodeType.Primitive, OperandType.BranchTarget, StackBehavior.Pop0, StackBehavior.Push0),
  204.     BREAKPOINT(201, FlowControl.Breakpoint, OpCodeType.Primitive, OperandType.None, StackBehavior.Pop0, StackBehavior.Push0),
  205.     ILOAD_W(50197, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.Pop0, StackBehavior.PushI4),
  206.     LLOAD_W(50198, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.Pop0, StackBehavior.PushI8),
  207.     FLOAD_W(50199, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.Pop0, StackBehavior.PushR4),
  208.     DLOAD_W(50200, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.Pop0, StackBehavior.PushR8),
  209.     ALOAD_W(50201, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.Pop0, StackBehavior.PushA),
  210.     ISTORE_W(50230, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.PopI4, StackBehavior.Push0),
  211.     LSTORE_W(50231, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.PopI8, StackBehavior.Push0),
  212.     FSTORE_W(50232, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.PopR4, StackBehavior.Push0),
  213.     DSTORE_W(50233, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.PopR8, StackBehavior.Push0),
  214.     ASTORE_W(50234, FlowControl.Next, OpCodeType.Primitive, OperandType.Local, StackBehavior.PopA, StackBehavior.Push0),
  215.     IINC_W(50308, FlowControl.Next, OpCodeType.Primitive, OperandType.LocalI2, StackBehavior.Pop0, StackBehavior.Push0),
  216.     RET_W(50345, FlowControl.Branch, OpCodeType.Primitive, OperandType.Local, StackBehavior.Pop0, StackBehavior.Push0), ;
  217.  
  218.     private final int _code;
  219.     private final FlowControl _flowControl;
  220.     private final OpCodeType _opCodeType;
  221.     private final OperandType _operandType;
  222.     private final StackBehavior _stackBehaviorPop;
  223.     private final StackBehavior _stackBehaviorPush;
  224.     public static final int STANDARD = 0;
  225.     public static final int WIDE = 196;
  226.     private static final OpCode[] standardOpCodes;
  227.     private static final OpCode[] wideOpCodes;
  228.     private static final byte[] stackChange;
  229.  
  230.     private OpCode(int code, FlowControl flowControl, OpCodeType opCodeType, OperandType operandType, StackBehavior stackBehaviorPop, StackBehavior stackBehaviorPush) {
  231.         this._code = code;
  232.         this._flowControl = flowControl;
  233.         this._opCodeType = opCodeType;
  234.         this._operandType = operandType;
  235.         this._stackBehaviorPop = stackBehaviorPop;
  236.         this._stackBehaviorPush = stackBehaviorPush;
  237.     }
  238.  
  239.     public int getCode() {
  240.         return this._code;
  241.     }
  242.  
  243.     public boolean isWide() {
  244.         return (this._code >> 8 & 196) == 196;
  245.     }
  246.  
  247.     public OperandType getOperandType() {
  248.         return this._operandType;
  249.     }
  250.  
  251.     public FlowControl getFlowControl() {
  252.         return this._flowControl;
  253.     }
  254.  
  255.     public OpCodeType getOpCodeType() {
  256.         return this._opCodeType;
  257.     }
  258.  
  259.     public StackBehavior getStackBehaviorPop() {
  260.         return this._stackBehaviorPop;
  261.     }
  262.  
  263.     public StackBehavior getStackBehaviorPush() {
  264.         return this._stackBehaviorPush;
  265.     }
  266.  
  267.     public boolean hasVariableStackBehavior() {
  268.         return this._stackBehaviorPop == StackBehavior.VarPop || this._stackBehaviorPush == StackBehavior.VarPush;
  269.     }
  270.  
  271.     public boolean isBranch() {
  272.         switch (this._flowControl) {
  273.             case Branch:
  274.             case ConditionalBranch:
  275.             case Return:
  276.             case Throw: {
  277.                 return true;
  278.             }
  279.             default: {
  280.                 return false;
  281.             }
  282.         }
  283.     }
  284.  
  285.     public boolean isUnconditionalBranch() {
  286.         switch (this._flowControl) {
  287.             case Branch:
  288.             case Return:
  289.             case Throw: {
  290.                 return true;
  291.             }
  292.             default: {
  293.                 return false;
  294.             }
  295.         }
  296.     }
  297.  
  298.     public boolean isMoveInstruction() {
  299.         return this.isLoad() || this.isStore();
  300.     }
  301.  
  302.     public boolean isLoad() {
  303.         switch (this) {
  304.             case ILOAD:
  305.             case LLOAD:
  306.             case FLOAD:
  307.             case DLOAD:
  308.             case ALOAD:
  309.             case ILOAD_0:
  310.             case ILOAD_1:
  311.             case ILOAD_2:
  312.             case ILOAD_3:
  313.             case LLOAD_0:
  314.             case LLOAD_1:
  315.             case LLOAD_2:
  316.             case LLOAD_3:
  317.             case FLOAD_0:
  318.             case FLOAD_1:
  319.             case FLOAD_2:
  320.             case FLOAD_3:
  321.             case DLOAD_0:
  322.             case DLOAD_1:
  323.             case DLOAD_2:
  324.             case DLOAD_3:
  325.             case ALOAD_0:
  326.             case ALOAD_1:
  327.             case ALOAD_2:
  328.             case ALOAD_3: {
  329.                 return true;
  330.             }
  331.             case ILOAD_W:
  332.             case LLOAD_W:
  333.             case FLOAD_W:
  334.             case DLOAD_W:
  335.             case ALOAD_W: {
  336.                 return true;
  337.             }
  338.             default: {
  339.                 return false;
  340.             }
  341.         }
  342.     }
  343.  
  344.     public boolean isStore() {
  345.         switch (this) {
  346.             case ISTORE:
  347.             case LSTORE:
  348.             case FSTORE:
  349.             case DSTORE:
  350.             case ASTORE:
  351.             case ISTORE_0:
  352.             case ISTORE_1:
  353.             case ISTORE_2:
  354.             case ISTORE_3:
  355.             case LSTORE_0:
  356.             case LSTORE_1:
  357.             case LSTORE_2:
  358.             case LSTORE_3:
  359.             case FSTORE_0:
  360.             case FSTORE_1:
  361.             case FSTORE_2:
  362.             case FSTORE_3:
  363.             case DSTORE_0:
  364.             case DSTORE_1:
  365.             case DSTORE_2:
  366.             case DSTORE_3:
  367.             case ASTORE_0:
  368.             case ASTORE_1:
  369.             case ASTORE_2:
  370.             case ASTORE_3: {
  371.                 return true;
  372.             }
  373.             case ISTORE_W:
  374.             case LSTORE_W:
  375.             case FSTORE_W:
  376.             case DSTORE_W:
  377.             case ASTORE_W: {
  378.                 return true;
  379.             }
  380.             default: {
  381.                 return false;
  382.             }
  383.         }
  384.     }
  385.  
  386.     public boolean isArrayLoad() {
  387.         switch (this) {
  388.             case IALOAD:
  389.             case LALOAD:
  390.             case FALOAD:
  391.             case DALOAD:
  392.             case AALOAD: {
  393.                 return true;
  394.             }
  395.             default: {
  396.                 return false;
  397.             }
  398.         }
  399.     }
  400.  
  401.     public boolean isArrayStore() {
  402.         switch (this) {
  403.             case IASTORE:
  404.             case LASTORE:
  405.             case FASTORE:
  406.             case DASTORE:
  407.             case AASTORE: {
  408.                 return true;
  409.             }
  410.             default: {
  411.                 return false;
  412.             }
  413.         }
  414.     }
  415.  
  416.     public int getSize() {
  417.         return (this._code >> 8 != 196) ? 1 : 2;
  418.     }
  419.  
  420.     public int getStackChange() {
  421.         return OpCode.stackChange[this._code & 255];
  422.     }
  423.  
  424.     public boolean endsUnconditionalJumpBlock() {
  425.         switch (this) {
  426.             case GOTO:
  427.             case JSR:
  428.             case RET: {
  429.                 return true;
  430.             }
  431.             case IRETURN:
  432.             case LRETURN:
  433.             case FRETURN:
  434.             case DRETURN:
  435.             case ARETURN:
  436.             case RETURN: {
  437.                 return true;
  438.             }
  439.             case ATHROW: {
  440.                 return true;
  441.             }
  442.             case GOTO_W:
  443.             case JSR_W: {
  444.                 return true;
  445.             }
  446.             case RET_W: {
  447.                 return true;
  448.             }
  449.             default: {
  450.                 return false;
  451.             }
  452.         }
  453.     }
  454.  
  455.     public boolean canThrow() {
  456.         if (this._opCodeType == OpCodeType.ObjectModel) {
  457.             return this != OpCode.INSTANCEOF;
  458.         }
  459.         switch (this) {
  460.             case IDIV:
  461.             case LDIV: {
  462.                 return true;
  463.             }
  464.             case IREM:
  465.             case LREM: {
  466.                 return true;
  467.             }
  468.             default: {
  469.                 return false;
  470.             }
  471.         }
  472.     }
  473.  
  474.     public OpCode negate() {
  475.         if (this == OpCode.IFNULL) {
  476.             return OpCode.IFNONNULL;
  477.         }
  478.         if (this == OpCode.IFNONNULL) {
  479.             return OpCode.IFNULL;
  480.         }
  481.         return get((this._code + 1 ^ 1) - 1);
  482.     }
  483.  
  484.     public static OpCode get(int code) {
  485.         return getOpcodeBlock(code >> 8)[code & 255];
  486.     }
  487.  
  488.     private static OpCode[] getOpcodeBlock(int prefix) {
  489.         switch (prefix) {
  490.             case 0: {
  491.                 return OpCode.standardOpCodes;
  492.             }
  493.             case 196: {
  494.                 return OpCode.wideOpCodes;
  495.             }
  496.             default: {
  497.                 return null;
  498.             }
  499.         }
  500.     }
  501.  
  502.     static {
  503.         standardOpCodes = new OpCode[256];
  504.         wideOpCodes = new OpCode[256];
  505.         final OpCode[] arr$ = values();
  506.         for (OpCode o : arr$) {
  507.             getOpcodeBlock(o._code >> 8)[o._code & 255] = o;
  508.         }
  509.         stackChange = new byte[] { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, -1, 0, -1, 0, -1, -1, -1, -1, -1, -2, -1, -2, -1, -1, -1, -1, -1, -2, -2, -2, -2, -1, -1, -1, -1, -2, -2, -2, -2, -1, -1, -1, -1, -3, -4, -3, -4, -3, -3, -3, -3, -1, -2, 1, 1, 1, 2, 2, 2, 0, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, -1, -2, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -2, -1, -2, -1, -2, 0, 1, 0, 1, -1, -1, 0, 0, 1, 1, -1, 0, -1, 0, 0, 0, -3, -1, -1, -3, -3, -1, -1, -1, -1, -1, -1, -2, -2, -2, -2, -2, -2, -2, -2, 0, 1, 0, -1, -1, -1, -2, -1, -2, -1, 0, 1, -1, 1, -1, -1, -1, 0, -1, -1, 1, 0, 0, 0, -1, 0, 0, -1, -1, 0, 1, -1, -1, 0, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  510.     }
  511. }