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

Bytecodes Class Reference

#include <bytecodes.hpp>

Inheritance diagram for Bytecodes:

AllStatic

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]

Detailed Description

Definition at line 32 of file bytecodes.hpp.


Member Enumeration Documentation

Enumerator:
_illegal 
_nop 
_aconst_null 
_iconst_m1 
_iconst_0 
_iconst_1 
_iconst_2 
_iconst_3 
_iconst_4 
_iconst_5 
_lconst_0 
_lconst_1 
_fconst_0 
_fconst_1 
_fconst_2 
_dconst_0 
_dconst_1 
_bipush 
_sipush 
_ldc 
_ldc_w 
_ldc2_w 
_iload 
_lload 
_fload 
_dload 
_aload 
_iload_0 
_iload_1 
_iload_2 
_iload_3 
_lload_0 
_lload_1 
_lload_2 
_lload_3 
_fload_0 
_fload_1 
_fload_2 
_fload_3 
_dload_0 
_dload_1 
_dload_2 
_dload_3 
_aload_0 
_aload_1 
_aload_2 
_aload_3 
_iaload 
_laload 
_faload 
_daload 
_aaload 
_baload 
_caload 
_saload 
_istore 
_lstore 
_fstore 
_dstore 
_astore 
_istore_0 
_istore_1 
_istore_2 
_istore_3 
_lstore_0 
_lstore_1 
_lstore_2 
_lstore_3 
_fstore_0 
_fstore_1 
_fstore_2 
_fstore_3 
_dstore_0 
_dstore_1 
_dstore_2 
_dstore_3 
_astore_0 
_astore_1 
_astore_2 
_astore_3 
_iastore 
_lastore 
_fastore 
_dastore 
_aastore 
_bastore 
_castore 
_sastore 
_pop 
_pop2 
_dup 
_dup_x1 
_dup_x2 
_dup2 
_dup2_x1 
_dup2_x2 
_swap 
_iadd 
_ladd 
_fadd 
_dadd 
_isub 
_lsub 
_fsub 
_dsub 
_imul 
_lmul 
_fmul 
_dmul 
_idiv 
_ldiv 
_fdiv 
_ddiv 
_irem 
_lrem 
_frem 
_drem 
_ineg 
_lneg 
_fneg 
_dneg 
_ishl 
_lshl 
_ishr 
_lshr 
_iushr 
_lushr 
_iand 
_land 
_ior 
_lor 
_ixor 
_lxor 
_iinc 
_i2l 
_i2f 
_i2d 
_l2i 
_l2f 
_l2d 
_f2i 
_f2l 
_f2d 
_d2i 
_d2l 
_d2f 
_i2b 
_i2c 
_i2s 
_lcmp 
_fcmpl 
_fcmpg 
_dcmpl 
_dcmpg 
_ifeq 
_ifne 
_iflt 
_ifge 
_ifgt 
_ifle 
_if_icmpeq 
_if_icmpne 
_if_icmplt 
_if_icmpge 
_if_icmpgt 
_if_icmple 
_if_acmpeq 
_if_acmpne 
_goto 
_jsr 
_ret 
_tableswitch 
_lookupswitch 
_ireturn 
_lreturn 
_freturn 
_dreturn 
_areturn 
_return 
_getstatic 
_putstatic 
_getfield 
_putfield 
_invokevirtual 
_invokespecial 
_invokestatic 
_invokeinterface 
_xxxunusedxxx 
_new 
_newarray 
_anewarray 
_arraylength 
_athrow 
_checkcast 
_instanceof 
_monitorenter 
_monitorexit 
_wide 
_multianewarray 
_ifnull 
_ifnonnull 
_goto_w 
_jsr_w 
_breakpoint 
number_of_java_codes 
_fast_agetfield 
_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 

Definition at line 34 of file bytecodes.hpp.


Member Function Documentation

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]

static void Bytecodes.check ( Code  code  )  [static]

Bytecodes::Code Bytecodes::code_at ( methodOop  method,
int  bci 
) [static]

Definition at line 51 of file bytecodes.cpp.

References code_at().

static Code Bytecodes.code_at ( address  bcp,
methodOop  method = NULL 
) [static]

static Code Bytecodes.code_or_bp_at ( address  bcp  )  [static]

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]

Definition at line 109 of file bytecodes.cpp.

Referenced by initialize().

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]

Definition at line 331 of file bytecodes.hpp.

References _format, and check().

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]

Definition at line 352 of file bytecodes.hpp.

References _aload, _aload_0, _aload_1, _aload_2, and _aload_3.

static bool Bytecodes.is_astore ( Code  code  )  [static]

Definition at line 354 of file bytecodes.hpp.

References _astore, _astore_0, _astore_1, _astore_2, and _astore_3.

static bool Bytecodes.is_defined ( int  code  )  [static]

static bool Bytecodes.is_java_code ( Code  code  )  [static]

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().

static Code Bytecodes.java_code ( Code  code  )  [static]

static Code Bytecodes.java_code_at ( address  bcp,
methodOop  method = NULL 
) [static]

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]

static int Bytecodes.length_for ( Code  code  )  [static]

static const char* Bytecodes.name ( Code  code  )  [static]

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]

Definition at line 32 of file bytecodes_amd64.cpp.

Referenced by initialize().

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]

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]


Field Documentation

bool Bytecodes::_can_rewrite [static, private]

Definition at line 296 of file bytecodes.hpp.

Referenced by can_rewrite(), and def().

bool Bytecodes::_can_trap [static, private]

Definition at line 294 of file bytecodes.hpp.

Referenced by can_trap(), and def().

s_char Bytecodes::_depth [static, private]

Definition at line 292 of file bytecodes.hpp.

Referenced by def(), and depth().

const char * Bytecodes::_format [static, private]

Definition at line 289 of file bytecodes.hpp.

Referenced by def(), format(), and is_defined().

bool Bytecodes::_is_initialized = false [static, private]

Definition at line 287 of file bytecodes.hpp.

Referenced by initialize().

Definition at line 295 of file bytecodes.hpp.

Referenced by def(), and java_code().

u_char Bytecodes::_length [static, private]

Definition at line 293 of file bytecodes.hpp.

Referenced by def(), and length_for().

const char * Bytecodes::_name [static, private]

Definition at line 288 of file bytecodes.hpp.

Referenced by def(), and name().

BasicType Bytecodes::_result_type [static, private]

Definition at line 291 of file bytecodes.hpp.

Referenced by def(), and result_type().

const char * Bytecodes::_wide_format [static, private]

Definition at line 290 of file bytecodes.hpp.

Referenced by def(), wide_format(), and wide_is_defined().


The documentation for this class was generated from the following files:

Powered by jsecurity.net
Generated by doxygen 1.5.7.1