Allowed types :
Type Name index Content index
S_FIELD [Class] declaring_class [NameAndType] of the field
S_METHOD [Class] declaring_class [NameAndType] of the method
S_INTERFACE_METHOD [Class] declaring_interface [NameAndType] of the method
S_NAME_AND_TYPE [UTF8] name [UTF8] descriptor
where [typeOfConstant] designs a valid index of a ConstantInfo of type typeOfConstant
Allowed types :
Type Class of value
S_STRINGjava.lang.String (the UTF8 ConstantInfo entry will be created)
S_INTEGERjava.lang.Integer
S_LONGjava.lang.Long
S_FLOATjava.lang.Float
S_DOUBLEjava.lang.Double
S_UTF8java.lang.String
S_CLASSjava.lang.String (the UTF8 ConstantInfo entry will be created)
According to the ops (the kind of operands of the opcode)
and to the opcode, the params are the following :
OpcodeOpsParams.lengthDescription
*OPR_none0-
*OPR_byte1Byte
*OPR_short OPR_local_1 OPR_local_2 OPR_offset
OPR_const_C OPR_const_F OPR_const_M
OPR_const_1 OPR_const_1_W OPR_const_2_W1Integer
*OPR_offset_W1Long
OPC_tableswitchOPR_specific3+ndefault=Long,begin=Long,end=Long and n offset=Longs, n=Params[2]-Params[1]
OPC_lookupswitchOPR_specific2+ndefault=Long, nbr=Long and n (pattern=Integer, offset=Long), n =Params[1]
OPC_invokeinterface OPC_multianewarrayOPR_specific2constant_index=Integer, dimension=Byte
OPC_newarrayOPR_specific1Byte, in { T_BOOLEAN, T_CHAR, T_FLOAT, T_DOUBLE,
T_BYTE, T_SHORT, T_INT, T_LONG }
OPC_wideOPR_specific?