|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448 |
- /*
- * Javassist, a Java-bytecode translator toolkit.
- * Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. Alternatively, the contents of this file may be used under
- * the terms of the GNU Lesser General Public License Version 2.1 or later,
- * or the Apache License Version 2.0.
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- */
-
- package javassist.bytecode;
-
- /**
- * JVM Instruction Set.
- *
- * <p>This interface defines opcodes and
- * array types for the NEWARRAY instruction.
- *
- * @see Mnemonic
- */
- public interface Opcode {
- /* Opcodes */
-
- int AALOAD = 50;
- int AASTORE = 83;
- int ACONST_NULL = 1;
- int ALOAD = 25;
- int ALOAD_0 = 42;
- int ALOAD_1 = 43;
- int ALOAD_2 = 44;
- int ALOAD_3 = 45;
- int ANEWARRAY = 189;
- int ARETURN = 176;
- int ARRAYLENGTH = 190;
- int ASTORE = 58;
- int ASTORE_0 = 75;
- int ASTORE_1 = 76;
- int ASTORE_2 = 77;
- int ASTORE_3 = 78;
- int ATHROW = 191;
- int BALOAD = 51;
- int BASTORE = 84;
- int BIPUSH = 16;
- int CALOAD = 52;
- int CASTORE = 85;
- int CHECKCAST = 192;
- int D2F = 144;
- int D2I = 142;
- int D2L = 143;
- int DADD = 99;
- int DALOAD = 49;
- int DASTORE = 82;
- int DCMPG = 152;
- int DCMPL = 151;
- int DCONST_0 = 14;
- int DCONST_1 = 15;
- int DDIV = 111;
- int DLOAD = 24;
- int DLOAD_0 = 38;
- int DLOAD_1 = 39;
- int DLOAD_2 = 40;
- int DLOAD_3 = 41;
- int DMUL = 107;
- int DNEG = 119;
- int DREM = 115;
- int DRETURN = 175;
- int DSTORE = 57;
- int DSTORE_0 = 71;
- int DSTORE_1 = 72;
- int DSTORE_2 = 73;
- int DSTORE_3 = 74;
- int DSUB = 103;
- int DUP = 89;
- int DUP2 = 92;
- int DUP2_X1 = 93;
- int DUP2_X2 = 94;
- int DUP_X1 = 90;
- int DUP_X2 = 91;
- int F2D = 141;
- int F2I = 139;
- int F2L = 140;
- int FADD = 98;
- int FALOAD = 48;
- int FASTORE = 81;
- int FCMPG = 150;
- int FCMPL = 149;
- int FCONST_0 = 11;
- int FCONST_1 = 12;
- int FCONST_2 = 13;
- int FDIV = 110;
- int FLOAD = 23;
- int FLOAD_0 = 34;
- int FLOAD_1 = 35;
- int FLOAD_2 = 36;
- int FLOAD_3 = 37;
- int FMUL = 106;
- int FNEG = 118;
- int FREM = 114;
- int FRETURN = 174;
- int FSTORE = 56;
- int FSTORE_0 = 67;
- int FSTORE_1 = 68;
- int FSTORE_2 = 69;
- int FSTORE_3 = 70;
- int FSUB = 102;
- int GETFIELD = 180;
- int GETSTATIC = 178;
- int GOTO = 167;
- int GOTO_W = 200;
- int I2B = 145;
- int I2C = 146;
- int I2D = 135;
- int I2F = 134;
- int I2L = 133;
- int I2S = 147;
- int IADD = 96;
- int IALOAD = 46;
- int IAND = 126;
- int IASTORE = 79;
- int ICONST_0 = 3;
- int ICONST_1 = 4;
- int ICONST_2 = 5;
- int ICONST_3 = 6;
- int ICONST_4 = 7;
- int ICONST_5 = 8;
- int ICONST_M1 = 2;
- int IDIV = 108;
- int IFEQ = 153;
- int IFGE = 156;
- int IFGT = 157;
- int IFLE = 158;
- int IFLT = 155;
- int IFNE = 154;
- int IFNONNULL = 199;
- int IFNULL = 198;
- int IF_ACMPEQ = 165;
- int IF_ACMPNE = 166;
- int IF_ICMPEQ = 159;
- int IF_ICMPGE = 162;
- int IF_ICMPGT = 163;
- int IF_ICMPLE = 164;
- int IF_ICMPLT = 161;
- int IF_ICMPNE = 160;
- int IINC = 132;
- int ILOAD = 21;
- int ILOAD_0 = 26;
- int ILOAD_1 = 27;
- int ILOAD_2 = 28;
- int ILOAD_3 = 29;
- int IMUL = 104;
- int INEG = 116;
- int INSTANCEOF = 193;
- int INVOKEINTERFACE = 185;
- int INVOKESPECIAL = 183;
- int INVOKESTATIC = 184;
- int INVOKEVIRTUAL = 182;
- int IOR = 128;
- int IREM = 112;
- int IRETURN = 172;
- int ISHL = 120;
- int ISHR = 122;
- int ISTORE = 54;
- int ISTORE_0 = 59;
- int ISTORE_1 = 60;
- int ISTORE_2 = 61;
- int ISTORE_3 = 62;
- int ISUB = 100;
- int IUSHR = 124;
- int IXOR = 130;
- int JSR = 168;
- int JSR_W = 201;
- int L2D = 138;
- int L2F = 137;
- int L2I = 136;
- int LADD = 97;
- int LALOAD = 47;
- int LAND = 127;
- int LASTORE = 80;
- int LCMP = 148;
- int LCONST_0 = 9;
- int LCONST_1 = 10;
- int LDC = 18;
- int LDC2_W = 20;
- int LDC_W = 19;
- int LDIV = 109;
- int LLOAD = 22;
- int LLOAD_0 = 30;
- int LLOAD_1 = 31;
- int LLOAD_2 = 32;
- int LLOAD_3 = 33;
- int LMUL = 105;
- int LNEG = 117;
- int LOOKUPSWITCH = 171;
- int LOR = 129;
- int LREM = 113;
- int LRETURN = 173;
- int LSHL = 121;
- int LSHR = 123;
- int LSTORE = 55;
- int LSTORE_0 = 63;
- int LSTORE_1 = 64;
- int LSTORE_2 = 65;
- int LSTORE_3 = 66;
- int LSUB = 101;
- int LUSHR = 125;
- int LXOR = 131;
- int MONITORENTER = 194;
- int MONITOREXIT = 195;
- int MULTIANEWARRAY = 197;
- int NEW = 187;
- int NEWARRAY = 188;
- int NOP = 0;
- int POP = 87;
- int POP2 = 88;
- int PUTFIELD = 181;
- int PUTSTATIC = 179;
- int RET = 169;
- int RETURN = 177;
- int SALOAD = 53;
- int SASTORE = 86;
- int SIPUSH = 17;
- int SWAP = 95;
- int TABLESWITCH = 170;
- int WIDE = 196;
-
- /* array-type code for the newarray instruction */
-
- int T_BOOLEAN = 4;
- int T_CHAR = 5;
- int T_FLOAT = 6;
- int T_DOUBLE = 7;
- int T_BYTE = 8;
- int T_SHORT = 9;
- int T_INT = 10;
- int T_LONG = 11;
-
- /* how many values are pushed on the operand stack. */
- int[] STACK_GROW = {
- 0, // nop, 0
- 1, // aconst_null, 1
- 1, // iconst_m1, 2
- 1, // iconst_0, 3
- 1, // iconst_1, 4
- 1, // iconst_2, 5
- 1, // iconst_3, 6
- 1, // iconst_4, 7
- 1, // iconst_5, 8
- 2, // lconst_0, 9
- 2, // lconst_1, 10
- 1, // fconst_0, 11
- 1, // fconst_1, 12
- 1, // fconst_2, 13
- 2, // dconst_0, 14
- 2, // dconst_1, 15
- 1, // bipush, 16
- 1, // sipush, 17
- 1, // ldc, 18
- 1, // ldc_w, 19
- 2, // ldc2_w, 20
- 1, // iload, 21
- 2, // lload, 22
- 1, // fload, 23
- 2, // dload, 24
- 1, // aload, 25
- 1, // iload_0, 26
- 1, // iload_1, 27
- 1, // iload_2, 28
- 1, // iload_3, 29
- 2, // lload_0, 30
- 2, // lload_1, 31
- 2, // lload_2, 32
- 2, // lload_3, 33
- 1, // fload_0, 34
- 1, // fload_1, 35
- 1, // fload_2, 36
- 1, // fload_3, 37
- 2, // dload_0, 38
- 2, // dload_1, 39
- 2, // dload_2, 40
- 2, // dload_3, 41
- 1, // aload_0, 42
- 1, // aload_1, 43
- 1, // aload_2, 44
- 1, // aload_3, 45
- -1, // iaload, 46
- 0, // laload, 47
- -1, // faload, 48
- 0, // daload, 49
- -1, // aaload, 50
- -1, // baload, 51
- -1, // caload, 52
- -1, // saload, 53
- -1, // istore, 54
- -2, // lstore, 55
- -1, // fstore, 56
- -2, // dstore, 57
- -1, // astore, 58
- -1, // istore_0, 59
- -1, // istore_1, 60
- -1, // istore_2, 61
- -1, // istore_3, 62
- -2, // lstore_0, 63
- -2, // lstore_1, 64
- -2, // lstore_2, 65
- -2, // lstore_3, 66
- -1, // fstore_0, 67
- -1, // fstore_1, 68
- -1, // fstore_2, 69
- -1, // fstore_3, 70
- -2, // dstore_0, 71
- -2, // dstore_1, 72
- -2, // dstore_2, 73
- -2, // dstore_3, 74
- -1, // astore_0, 75
- -1, // astore_1, 76
- -1, // astore_2, 77
- -1, // astore_3, 78
- -3, // iastore, 79
- -4, // lastore, 80
- -3, // fastore, 81
- -4, // dastore, 82
- -3, // aastore, 83
- -3, // bastore, 84
- -3, // castore, 85
- -3, // sastore, 86
- -1, // pop, 87
- -2, // pop2, 88
- 1, // dup, 89
- 1, // dup_x1, 90
- 1, // dup_x2, 91
- 2, // dup2, 92
- 2, // dup2_x1, 93
- 2, // dup2_x2, 94
- 0, // swap, 95
- -1, // iadd, 96
- -2, // ladd, 97
- -1, // fadd, 98
- -2, // dadd, 99
- -1, // isub, 100
- -2, // lsub, 101
- -1, // fsub, 102
- -2, // dsub, 103
- -1, // imul, 104
- -2, // lmul, 105
- -1, // fmul, 106
- -2, // dmul, 107
- -1, // idiv, 108
- -2, // ldiv, 109
- -1, // fdiv, 110
- -2, // ddiv, 111
- -1, // irem, 112
- -2, // lrem, 113
- -1, // frem, 114
- -2, // drem, 115
- 0, // ineg, 116
- 0, // lneg, 117
- 0, // fneg, 118
- 0, // dneg, 119
- -1, // ishl, 120
- -1, // lshl, 121
- -1, // ishr, 122
- -1, // lshr, 123
- -1, // iushr, 124
- -1, // lushr, 125
- -1, // iand, 126
- -2, // land, 127
- -1, // ior, 128
- -2, // lor, 129
- -1, // ixor, 130
- -2, // lxor, 131
- 0, // iinc, 132
- 1, // i2l, 133
- 0, // i2f, 134
- 1, // i2d, 135
- -1, // l2i, 136
- -1, // l2f, 137
- 0, // l2d, 138
- 0, // f2i, 139
- 1, // f2l, 140
- 1, // f2d, 141
- -1, // d2i, 142
- 0, // d2l, 143
- -1, // d2f, 144
- 0, // i2b, 145
- 0, // i2c, 146
- 0, // i2s, 147
- -3, // lcmp, 148
- -1, // fcmpl, 149
- -1, // fcmpg, 150
- -3, // dcmpl, 151
- -3, // dcmpg, 152
- -1, // ifeq, 153
- -1, // ifne, 154
- -1, // iflt, 155
- -1, // ifge, 156
- -1, // ifgt, 157
- -1, // ifle, 158
- -2, // if_icmpeq, 159
- -2, // if_icmpne, 160
- -2, // if_icmplt, 161
- -2, // if_icmpge, 162
- -2, // if_icmpgt, 163
- -2, // if_icmple, 164
- -2, // if_acmpeq, 165
- -2, // if_acmpne, 166
- 0, // goto, 167
- 1, // jsr, 168
- 0, // ret, 169
- -1, // tableswitch, 170
- -1, // lookupswitch, 171
- -1, // ireturn, 172
- -2, // lreturn, 173
- -1, // freturn, 174
- -2, // dreturn, 175
- -1, // areturn, 176
- 0, // return, 177
- 0, // getstatic, 178 depends on the type
- 0, // putstatic, 179 depends on the type
- 0, // getfield, 180 depends on the type
- 0, // putfield, 181 depends on the type
- 0, // invokevirtual, 182 depends on the type
- 0, // invokespecial, 183 depends on the type
- 0, // invokestatic, 184 depends on the type
- 0, // invokeinterface, 185 depends on the type
- 0, // undefined, 186
- 1, // new, 187
- 0, // newarray, 188
- 0, // anewarray, 189
- 0, // arraylength, 190
- -1, // athrow, 191 stack is cleared
- 0, // checkcast, 192
- 0, // instanceof, 193
- -1, // monitorenter, 194
- -1, // monitorexit, 195
- 0, // wide, 196 depends on the following opcode
- 0, // multianewarray, 197 depends on the dimensions
- -1, // ifnull, 198
- -1, // ifnonnull, 199
- 0, // goto_w, 200
- 1 // jsr_w, 201
- };
- }
|