|
Java Class Encryption and License Management
Create evaluation versions, host- and user based licenses using the same installation package. FREE evaluation version available. www.jsecurity.net |
#include <bytecodes.hpp>

Public Types | |
| enum | Code { _illegal = -1, _nop = 0, _aconst_null = 1, _iconst_m1 = 2, _iconst_0 = 3, _iconst_1 = 4, _iconst_2 = 5, _iconst_3 = 6, _iconst_4 = 7, _iconst_5 = 8, _lconst_0 = 9, _lconst_1 = 10, _fconst_0 = 11, _fconst_1 = 12, _fconst_2 = 13, _dconst_0 = 14, _dconst_1 = 15, _bipush = 16, _sipush = 17, _ldc = 18, _ldc_w = 19, _ldc2_w = 20, _iload = 21, _lload = 22, _fload = 23, _dload = 24, _aload = 25, _iload_0 = 26, _iload_1 = 27, _iload_2 = 28, _iload_3 = 29, _lload_0 = 30, _lload_1 = 31, _lload_2 = 32, _lload_3 = 33, _fload_0 = 34, _fload_1 = 35, _fload_2 = 36, _fload_3 = 37, _dload_0 = 38, _dload_1 = 39, _dload_2 = 40, _dload_3 = 41, _aload_0 = 42, _aload_1 = 43, _aload_2 = 44, _aload_3 = 45, _iaload = 46, _laload = 47, _faload = 48, _daload = 49, _aaload = 50, _baload = 51, _caload = 52, _saload = 53, _istore = 54, _lstore = 55, _fstore = 56, _dstore = 57, _astore = 58, _istore_0 = 59, _istore_1 = 60, _istore_2 = 61, _istore_3 = 62, _lstore_0 = 63, _lstore_1 = 64, _lstore_2 = 65, _lstore_3 = 66, _fstore_0 = 67, _fstore_1 = 68, _fstore_2 = 69, _fstore_3 = 70, _dstore_0 = 71, _dstore_1 = 72, _dstore_2 = 73, _dstore_3 = 74, _astore_0 = 75, _astore_1 = 76, _astore_2 = 77, _astore_3 = 78, _iastore = 79, _lastore = 80, _fastore = 81, _dastore = 82, _aastore = 83, _bastore = 84, _castore = 85, _sastore = 86, _pop = 87, _pop2 = 88, _dup = 89, _dup_x1 = 90, _dup_x2 = 91, _dup2 = 92, _dup2_x1 = 93, _dup2_x2 = 94, _swap = 95, _iadd = 96, _ladd = 97, _fadd = 98, _dadd = 99, _isub = 100, _lsub = 101, _fsub = 102, _dsub = 103, _imul = 104, _lmul = 105, _fmul = 106, _dmul = 107, _idiv = 108, _ldiv = 109, _fdiv = 110, _ddiv = 111, _irem = 112, _lrem = 113, _frem = 114, _drem = 115, _ineg = 116, _lneg = 117, _fneg = 118, _dneg = 119, _ishl = 120, _lshl = 121, _ishr = 122, _lshr = 123, _iushr = 124, _lushr = 125, _iand = 126, _land = 127, _ior = 128, _lor = 129, _ixor = 130, _lxor = 131, _iinc = 132, _i2l = 133, _i2f = 134, _i2d = 135, _l2i = 136, _l2f = 137, _l2d = 138, _f2i = 139, _f2l = 140, _f2d = 141, _d2i = 142, _d2l = 143, _d2f = 144, _i2b = 145, _i2c = 146, _i2s = 147, _lcmp = 148, _fcmpl = 149, _fcmpg = 150, _dcmpl = 151, _dcmpg = 152, _ifeq = 153, _ifne = 154, _iflt = 155, _ifge = 156, _ifgt = 157, _ifle = 158, _if_icmpeq = 159, _if_icmpne = 160, _if_icmplt = 161, _if_icmpge = 162, _if_icmpgt = 163, _if_icmple = 164, _if_acmpeq = 165, _if_acmpne = 166, _goto = 167, _jsr = 168, _ret = 169, _tableswitch = 170, _lookupswitch = 171, _ireturn = 172, _lreturn = 173, _freturn = 174, _dreturn = 175, _areturn = 176, _return = 177, _getstatic = 178, _putstatic = 179, _getfield = 180, _putfield = 181, _invokevirtual = 182, _invokespecial = 183, _invokestatic = 184, _invokeinterface = 185, _xxxunusedxxx = 186, _new = 187, _newarray = 188, _anewarray = 189, _arraylength = 190, _athrow = 191, _checkcast = 192, _instanceof = 193, _monitorenter = 194, _monitorexit = 195, _wide = 196, _multianewarray = 197, _ifnull = 198, _ifnonnull = 199, _goto_w = 200, _jsr_w = 201, _breakpoint = 202, number_of_java_codes, _fast_agetfield = number_of_java_codes, _fast_bgetfield, _fast_cgetfield, _fast_dgetfield, _fast_fgetfield, _fast_igetfield, _fast_lgetfield, _fast_sgetfield, _fast_aputfield, _fast_bputfield, _fast_cputfield, _fast_dputfield, _fast_fputfield, _fast_iputfield, _fast_lputfield, _fast_sputfield, _fast_aload_0, _fast_iaccess_0, _fast_aaccess_0, _fast_faccess_0, _fast_iload, _fast_iload2, _fast_icaload, _fast_invokevfinal, _fast_linearswitch, _fast_binaryswitch, _return_register_finalizer, _shouldnotreachhere, number_of_codes } |
Static Public Member Functions | |
| static void | check (Code code) |
| static void | wide_check (Code code) |
| static Code | cast (int code) |
| static Code | code_at (address bcp, methodOop method=NULL) |
| static Code | java_code_at (address bcp, methodOop method=NULL) |
| static Code | code_or_bp_at (address bcp) |
| static Code | code_at (methodOop method, int bci) |
| static bool | is_active_breakpoint_at (address bcp) |
| static Code | non_breakpoint_code_at (address bcp, methodOop method=NULL) |
| static bool | is_defined (int code) |
| static bool | wide_is_defined (int code) |
| static const char * | name (Code code) |
| static const char * | format (Code code) |
| static const char * | wide_format (Code code) |
| static BasicType | result_type (Code code) |
| static int | depth (Code code) |
| static int | length_for (Code code) |
| static bool | can_trap (Code code) |
| static Code | java_code (Code code) |
| static bool | can_rewrite (Code code) |
| static int | wide_length_for (Code code) |
| static int | special_length_at (address bcp) |
| static int | raw_special_length_at (address bcp) |
| static int | length_at (address bcp) |
| static int | java_length_at (address bcp) |
| static bool | is_java_code (Code code) |
| static bool | is_aload (Code code) |
| static bool | is_astore (Code code) |
| static bool | is_zero_const (Code code) |
| static void | initialize () |
Static Private Member Functions | |
| static void | def (Code code, const char *name, const char *format, const char *wide_format, BasicType result_type, int depth, bool can_trap) |
| static void | def (Code code, const char *name, const char *format, const char *wide_format, BasicType result_type, int depth, bool can_trap, Code java_code) |
| static void | pd_initialize () |
| static Code | pd_base_code_for (Code code) |
Static Private Attributes | |
| static bool | _is_initialized = false |
| static const char * | _name [number_of_codes] |
| static const char * | _format [number_of_codes] |
| static const char * | _wide_format [number_of_codes] |
| static BasicType | _result_type [number_of_codes] |
| static s_char | _depth [number_of_codes] |
| static u_char | _length [number_of_codes] |
| static bool | _can_trap [number_of_codes] |
| static Code | _java_code [number_of_codes] |
| static bool | _can_rewrite [number_of_codes] |
Definition at line 32 of file bytecodes.hpp.
| enum Bytecodes::Code |
Definition at line 34 of file bytecodes.hpp.
| static bool Bytecodes.can_rewrite | ( | Code | code | ) | [static] |
Definition at line 338 of file bytecodes.hpp.
References _can_rewrite, and check().
Referenced by Bytecode.check_must_rewrite(), and Bytecode.must_rewrite().
| static bool Bytecodes.can_trap | ( | Code | code | ) | [static] |
Definition at line 336 of file bytecodes.hpp.
References _can_trap, and check().
Referenced by ciTypeFlow.can_trap(), and initialize().
| static Code Bytecodes.cast | ( | int | code | ) | [static] |
Definition at line 307 of file bytecodes.hpp.
Referenced by VALUE_OBJ_CLASS_SPEC.bytecode_1(), VALUE_OBJ_CLASS_SPEC.bytecode_2(), code_at(), code_or_bp_at(), initialize(), methodOopDesc.is_vanilla_constructor(), MethodStatistics.print(), and special_length_at().
| static void Bytecodes.check | ( | Code | code | ) | [static] |
Definition at line 305 of file bytecodes.hpp.
References is_defined().
Referenced by can_rewrite(), can_trap(), ciMethod.code_at_put(), depth(), format(), java_code(), name(), result_type(), Bytecode.set_code(), and TemplateTable.template_for().
| Bytecodes::Code Bytecodes::code_at | ( | methodOop | method, | |
| int | bci | |||
| ) | [static] |
| static Code Bytecodes.code_at | ( | address | bcp, | |
| methodOop | method = NULL | |||
| ) | [static] |
Definition at line 311 of file bytecodes.hpp.
References _breakpoint, cast(), and non_breakpoint_code_at().
Referenced by InterpreterRuntime.code(), Bytecode_invoke.code(), Bytecode.code(), code_at(), Deoptimization.create_vframeArray(), java_code_at(), length_at(), special_length_at(), and BytecodePrinter.trace().
| static Code Bytecodes.code_or_bp_at | ( | address | bcp | ) | [static] |
Definition at line 319 of file bytecodes.hpp.
References cast().
Referenced by InterpreterRuntime.is_breakpoint(), RawBytecodeStream.raw_next(), and raw_special_length_at().
| void Bytecodes::def | ( | Code | code, | |
| const char * | name, | |||
| const char * | format, | |||
| const char * | wide_format, | |||
| BasicType | result_type, | |||
| int | depth, | |||
| bool | can_trap, | |||
| Code | java_code | |||
| ) | [static, private] |
Definition at line 114 of file bytecodes.cpp.
References _can_rewrite, _can_trap, _depth, _format, _java_code, _length, _name, _result_type, and _wide_format.
| void Bytecodes::def | ( | Code | code, | |
| const char * | name, | |||
| const char * | format, | |||
| const char * | wide_format, | |||
| BasicType | result_type, | |||
| int | depth, | |||
| bool | can_trap | |||
| ) | [static, private] |
| static int Bytecodes.depth | ( | Code | code | ) | [static] |
Definition at line 334 of file bytecodes.hpp.
References _depth, and check().
Referenced by GraphKit.compute_stack_effects().
| static const char* Bytecodes.format | ( | Code | code | ) | [static] |
| void Bytecodes::initialize | ( | ) | [static] |
Definition at line 149 of file bytecodes.cpp.
References _aaload, _aastore, _aconst_null, _aload, _aload_0, _aload_1, _aload_2, _aload_3, _anewarray, _areturn, _arraylength, _astore, _astore_0, _astore_1, _astore_2, _astore_3, _athrow, _baload, _bastore, _bipush, _breakpoint, _caload, _castore, _checkcast, _d2f, _d2i, _d2l, _dadd, _daload, _dastore, _dcmpg, _dcmpl, _dconst_0, _dconst_1, _ddiv, _dload, _dload_0, _dload_1, _dload_2, _dload_3, _dmul, _dneg, _drem, _dreturn, _dstore, _dstore_0, _dstore_1, _dstore_2, _dstore_3, _dsub, _dup, _dup2, _dup2_x1, _dup2_x2, _dup_x1, _dup_x2, _f2d, _f2i, _f2l, _fadd, _faload, _fast_aaccess_0, _fast_agetfield, _fast_aload_0, _fast_aputfield, _fast_bgetfield, _fast_binaryswitch, _fast_bputfield, _fast_cgetfield, _fast_cputfield, _fast_dgetfield, _fast_dputfield, _fast_faccess_0, _fast_fgetfield, _fast_fputfield, _fast_iaccess_0, _fast_icaload, _fast_igetfield, _fast_iload, _fast_iload2, _fast_invokevfinal, _fast_iputfield, _fast_lgetfield, _fast_linearswitch, _fast_lputfield, _fast_sgetfield, _fast_sputfield, _fastore, _fcmpg, _fcmpl, _fconst_0, _fconst_1, _fconst_2, _fdiv, _fload, _fload_0, _fload_1, _fload_2, _fload_3, _fmul, _fneg, _frem, _freturn, _fstore, _fstore_0, _fstore_1, _fstore_2, _fstore_3, _fsub, _getfield, _getstatic, _goto, _goto_w, _i2b, _i2c, _i2d, _i2f, _i2l, _i2s, _iadd, _iaload, _iand, _iastore, _iconst_0, _iconst_1, _iconst_2, _iconst_3, _iconst_4, _iconst_5, _iconst_m1, _idiv, _if_acmpeq, _if_acmpne, _if_icmpeq, _if_icmpge, _if_icmpgt, _if_icmple, _if_icmplt, _if_icmpne, _ifeq, _ifge, _ifgt, _ifle, _iflt, _ifne, _ifnonnull, _ifnull, _iinc, _iload, _iload_0, _iload_1, _iload_2, _iload_3, _imul, _ineg, _instanceof, _invokeinterface, _invokespecial, _invokestatic, _invokevirtual, _ior, _irem, _ireturn, _is_initialized, _ishl, _ishr, _istore, _istore_0, _istore_1, _istore_2, _istore_3, _isub, _iushr, _ixor, _jsr, _jsr_w, _l2d, _l2f, _l2i, _ladd, _laload, _land, _lastore, _lcmp, _lconst_0, _lconst_1, _ldc, _ldc2_w, _ldc_w, _ldiv, _lload, _lload_0, _lload_1, _lload_2, _lload_3, _lmul, _lneg, _lookupswitch, _lor, _lrem, _lreturn, _lshl, _lshr, _lstore, _lstore_0, _lstore_1, _lstore_2, _lstore_3, _lsub, _lushr, _lxor, _monitorenter, _monitorexit, _multianewarray, _new, _newarray, _nop, _pop, _pop2, _putfield, _putstatic, _ret, _return, _return_register_finalizer, _saload, _sastore, _shouldnotreachhere, _sipush, _swap, _tableswitch, _wide, _xxxunusedxxx, can_trap(), cast(), def(), is_defined(), java_code(), name(), number_of_codes, and pd_initialize().
| static bool Bytecodes.is_active_breakpoint_at | ( | address | bcp | ) | [static] |
Definition at line 322 of file bytecodes.hpp.
References _breakpoint.
Referenced by Bytecode.is_active_breakpoint().
| static bool Bytecodes.is_aload | ( | Code | code | ) | [static] |
| static bool Bytecodes.is_astore | ( | Code | code | ) | [static] |
| static bool Bytecodes.is_defined | ( | int | code | ) | [static] |
Definition at line 328 of file bytecodes.hpp.
References _format, and number_of_codes.
Referenced by check(), CodeEmitInfo.CodeEmitInfo(), initialize(), MethodStatistics.print(), AbstractInterpreterGenerator.set_entry_points(), AbstractInterpreterGenerator.set_entry_points_for_all_bytes(), AbstractInterpreterGenerator.set_safepoints_for_all_bytes(), vframeArrayElement.unpack_on_stack(), wide_is_defined(), and wide_length_for().
| static bool Bytecodes.is_java_code | ( | Code | code | ) | [static] |
Definition at line 350 of file bytecodes.hpp.
References number_of_java_codes.
Referenced by ciBytecodeStream.check_java(), and JvmtiClassFileReconstituter.copy_bytecodes().
| static bool Bytecodes.is_zero_const | ( | Code | code | ) | [static] |
Definition at line 357 of file bytecodes.hpp.
References _aconst_null, _dconst_0, _fconst_0, and _iconst_0.
Referenced by methodOopDesc.is_vanilla_constructor().
Definition at line 337 of file bytecodes.hpp.
References _java_code, and check().
Referenced by Bytecode_invoke.adjusted_invoke_code(), TemplateTable.aload_0(), initialize(), java_code_at(), ciBytecodeStream.next(), ciBytecodeStream.next_bc(), BytecodePrinter.print_attributes(), Bytecode_checkcast.verify(), Bytecode_tableswitch.verify(), Bytecode_lookupswitch.verify(), Bytecode_static.verify(), and ciField.will_link().
| static Code Bytecodes.java_code_at | ( | address | bcp, | |
| methodOop | method = NULL | |||
| ) | [static] |
Definition at line 314 of file bytecodes.hpp.
References code_at(), and java_code().
Referenced by AbstractInterpreter.continuation_for(), methodOopDesc.is_accessor(), ciMethod.java_code_at_bci(), java_length_at(), BytecodeStream.next(), and vframeArrayElement.unpack_on_stack().
| static int Bytecodes.java_length_at | ( | address | bcp | ) | [static] |
Definition at line 349 of file bytecodes.hpp.
References java_code_at(), length_for(), and special_length_at().
| static int Bytecodes.length_at | ( | address | bcp | ) | [static] |
Definition at line 348 of file bytecodes.hpp.
References code_at(), length_for(), and special_length_at().
Referenced by AbstractInterpreter.continuation_for(), ciBytecodeStream.get_dest(), ciBytecodeStream.get_far_dest(), Relocator.instruction_length_at(), BytecodeStream.next(), Bytecode.next_bcp(), ciBytecodeStream.next_get_dest(), VM_RedefineClasses.rewrite_cp_refs_in_method(), and Rewriter.rewrite_method().
| static int Bytecodes.length_for | ( | Code | code | ) | [static] |
Definition at line 335 of file bytecodes.hpp.
References _length.
Referenced by TemplateTable.aload_0(), AbstractInterpreterGenerator.generate_and_dispatch(), Relocator.handle_jump_widen(), TemplateTable.iload(), java_length_at(), length_at(), BytecodeStream.next(), ciBytecodeStream.next(), ciBytecodeStream.next_get_dest(), BytecodePrinter.print_attributes(), RawBytecodeStream.raw_next(), VM_RedefineClasses.rewrite_cp_refs_in_method(), and Rewriter.rewrite_method().
| static const char* Bytecodes.name | ( | Code | code | ) | [static] |
Definition at line 330 of file bytecodes.hpp.
References _name, and check().
Referenced by ciTypeFlow.StateVector.apply_one_bytecode(), Deoptimization.create_vframeArray(), InstructionPrinter.do_Convert(), InstructionPrinter.do_Invoke(), Parse.do_one_bytecode(), SharedRuntime.handle_ic_miss_helper(), initialize(), InstructionPrinter.op_name(), InterpreterCodelet.print(), MethodStatistics.print(), FlatProfiler.print_byte_code_statistics(), ciBlock.print_on(), Parse.repush_if_args(), SharedRuntime.resolve_sub_helper(), VM_RedefineClasses.rewrite_cp_refs_in_method(), AbstractInterpreterGenerator.set_entry_points(), BytecodePrinter.trace(), TemplateTable.unimplemented_bc(), vframeArrayElement.unpack_on_stack(), and ClassVerifier.verify_method().
| Bytecodes::Code Bytecodes::non_breakpoint_code_at | ( | address | bcp, | |
| methodOop | method = NULL | |||
| ) | [static] |
Definition at line 55 of file bytecodes.cpp.
References methodOopDesc.method_from_bcp().
Referenced by code_at().
| Bytecodes::Code Bytecodes::pd_base_code_for | ( | Code | code | ) | [static, private] |
Definition at line 38 of file bytecodes_amd64.cpp.
| void Bytecodes::pd_initialize | ( | ) | [static, private] |
| int Bytecodes::raw_special_length_at | ( | address | bcp | ) | [static] |
Definition at line 98 of file bytecodes.cpp.
References _breakpoint, code_or_bp_at(), and special_length_at().
Referenced by RawBytecodeStream.raw_next_special().
| static BasicType Bytecodes.result_type | ( | Code | code | ) | [static] |
Definition at line 333 of file bytecodes.hpp.
References _result_type, and check().
Referenced by GraphKit.compute_stack_effects(), and AbstractInterpreter.continuation_for().
| int Bytecodes::special_length_at | ( | address | bcp | ) | [static] |
Definition at line 60 of file bytecodes.cpp.
References _fast_binaryswitch, _fast_linearswitch, _lookupswitch, _tableswitch, _wide, cast(), code_at(), Bytes.get_Java_u4(), and wide_length_for().
Referenced by java_length_at(), length_at(), and raw_special_length_at().
| static void Bytecodes.wide_check | ( | Code | code | ) | [static] |
Definition at line 306 of file bytecodes.hpp.
References wide_is_defined().
Referenced by TemplateTable.template_for_wide().
| static const char* Bytecodes.wide_format | ( | Code | code | ) | [static] |
Definition at line 332 of file bytecodes.hpp.
References _wide_format.
Referenced by wide_length_for().
| static bool Bytecodes.wide_is_defined | ( | int | code | ) | [static] |
Definition at line 329 of file bytecodes.hpp.
References _wide_format, and is_defined().
Referenced by AbstractInterpreterGenerator.set_entry_points(), and wide_check().
| static int Bytecodes.wide_length_for | ( | Code | code | ) | [static] |
Definition at line 339 of file bytecodes.hpp.
References is_defined(), and wide_format().
Referenced by AbstractInterpreterGenerator.generate_and_dispatch(), and special_length_at().
bool Bytecodes::_can_rewrite [static, private] |
bool Bytecodes::_can_trap [static, private] |
s_char Bytecodes::_depth [static, private] |
const char * Bytecodes::_format [static, private] |
bool Bytecodes::_is_initialized = false [static, private] |
Bytecodes::Code Bytecodes::_java_code [static, private] |
u_char Bytecodes::_length [static, private] |
const char * Bytecodes::_name [static, private] |
BasicType Bytecodes::_result_type [static, private] |
const char * Bytecodes::_wide_format [static, private] |
Definition at line 290 of file bytecodes.hpp.
Referenced by def(), wide_format(), and wide_is_defined().
