classfile_constants.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
  1. /*
  2. * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
  3. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  4. *
  5. *
  6. *
  7. *
  8. *
  9. *
  10. *
  11. *
  12. *
  13. *
  14. *
  15. *
  16. *
  17. *
  18. *
  19. *
  20. *
  21. *
  22. *
  23. *
  24. */
  25. #ifndef CLASSFILE_CONSTANTS_H
  26. #define CLASSFILE_CONSTANTS_H
  27. #ifdef __cplusplus
  28. extern "C" {
  29. #endif
  30. /* Classfile version number for this information */
  31. #define JVM_CLASSFILE_MAJOR_VERSION 52
  32. #define JVM_CLASSFILE_MINOR_VERSION 0
  33. /* Flags */
  34. enum {
  35. JVM_ACC_PUBLIC = 0x0001,
  36. JVM_ACC_PRIVATE = 0x0002,
  37. JVM_ACC_PROTECTED = 0x0004,
  38. JVM_ACC_STATIC = 0x0008,
  39. JVM_ACC_FINAL = 0x0010,
  40. JVM_ACC_SYNCHRONIZED = 0x0020,
  41. JVM_ACC_SUPER = 0x0020,
  42. JVM_ACC_VOLATILE = 0x0040,
  43. JVM_ACC_BRIDGE = 0x0040,
  44. JVM_ACC_TRANSIENT = 0x0080,
  45. JVM_ACC_VARARGS = 0x0080,
  46. JVM_ACC_NATIVE = 0x0100,
  47. JVM_ACC_INTERFACE = 0x0200,
  48. JVM_ACC_ABSTRACT = 0x0400,
  49. JVM_ACC_STRICT = 0x0800,
  50. JVM_ACC_SYNTHETIC = 0x1000,
  51. JVM_ACC_ANNOTATION = 0x2000,
  52. JVM_ACC_ENUM = 0x4000
  53. };
  54. /* Used in newarray instruction. */
  55. enum {
  56. JVM_T_BOOLEAN = 4,
  57. JVM_T_CHAR = 5,
  58. JVM_T_FLOAT = 6,
  59. JVM_T_DOUBLE = 7,
  60. JVM_T_BYTE = 8,
  61. JVM_T_SHORT = 9,
  62. JVM_T_INT = 10,
  63. JVM_T_LONG = 11
  64. };
  65. /* Constant Pool Entries */
  66. enum {
  67. JVM_CONSTANT_Utf8 = 1,
  68. JVM_CONSTANT_Unicode = 2, /* unused */
  69. JVM_CONSTANT_Integer = 3,
  70. JVM_CONSTANT_Float = 4,
  71. JVM_CONSTANT_Long = 5,
  72. JVM_CONSTANT_Double = 6,
  73. JVM_CONSTANT_Class = 7,
  74. JVM_CONSTANT_String = 8,
  75. JVM_CONSTANT_Fieldref = 9,
  76. JVM_CONSTANT_Methodref = 10,
  77. JVM_CONSTANT_InterfaceMethodref = 11,
  78. JVM_CONSTANT_NameAndType = 12,
  79. JVM_CONSTANT_MethodHandle = 15, // JSR 292
  80. JVM_CONSTANT_MethodType = 16, // JSR 292
  81. JVM_CONSTANT_InvokeDynamic = 18
  82. };
  83. /* JVM_CONSTANT_MethodHandle subtypes */
  84. enum {
  85. JVM_REF_getField = 1,
  86. JVM_REF_getStatic = 2,
  87. JVM_REF_putField = 3,
  88. JVM_REF_putStatic = 4,
  89. JVM_REF_invokeVirtual = 5,
  90. JVM_REF_invokeStatic = 6,
  91. JVM_REF_invokeSpecial = 7,
  92. JVM_REF_newInvokeSpecial = 8,
  93. JVM_REF_invokeInterface = 9
  94. };
  95. /* StackMapTable type item numbers */
  96. enum {
  97. JVM_ITEM_Top = 0,
  98. JVM_ITEM_Integer = 1,
  99. JVM_ITEM_Float = 2,
  100. JVM_ITEM_Double = 3,
  101. JVM_ITEM_Long = 4,
  102. JVM_ITEM_Null = 5,
  103. JVM_ITEM_UninitializedThis = 6,
  104. JVM_ITEM_Object = 7,
  105. JVM_ITEM_Uninitialized = 8
  106. };
  107. /* Type signatures */
  108. enum {
  109. JVM_SIGNATURE_ARRAY = '[',
  110. JVM_SIGNATURE_BYTE = 'B',
  111. JVM_SIGNATURE_CHAR = 'C',
  112. JVM_SIGNATURE_CLASS = 'L',
  113. JVM_SIGNATURE_ENDCLASS = ';',
  114. JVM_SIGNATURE_ENUM = 'E',
  115. JVM_SIGNATURE_FLOAT = 'F',
  116. JVM_SIGNATURE_DOUBLE = 'D',
  117. JVM_SIGNATURE_FUNC = '(',
  118. JVM_SIGNATURE_ENDFUNC = ')',
  119. JVM_SIGNATURE_INT = 'I',
  120. JVM_SIGNATURE_LONG = 'J',
  121. JVM_SIGNATURE_SHORT = 'S',
  122. JVM_SIGNATURE_VOID = 'V',
  123. JVM_SIGNATURE_BOOLEAN = 'Z'
  124. };
  125. /* Opcodes */
  126. enum {
  127. JVM_OPC_nop = 0,
  128. JVM_OPC_aconst_null = 1,
  129. JVM_OPC_iconst_m1 = 2,
  130. JVM_OPC_iconst_0 = 3,
  131. JVM_OPC_iconst_1 = 4,
  132. JVM_OPC_iconst_2 = 5,
  133. JVM_OPC_iconst_3 = 6,
  134. JVM_OPC_iconst_4 = 7,
  135. JVM_OPC_iconst_5 = 8,
  136. JVM_OPC_lconst_0 = 9,
  137. JVM_OPC_lconst_1 = 10,
  138. JVM_OPC_fconst_0 = 11,
  139. JVM_OPC_fconst_1 = 12,
  140. JVM_OPC_fconst_2 = 13,
  141. JVM_OPC_dconst_0 = 14,
  142. JVM_OPC_dconst_1 = 15,
  143. JVM_OPC_bipush = 16,
  144. JVM_OPC_sipush = 17,
  145. JVM_OPC_ldc = 18,
  146. JVM_OPC_ldc_w = 19,
  147. JVM_OPC_ldc2_w = 20,
  148. JVM_OPC_iload = 21,
  149. JVM_OPC_lload = 22,
  150. JVM_OPC_fload = 23,
  151. JVM_OPC_dload = 24,
  152. JVM_OPC_aload = 25,
  153. JVM_OPC_iload_0 = 26,
  154. JVM_OPC_iload_1 = 27,
  155. JVM_OPC_iload_2 = 28,
  156. JVM_OPC_iload_3 = 29,
  157. JVM_OPC_lload_0 = 30,
  158. JVM_OPC_lload_1 = 31,
  159. JVM_OPC_lload_2 = 32,
  160. JVM_OPC_lload_3 = 33,
  161. JVM_OPC_fload_0 = 34,
  162. JVM_OPC_fload_1 = 35,
  163. JVM_OPC_fload_2 = 36,
  164. JVM_OPC_fload_3 = 37,
  165. JVM_OPC_dload_0 = 38,
  166. JVM_OPC_dload_1 = 39,
  167. JVM_OPC_dload_2 = 40,
  168. JVM_OPC_dload_3 = 41,
  169. JVM_OPC_aload_0 = 42,
  170. JVM_OPC_aload_1 = 43,
  171. JVM_OPC_aload_2 = 44,
  172. JVM_OPC_aload_3 = 45,
  173. JVM_OPC_iaload = 46,
  174. JVM_OPC_laload = 47,
  175. JVM_OPC_faload = 48,
  176. JVM_OPC_daload = 49,
  177. JVM_OPC_aaload = 50,
  178. JVM_OPC_baload = 51,
  179. JVM_OPC_caload = 52,
  180. JVM_OPC_saload = 53,
  181. JVM_OPC_istore = 54,
  182. JVM_OPC_lstore = 55,
  183. JVM_OPC_fstore = 56,
  184. JVM_OPC_dstore = 57,
  185. JVM_OPC_astore = 58,
  186. JVM_OPC_istore_0 = 59,
  187. JVM_OPC_istore_1 = 60,
  188. JVM_OPC_istore_2 = 61,
  189. JVM_OPC_istore_3 = 62,
  190. JVM_OPC_lstore_0 = 63,
  191. JVM_OPC_lstore_1 = 64,
  192. JVM_OPC_lstore_2 = 65,
  193. JVM_OPC_lstore_3 = 66,
  194. JVM_OPC_fstore_0 = 67,
  195. JVM_OPC_fstore_1 = 68,
  196. JVM_OPC_fstore_2 = 69,
  197. JVM_OPC_fstore_3 = 70,
  198. JVM_OPC_dstore_0 = 71,
  199. JVM_OPC_dstore_1 = 72,
  200. JVM_OPC_dstore_2 = 73,
  201. JVM_OPC_dstore_3 = 74,
  202. JVM_OPC_astore_0 = 75,
  203. JVM_OPC_astore_1 = 76,
  204. JVM_OPC_astore_2 = 77,
  205. JVM_OPC_astore_3 = 78,
  206. JVM_OPC_iastore = 79,
  207. JVM_OPC_lastore = 80,
  208. JVM_OPC_fastore = 81,
  209. JVM_OPC_dastore = 82,
  210. JVM_OPC_aastore = 83,
  211. JVM_OPC_bastore = 84,
  212. JVM_OPC_castore = 85,
  213. JVM_OPC_sastore = 86,
  214. JVM_OPC_pop = 87,
  215. JVM_OPC_pop2 = 88,
  216. JVM_OPC_dup = 89,
  217. JVM_OPC_dup_x1 = 90,
  218. JVM_OPC_dup_x2 = 91,
  219. JVM_OPC_dup2 = 92,
  220. JVM_OPC_dup2_x1 = 93,
  221. JVM_OPC_dup2_x2 = 94,
  222. JVM_OPC_swap = 95,
  223. JVM_OPC_iadd = 96,
  224. JVM_OPC_ladd = 97,
  225. JVM_OPC_fadd = 98,
  226. JVM_OPC_dadd = 99,
  227. JVM_OPC_isub = 100,
  228. JVM_OPC_lsub = 101,
  229. JVM_OPC_fsub = 102,
  230. JVM_OPC_dsub = 103,
  231. JVM_OPC_imul = 104,
  232. JVM_OPC_lmul = 105,
  233. JVM_OPC_fmul = 106,
  234. JVM_OPC_dmul = 107,
  235. JVM_OPC_idiv = 108,
  236. JVM_OPC_ldiv = 109,
  237. JVM_OPC_fdiv = 110,
  238. JVM_OPC_ddiv = 111,
  239. JVM_OPC_irem = 112,
  240. JVM_OPC_lrem = 113,
  241. JVM_OPC_frem = 114,
  242. JVM_OPC_drem = 115,
  243. JVM_OPC_ineg = 116,
  244. JVM_OPC_lneg = 117,
  245. JVM_OPC_fneg = 118,
  246. JVM_OPC_dneg = 119,
  247. JVM_OPC_ishl = 120,
  248. JVM_OPC_lshl = 121,
  249. JVM_OPC_ishr = 122,
  250. JVM_OPC_lshr = 123,
  251. JVM_OPC_iushr = 124,
  252. JVM_OPC_lushr = 125,
  253. JVM_OPC_iand = 126,
  254. JVM_OPC_land = 127,
  255. JVM_OPC_ior = 128,
  256. JVM_OPC_lor = 129,
  257. JVM_OPC_ixor = 130,
  258. JVM_OPC_lxor = 131,
  259. JVM_OPC_iinc = 132,
  260. JVM_OPC_i2l = 133,
  261. JVM_OPC_i2f = 134,
  262. JVM_OPC_i2d = 135,
  263. JVM_OPC_l2i = 136,
  264. JVM_OPC_l2f = 137,
  265. JVM_OPC_l2d = 138,
  266. JVM_OPC_f2i = 139,
  267. JVM_OPC_f2l = 140,
  268. JVM_OPC_f2d = 141,
  269. JVM_OPC_d2i = 142,
  270. JVM_OPC_d2l = 143,
  271. JVM_OPC_d2f = 144,
  272. JVM_OPC_i2b = 145,
  273. JVM_OPC_i2c = 146,
  274. JVM_OPC_i2s = 147,
  275. JVM_OPC_lcmp = 148,
  276. JVM_OPC_fcmpl = 149,
  277. JVM_OPC_fcmpg = 150,
  278. JVM_OPC_dcmpl = 151,
  279. JVM_OPC_dcmpg = 152,
  280. JVM_OPC_ifeq = 153,
  281. JVM_OPC_ifne = 154,
  282. JVM_OPC_iflt = 155,
  283. JVM_OPC_ifge = 156,
  284. JVM_OPC_ifgt = 157,
  285. JVM_OPC_ifle = 158,
  286. JVM_OPC_if_icmpeq = 159,
  287. JVM_OPC_if_icmpne = 160,
  288. JVM_OPC_if_icmplt = 161,
  289. JVM_OPC_if_icmpge = 162,
  290. JVM_OPC_if_icmpgt = 163,
  291. JVM_OPC_if_icmple = 164,
  292. JVM_OPC_if_acmpeq = 165,
  293. JVM_OPC_if_acmpne = 166,
  294. JVM_OPC_goto = 167,
  295. JVM_OPC_jsr = 168,
  296. JVM_OPC_ret = 169,
  297. JVM_OPC_tableswitch = 170,
  298. JVM_OPC_lookupswitch = 171,
  299. JVM_OPC_ireturn = 172,
  300. JVM_OPC_lreturn = 173,
  301. JVM_OPC_freturn = 174,
  302. JVM_OPC_dreturn = 175,
  303. JVM_OPC_areturn = 176,
  304. JVM_OPC_return = 177,
  305. JVM_OPC_getstatic = 178,
  306. JVM_OPC_putstatic = 179,
  307. JVM_OPC_getfield = 180,
  308. JVM_OPC_putfield = 181,
  309. JVM_OPC_invokevirtual = 182,
  310. JVM_OPC_invokespecial = 183,
  311. JVM_OPC_invokestatic = 184,
  312. JVM_OPC_invokeinterface = 185,
  313. JVM_OPC_invokedynamic = 186,
  314. JVM_OPC_new = 187,
  315. JVM_OPC_newarray = 188,
  316. JVM_OPC_anewarray = 189,
  317. JVM_OPC_arraylength = 190,
  318. JVM_OPC_athrow = 191,
  319. JVM_OPC_checkcast = 192,
  320. JVM_OPC_instanceof = 193,
  321. JVM_OPC_monitorenter = 194,
  322. JVM_OPC_monitorexit = 195,
  323. JVM_OPC_wide = 196,
  324. JVM_OPC_multianewarray = 197,
  325. JVM_OPC_ifnull = 198,
  326. JVM_OPC_ifnonnull = 199,
  327. JVM_OPC_goto_w = 200,
  328. JVM_OPC_jsr_w = 201,
  329. JVM_OPC_MAX = 201
  330. };
  331. /* Opcode length initializer, use with something like:
  332. * unsigned char opcode_length[JVM_OPC_MAX+1] = JVM_OPCODE_LENGTH_INITIALIZER;
  333. */
  334. #define JVM_OPCODE_LENGTH_INITIALIZER { \
  335. 1, /* nop */ \
  336. 1, /* aconst_null */ \
  337. 1, /* iconst_m1 */ \
  338. 1, /* iconst_0 */ \
  339. 1, /* iconst_1 */ \
  340. 1, /* iconst_2 */ \
  341. 1, /* iconst_3 */ \
  342. 1, /* iconst_4 */ \
  343. 1, /* iconst_5 */ \
  344. 1, /* lconst_0 */ \
  345. 1, /* lconst_1 */ \
  346. 1, /* fconst_0 */ \
  347. 1, /* fconst_1 */ \
  348. 1, /* fconst_2 */ \
  349. 1, /* dconst_0 */ \
  350. 1, /* dconst_1 */ \
  351. 2, /* bipush */ \
  352. 3, /* sipush */ \
  353. 2, /* ldc */ \
  354. 3, /* ldc_w */ \
  355. 3, /* ldc2_w */ \
  356. 2, /* iload */ \
  357. 2, /* lload */ \
  358. 2, /* fload */ \
  359. 2, /* dload */ \
  360. 2, /* aload */ \
  361. 1, /* iload_0 */ \
  362. 1, /* iload_1 */ \
  363. 1, /* iload_2 */ \
  364. 1, /* iload_3 */ \
  365. 1, /* lload_0 */ \
  366. 1, /* lload_1 */ \
  367. 1, /* lload_2 */ \
  368. 1, /* lload_3 */ \
  369. 1, /* fload_0 */ \
  370. 1, /* fload_1 */ \
  371. 1, /* fload_2 */ \
  372. 1, /* fload_3 */ \
  373. 1, /* dload_0 */ \
  374. 1, /* dload_1 */ \
  375. 1, /* dload_2 */ \
  376. 1, /* dload_3 */ \
  377. 1, /* aload_0 */ \
  378. 1, /* aload_1 */ \
  379. 1, /* aload_2 */ \
  380. 1, /* aload_3 */ \
  381. 1, /* iaload */ \
  382. 1, /* laload */ \
  383. 1, /* faload */ \
  384. 1, /* daload */ \
  385. 1, /* aaload */ \
  386. 1, /* baload */ \
  387. 1, /* caload */ \
  388. 1, /* saload */ \
  389. 2, /* istore */ \
  390. 2, /* lstore */ \
  391. 2, /* fstore */ \
  392. 2, /* dstore */ \
  393. 2, /* astore */ \
  394. 1, /* istore_0 */ \
  395. 1, /* istore_1 */ \
  396. 1, /* istore_2 */ \
  397. 1, /* istore_3 */ \
  398. 1, /* lstore_0 */ \
  399. 1, /* lstore_1 */ \
  400. 1, /* lstore_2 */ \
  401. 1, /* lstore_3 */ \
  402. 1, /* fstore_0 */ \
  403. 1, /* fstore_1 */ \
  404. 1, /* fstore_2 */ \
  405. 1, /* fstore_3 */ \
  406. 1, /* dstore_0 */ \
  407. 1, /* dstore_1 */ \
  408. 1, /* dstore_2 */ \
  409. 1, /* dstore_3 */ \
  410. 1, /* astore_0 */ \
  411. 1, /* astore_1 */ \
  412. 1, /* astore_2 */ \
  413. 1, /* astore_3 */ \
  414. 1, /* iastore */ \
  415. 1, /* lastore */ \
  416. 1, /* fastore */ \
  417. 1, /* dastore */ \
  418. 1, /* aastore */ \
  419. 1, /* bastore */ \
  420. 1, /* castore */ \
  421. 1, /* sastore */ \
  422. 1, /* pop */ \
  423. 1, /* pop2 */ \
  424. 1, /* dup */ \
  425. 1, /* dup_x1 */ \
  426. 1, /* dup_x2 */ \
  427. 1, /* dup2 */ \
  428. 1, /* dup2_x1 */ \
  429. 1, /* dup2_x2 */ \
  430. 1, /* swap */ \
  431. 1, /* iadd */ \
  432. 1, /* ladd */ \
  433. 1, /* fadd */ \
  434. 1, /* dadd */ \
  435. 1, /* isub */ \
  436. 1, /* lsub */ \
  437. 1, /* fsub */ \
  438. 1, /* dsub */ \
  439. 1, /* imul */ \
  440. 1, /* lmul */ \
  441. 1, /* fmul */ \
  442. 1, /* dmul */ \
  443. 1, /* idiv */ \
  444. 1, /* ldiv */ \
  445. 1, /* fdiv */ \
  446. 1, /* ddiv */ \
  447. 1, /* irem */ \
  448. 1, /* lrem */ \
  449. 1, /* frem */ \
  450. 1, /* drem */ \
  451. 1, /* ineg */ \
  452. 1, /* lneg */ \
  453. 1, /* fneg */ \
  454. 1, /* dneg */ \
  455. 1, /* ishl */ \
  456. 1, /* lshl */ \
  457. 1, /* ishr */ \
  458. 1, /* lshr */ \
  459. 1, /* iushr */ \
  460. 1, /* lushr */ \
  461. 1, /* iand */ \
  462. 1, /* land */ \
  463. 1, /* ior */ \
  464. 1, /* lor */ \
  465. 1, /* ixor */ \
  466. 1, /* lxor */ \
  467. 3, /* iinc */ \
  468. 1, /* i2l */ \
  469. 1, /* i2f */ \
  470. 1, /* i2d */ \
  471. 1, /* l2i */ \
  472. 1, /* l2f */ \
  473. 1, /* l2d */ \
  474. 1, /* f2i */ \
  475. 1, /* f2l */ \
  476. 1, /* f2d */ \
  477. 1, /* d2i */ \
  478. 1, /* d2l */ \
  479. 1, /* d2f */ \
  480. 1, /* i2b */ \
  481. 1, /* i2c */ \
  482. 1, /* i2s */ \
  483. 1, /* lcmp */ \
  484. 1, /* fcmpl */ \
  485. 1, /* fcmpg */ \
  486. 1, /* dcmpl */ \
  487. 1, /* dcmpg */ \
  488. 3, /* ifeq */ \
  489. 3, /* ifne */ \
  490. 3, /* iflt */ \
  491. 3, /* ifge */ \
  492. 3, /* ifgt */ \
  493. 3, /* ifle */ \
  494. 3, /* if_icmpeq */ \
  495. 3, /* if_icmpne */ \
  496. 3, /* if_icmplt */ \
  497. 3, /* if_icmpge */ \
  498. 3, /* if_icmpgt */ \
  499. 3, /* if_icmple */ \
  500. 3, /* if_acmpeq */ \
  501. 3, /* if_acmpne */ \
  502. 3, /* goto */ \
  503. 3, /* jsr */ \
  504. 2, /* ret */ \
  505. 99, /* tableswitch */ \
  506. 99, /* lookupswitch */ \
  507. 1, /* ireturn */ \
  508. 1, /* lreturn */ \
  509. 1, /* freturn */ \
  510. 1, /* dreturn */ \
  511. 1, /* areturn */ \
  512. 1, /* return */ \
  513. 3, /* getstatic */ \
  514. 3, /* putstatic */ \
  515. 3, /* getfield */ \
  516. 3, /* putfield */ \
  517. 3, /* invokevirtual */ \
  518. 3, /* invokespecial */ \
  519. 3, /* invokestatic */ \
  520. 5, /* invokeinterface */ \
  521. 5, /* invokedynamic */ \
  522. 3, /* new */ \
  523. 2, /* newarray */ \
  524. 3, /* anewarray */ \
  525. 1, /* arraylength */ \
  526. 1, /* athrow */ \
  527. 3, /* checkcast */ \
  528. 3, /* instanceof */ \
  529. 1, /* monitorenter */ \
  530. 1, /* monitorexit */ \
  531. 0, /* wide */ \
  532. 4, /* multianewarray */ \
  533. 3, /* ifnull */ \
  534. 3, /* ifnonnull */ \
  535. 5, /* goto_w */ \
  536. 5 /* jsr_w */ \
  537. }
  538. #ifdef __cplusplus
  539. } /* extern "C" */
  540. #endif /* __cplusplus */
  541. #endif /* CLASSFILE_CONSTANTS */