00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef CLASSFILE_CONSTANTS_H
00010 #define CLASSFILE_CONSTANTS_H
00011
00012 #ifdef __cplusplus
00013 extern "C" {
00014 #endif
00015
00016
00017
00018 enum {
00019 JVM_ACC_PUBLIC = 0x0001,
00020 JVM_ACC_PRIVATE = 0x0002,
00021 JVM_ACC_PROTECTED = 0x0004,
00022 JVM_ACC_STATIC = 0x0008,
00023 JVM_ACC_FINAL = 0x0010,
00024 JVM_ACC_SYNCHRONIZED = 0x0020,
00025 JVM_ACC_SUPER = 0x0020,
00026 JVM_ACC_VOLATILE = 0x0040,
00027 JVM_ACC_BRIDGE = 0x0040,
00028 JVM_ACC_TRANSIENT = 0x0080,
00029 JVM_ACC_VARARGS = 0x0080,
00030 JVM_ACC_NATIVE = 0x0100,
00031 JVM_ACC_INTERFACE = 0x0200,
00032 JVM_ACC_ABSTRACT = 0x0400,
00033 JVM_ACC_STRICT = 0x0800,
00034 JVM_ACC_SYNTHETIC = 0x1000,
00035 JVM_ACC_ANNOTATION = 0x2000,
00036 JVM_ACC_ENUM = 0x4000
00037 };
00038
00039
00040
00041 enum {
00042 JVM_T_BOOLEAN = 4,
00043 JVM_T_CHAR = 5,
00044 JVM_T_FLOAT = 6,
00045 JVM_T_DOUBLE = 7,
00046 JVM_T_BYTE = 8,
00047 JVM_T_SHORT = 9,
00048 JVM_T_INT = 10,
00049 JVM_T_LONG = 11
00050 };
00051
00052
00053
00054 enum {
00055 JVM_CONSTANT_Utf8 = 1,
00056 JVM_CONSTANT_Unicode = 2,
00057 JVM_CONSTANT_Integer = 3,
00058 JVM_CONSTANT_Float = 4,
00059 JVM_CONSTANT_Long = 5,
00060 JVM_CONSTANT_Double = 6,
00061 JVM_CONSTANT_Class = 7,
00062 JVM_CONSTANT_String = 8,
00063 JVM_CONSTANT_Fieldref = 9,
00064 JVM_CONSTANT_Methodref = 10,
00065 JVM_CONSTANT_InterfaceMethodref = 11,
00066 JVM_CONSTANT_NameAndType = 12
00067 };
00068
00069
00070
00071 enum {
00072 JVM_ITEM_Top = 0,
00073 JVM_ITEM_Integer = 1,
00074 JVM_ITEM_Float = 2,
00075 JVM_ITEM_Double = 3,
00076 JVM_ITEM_Long = 4,
00077 JVM_ITEM_Null = 5,
00078 JVM_ITEM_UninitializedThis = 6,
00079 JVM_ITEM_Object = 7,
00080 JVM_ITEM_Uninitialized = 8
00081 };
00082
00083
00084
00085 enum {
00086 JVM_SIGNATURE_ARRAY = '[',
00087 JVM_SIGNATURE_BYTE = 'B',
00088 JVM_SIGNATURE_CHAR = 'C',
00089 JVM_SIGNATURE_CLASS = 'L',
00090 JVM_SIGNATURE_ENDCLASS = ';',
00091 JVM_SIGNATURE_ENUM = 'E',
00092 JVM_SIGNATURE_FLOAT = 'F',
00093 JVM_SIGNATURE_DOUBLE = 'D',
00094 JVM_SIGNATURE_FUNC = '(',
00095 JVM_SIGNATURE_ENDFUNC = ')',
00096 JVM_SIGNATURE_INT = 'I',
00097 JVM_SIGNATURE_LONG = 'J',
00098 JVM_SIGNATURE_SHORT = 'S',
00099 JVM_SIGNATURE_VOID = 'V',
00100 JVM_SIGNATURE_BOOLEAN = 'Z'
00101 };
00102
00103
00104
00105 enum {
00106 JVM_OPC_nop = 0,
00107 JVM_OPC_aconst_null = 1,
00108 JVM_OPC_iconst_m1 = 2,
00109 JVM_OPC_iconst_0 = 3,
00110 JVM_OPC_iconst_1 = 4,
00111 JVM_OPC_iconst_2 = 5,
00112 JVM_OPC_iconst_3 = 6,
00113 JVM_OPC_iconst_4 = 7,
00114 JVM_OPC_iconst_5 = 8,
00115 JVM_OPC_lconst_0 = 9,
00116 JVM_OPC_lconst_1 = 10,
00117 JVM_OPC_fconst_0 = 11,
00118 JVM_OPC_fconst_1 = 12,
00119 JVM_OPC_fconst_2 = 13,
00120 JVM_OPC_dconst_0 = 14,
00121 JVM_OPC_dconst_1 = 15,
00122 JVM_OPC_bipush = 16,
00123 JVM_OPC_sipush = 17,
00124 JVM_OPC_ldc = 18,
00125 JVM_OPC_ldc_w = 19,
00126 JVM_OPC_ldc2_w = 20,
00127 JVM_OPC_iload = 21,
00128 JVM_OPC_lload = 22,
00129 JVM_OPC_fload = 23,
00130 JVM_OPC_dload = 24,
00131 JVM_OPC_aload = 25,
00132 JVM_OPC_iload_0 = 26,
00133 JVM_OPC_iload_1 = 27,
00134 JVM_OPC_iload_2 = 28,
00135 JVM_OPC_iload_3 = 29,
00136 JVM_OPC_lload_0 = 30,
00137 JVM_OPC_lload_1 = 31,
00138 JVM_OPC_lload_2 = 32,
00139 JVM_OPC_lload_3 = 33,
00140 JVM_OPC_fload_0 = 34,
00141 JVM_OPC_fload_1 = 35,
00142 JVM_OPC_fload_2 = 36,
00143 JVM_OPC_fload_3 = 37,
00144 JVM_OPC_dload_0 = 38,
00145 JVM_OPC_dload_1 = 39,
00146 JVM_OPC_dload_2 = 40,
00147 JVM_OPC_dload_3 = 41,
00148 JVM_OPC_aload_0 = 42,
00149 JVM_OPC_aload_1 = 43,
00150 JVM_OPC_aload_2 = 44,
00151 JVM_OPC_aload_3 = 45,
00152 JVM_OPC_iaload = 46,
00153 JVM_OPC_laload = 47,
00154 JVM_OPC_faload = 48,
00155 JVM_OPC_daload = 49,
00156 JVM_OPC_aaload = 50,
00157 JVM_OPC_baload = 51,
00158 JVM_OPC_caload = 52,
00159 JVM_OPC_saload = 53,
00160 JVM_OPC_istore = 54,
00161 JVM_OPC_lstore = 55,
00162 JVM_OPC_fstore = 56,
00163 JVM_OPC_dstore = 57,
00164 JVM_OPC_astore = 58,
00165 JVM_OPC_istore_0 = 59,
00166 JVM_OPC_istore_1 = 60,
00167 JVM_OPC_istore_2 = 61,
00168 JVM_OPC_istore_3 = 62,
00169 JVM_OPC_lstore_0 = 63,
00170 JVM_OPC_lstore_1 = 64,
00171 JVM_OPC_lstore_2 = 65,
00172 JVM_OPC_lstore_3 = 66,
00173 JVM_OPC_fstore_0 = 67,
00174 JVM_OPC_fstore_1 = 68,
00175 JVM_OPC_fstore_2 = 69,
00176 JVM_OPC_fstore_3 = 70,
00177 JVM_OPC_dstore_0 = 71,
00178 JVM_OPC_dstore_1 = 72,
00179 JVM_OPC_dstore_2 = 73,
00180 JVM_OPC_dstore_3 = 74,
00181 JVM_OPC_astore_0 = 75,
00182 JVM_OPC_astore_1 = 76,
00183 JVM_OPC_astore_2 = 77,
00184 JVM_OPC_astore_3 = 78,
00185 JVM_OPC_iastore = 79,
00186 JVM_OPC_lastore = 80,
00187 JVM_OPC_fastore = 81,
00188 JVM_OPC_dastore = 82,
00189 JVM_OPC_aastore = 83,
00190 JVM_OPC_bastore = 84,
00191 JVM_OPC_castore = 85,
00192 JVM_OPC_sastore = 86,
00193 JVM_OPC_pop = 87,
00194 JVM_OPC_pop2 = 88,
00195 JVM_OPC_dup = 89,
00196 JVM_OPC_dup_x1 = 90,
00197 JVM_OPC_dup_x2 = 91,
00198 JVM_OPC_dup2 = 92,
00199 JVM_OPC_dup2_x1 = 93,
00200 JVM_OPC_dup2_x2 = 94,
00201 JVM_OPC_swap = 95,
00202 JVM_OPC_iadd = 96,
00203 JVM_OPC_ladd = 97,
00204 JVM_OPC_fadd = 98,
00205 JVM_OPC_dadd = 99,
00206 JVM_OPC_isub = 100,
00207 JVM_OPC_lsub = 101,
00208 JVM_OPC_fsub = 102,
00209 JVM_OPC_dsub = 103,
00210 JVM_OPC_imul = 104,
00211 JVM_OPC_lmul = 105,
00212 JVM_OPC_fmul = 106,
00213 JVM_OPC_dmul = 107,
00214 JVM_OPC_idiv = 108,
00215 JVM_OPC_ldiv = 109,
00216 JVM_OPC_fdiv = 110,
00217 JVM_OPC_ddiv = 111,
00218 JVM_OPC_irem = 112,
00219 JVM_OPC_lrem = 113,
00220 JVM_OPC_frem = 114,
00221 JVM_OPC_drem = 115,
00222 JVM_OPC_ineg = 116,
00223 JVM_OPC_lneg = 117,
00224 JVM_OPC_fneg = 118,
00225 JVM_OPC_dneg = 119,
00226 JVM_OPC_ishl = 120,
00227 JVM_OPC_lshl = 121,
00228 JVM_OPC_ishr = 122,
00229 JVM_OPC_lshr = 123,
00230 JVM_OPC_iushr = 124,
00231 JVM_OPC_lushr = 125,
00232 JVM_OPC_iand = 126,
00233 JVM_OPC_land = 127,
00234 JVM_OPC_ior = 128,
00235 JVM_OPC_lor = 129,
00236 JVM_OPC_ixor = 130,
00237 JVM_OPC_lxor = 131,
00238 JVM_OPC_iinc = 132,
00239 JVM_OPC_i2l = 133,
00240 JVM_OPC_i2f = 134,
00241 JVM_OPC_i2d = 135,
00242 JVM_OPC_l2i = 136,
00243 JVM_OPC_l2f = 137,
00244 JVM_OPC_l2d = 138,
00245 JVM_OPC_f2i = 139,
00246 JVM_OPC_f2l = 140,
00247 JVM_OPC_f2d = 141,
00248 JVM_OPC_d2i = 142,
00249 JVM_OPC_d2l = 143,
00250 JVM_OPC_d2f = 144,
00251 JVM_OPC_i2b = 145,
00252 JVM_OPC_i2c = 146,
00253 JVM_OPC_i2s = 147,
00254 JVM_OPC_lcmp = 148,
00255 JVM_OPC_fcmpl = 149,
00256 JVM_OPC_fcmpg = 150,
00257 JVM_OPC_dcmpl = 151,
00258 JVM_OPC_dcmpg = 152,
00259 JVM_OPC_ifeq = 153,
00260 JVM_OPC_ifne = 154,
00261 JVM_OPC_iflt = 155,
00262 JVM_OPC_ifge = 156,
00263 JVM_OPC_ifgt = 157,
00264 JVM_OPC_ifle = 158,
00265 JVM_OPC_if_icmpeq = 159,
00266 JVM_OPC_if_icmpne = 160,
00267 JVM_OPC_if_icmplt = 161,
00268 JVM_OPC_if_icmpge = 162,
00269 JVM_OPC_if_icmpgt = 163,
00270 JVM_OPC_if_icmple = 164,
00271 JVM_OPC_if_acmpeq = 165,
00272 JVM_OPC_if_acmpne = 166,
00273 JVM_OPC_goto = 167,
00274 JVM_OPC_jsr = 168,
00275 JVM_OPC_ret = 169,
00276 JVM_OPC_tableswitch = 170,
00277 JVM_OPC_lookupswitch = 171,
00278 JVM_OPC_ireturn = 172,
00279 JVM_OPC_lreturn = 173,
00280 JVM_OPC_freturn = 174,
00281 JVM_OPC_dreturn = 175,
00282 JVM_OPC_areturn = 176,
00283 JVM_OPC_return = 177,
00284 JVM_OPC_getstatic = 178,
00285 JVM_OPC_putstatic = 179,
00286 JVM_OPC_getfield = 180,
00287 JVM_OPC_putfield = 181,
00288 JVM_OPC_invokevirtual = 182,
00289 JVM_OPC_invokespecial = 183,
00290 JVM_OPC_invokestatic = 184,
00291 JVM_OPC_invokeinterface = 185,
00292 JVM_OPC_xxxunusedxxx = 186,
00293 JVM_OPC_new = 187,
00294 JVM_OPC_newarray = 188,
00295 JVM_OPC_anewarray = 189,
00296 JVM_OPC_arraylength = 190,
00297 JVM_OPC_athrow = 191,
00298 JVM_OPC_checkcast = 192,
00299 JVM_OPC_instanceof = 193,
00300 JVM_OPC_monitorenter = 194,
00301 JVM_OPC_monitorexit = 195,
00302 JVM_OPC_wide = 196,
00303 JVM_OPC_multianewarray = 197,
00304 JVM_OPC_ifnull = 198,
00305 JVM_OPC_ifnonnull = 199,
00306 JVM_OPC_goto_w = 200,
00307 JVM_OPC_jsr_w = 201,
00308 JVM_OPC_MAX = 201
00309 };
00310
00311
00312
00313
00314 #define JVM_OPCODE_LENGTH_INITIALIZER { \
00315 1, \
00316 1, \
00317 1, \
00318 1, \
00319 1, \
00320 1, \
00321 1, \
00322 1, \
00323 1, \
00324 1, \
00325 1, \
00326 1, \
00327 1, \
00328 1, \
00329 1, \
00330 1, \
00331 2, \
00332 3, \
00333 2, \
00334 3, \
00335 3, \
00336 2, \
00337 2, \
00338 2, \
00339 2, \
00340 2, \
00341 1, \
00342 1, \
00343 1, \
00344 1, \
00345 1, \
00346 1, \
00347 1, \
00348 1, \
00349 1, \
00350 1, \
00351 1, \
00352 1, \
00353 1, \
00354 1, \
00355 1, \
00356 1, \
00357 1, \
00358 1, \
00359 1, \
00360 1, \
00361 1, \
00362 1, \
00363 1, \
00364 1, \
00365 1, \
00366 1, \
00367 1, \
00368 1, \
00369 2, \
00370 2, \
00371 2, \
00372 2, \
00373 2, \
00374 1, \
00375 1, \
00376 1, \
00377 1, \
00378 1, \
00379 1, \
00380 1, \
00381 1, \
00382 1, \
00383 1, \
00384 1, \
00385 1, \
00386 1, \
00387 1, \
00388 1, \
00389 1, \
00390 1, \
00391 1, \
00392 1, \
00393 1, \
00394 1, \
00395 1, \
00396 1, \
00397 1, \
00398 1, \
00399 1, \
00400 1, \
00401 1, \
00402 1, \
00403 1, \
00404 1, \
00405 1, \
00406 1, \
00407 1, \
00408 1, \
00409 1, \
00410 1, \
00411 1, \
00412 1, \
00413 1, \
00414 1, \
00415 1, \
00416 1, \
00417 1, \
00418 1, \
00419 1, \
00420 1, \
00421 1, \
00422 1, \
00423 1, \
00424 1, \
00425 1, \
00426 1, \
00427 1, \
00428 1, \
00429 1, \
00430 1, \
00431 1, \
00432 1, \
00433 1, \
00434 1, \
00435 1, \
00436 1, \
00437 1, \
00438 1, \
00439 1, \
00440 1, \
00441 1, \
00442 1, \
00443 1, \
00444 1, \
00445 1, \
00446 1, \
00447 3, \
00448 1, \
00449 1, \
00450 1, \
00451 1, \
00452 1, \
00453 1, \
00454 1, \
00455 1, \
00456 1, \
00457 1, \
00458 1, \
00459 1, \
00460 1, \
00461 1, \
00462 1, \
00463 1, \
00464 1, \
00465 1, \
00466 1, \
00467 1, \
00468 3, \
00469 3, \
00470 3, \
00471 3, \
00472 3, \
00473 3, \
00474 3, \
00475 3, \
00476 3, \
00477 3, \
00478 3, \
00479 3, \
00480 3, \
00481 3, \
00482 3, \
00483 3, \
00484 2, \
00485 99, \
00486 99, \
00487 1, \
00488 1, \
00489 1, \
00490 1, \
00491 1, \
00492 1, \
00493 3, \
00494 3, \
00495 3, \
00496 3, \
00497 3, \
00498 3, \
00499 3, \
00500 5, \
00501 0, \
00502 3, \
00503 2, \
00504 3, \
00505 1, \
00506 1, \
00507 3, \
00508 3, \
00509 1, \
00510 1, \
00511 0, \
00512 4, \
00513 3, \
00514 3, \
00515 5, \
00516 5 \
00517 }
00518
00519 #ifdef __cplusplus
00520 }
00521 #endif
00522
00523 #endif