com.ibm.wala.shrikeBT.shrikeCT
Class CTCompiler

java.lang.Object
  extended by com.ibm.wala.shrikeBT.Compiler
      extended by com.ibm.wala.shrikeBT.shrikeCT.CTCompiler
All Implemented Interfaces:
Constants

public final class CTCompiler
extends Compiler

This class lets you compile ShrikeBT intermediate code into real Java bytecodes using ShrikeCT.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.ibm.wala.shrikeBT.Compiler
Compiler.Output
 
Field Summary
 
Fields inherited from interface com.ibm.wala.shrikeBT.Constants
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, CONSTANT_Class, CONSTANT_Double, CONSTANT_FieldRef, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodRef, CONSTANT_Long, CONSTANT_MethodRef, CONSTANT_NameAndType, CONSTANT_String, CONSTANT_Utf8, indexedTypes, indexedTypes_T, MAYBE, NO, OP_aaload, OP_aastore, OP_aconst_null, OP_aload, OP_aload_0, OP_aload_1, OP_aload_2, OP_aload_3, OP_anewarray, OP_areturn, OP_arraylength, OP_astore, OP_astore_0, OP_astore_1, OP_astore_2, OP_astore_3, OP_athrow, OP_baload, OP_bastore, OP_bipush, OP_caload, OP_castore, OP_checkcast, OP_d2f, OP_d2i, OP_d2l, OP_dadd, OP_daload, OP_dastore, OP_dcmpg, OP_dcmpl, OP_dconst_0, OP_dconst_1, OP_ddiv, OP_dload, OP_dload_0, OP_dload_1, OP_dload_2, OP_dload_3, OP_dmul, OP_dneg, OP_drem, OP_dreturn, OP_dstore, OP_dstore_0, OP_dstore_1, OP_dstore_2, OP_dstore_3, OP_dsub, OP_dup, OP_dup_x1, OP_dup_x2, OP_dup2, OP_dup2_x1, OP_dup2_x2, OP_f2d, OP_f2i, OP_f2l, OP_fadd, OP_faload, OP_fastore, OP_fcmpg, OP_fcmpl, OP_fconst_0, OP_fconst_1, OP_fconst_2, OP_fdiv, OP_fload, OP_fload_0, OP_fload_1, OP_fload_2, OP_fload_3, OP_fmul, OP_fneg, OP_frem, OP_freturn, OP_fstore, OP_fstore_0, OP_fstore_1, OP_fstore_2, OP_fstore_3, OP_fsub, OP_getfield, OP_getstatic, OP_goto, OP_goto_w, OP_i2b, OP_i2c, OP_i2d, OP_i2f, OP_i2l, OP_i2s, OP_iadd, OP_iaload, OP_iand, OP_iastore, OP_iconst_0, OP_iconst_1, OP_iconst_2, OP_iconst_3, OP_iconst_4, OP_iconst_5, OP_iconst_m1, OP_idiv, OP_if_acmpeq, OP_if_acmpne, OP_if_icmpeq, OP_if_icmpge, OP_if_icmpgt, OP_if_icmple, OP_if_icmplt, OP_if_icmpne, OP_ifeq, OP_ifge, OP_ifgt, OP_ifle, OP_iflt, OP_ifne, OP_ifnonnull, OP_ifnull, OP_iinc, OP_iload, OP_iload_0, OP_iload_1, OP_iload_2, OP_iload_3, OP_imul, OP_ineg, OP_instanceof, OP_invokeinterface, OP_invokespecial, OP_invokestatic, OP_invokevirtual, OP_ior, OP_irem, OP_ireturn, OP_ishl, OP_ishr, OP_istore, OP_istore_0, OP_istore_1, OP_istore_2, OP_istore_3, OP_isub, OP_iushr, OP_ixor, OP_jsr, OP_jsr_w, OP_l2d, OP_l2f, OP_l2i, OP_ladd, OP_laload, OP_land, OP_lastore, OP_lcmp, OP_lconst_0, OP_lconst_1, OP_ldc, OP_ldc_w, OP_ldc2_w, OP_ldiv, OP_lload, OP_lload_0, OP_lload_1, OP_lload_2, OP_lload_3, OP_lmul, OP_lneg, OP_lookupswitch, OP_lor, OP_lrem, OP_lreturn, OP_lshl, OP_lshr, OP_lstore, OP_lstore_0, OP_lstore_1, OP_lstore_2, OP_lstore_3, OP_lsub, OP_lushr, OP_lxor, OP_monitorenter, OP_monitorexit, OP_multianewarray, OP_new, OP_newarray, OP_nop, OP_pop, OP_pop2, OP_putfield, OP_putstatic, OP_ret, OP_return, OP_saload, OP_sastore, OP_sipush, OP_swap, OP_tableswitch, OP_wide, OP_xxxunusedxxx, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TYPE_boolean, TYPE_boolean_index, TYPE_byte, TYPE_byte_index, TYPE_char, TYPE_char_index, TYPE_Class, TYPE_double, TYPE_double_index, TYPE_Error, TYPE_Exception, TYPE_float, TYPE_float_index, TYPE_int, TYPE_int_index, TYPE_long, TYPE_long_index, TYPE_null, TYPE_Object, TYPE_Object_index, TYPE_RuntimeException, TYPE_short, TYPE_short_index, TYPE_String, TYPE_Throwable, TYPE_unknown, TYPE_void, YES
 
Method Summary
protected  int allocateConstantPoolClassType(java.lang.String c)
           
protected  int allocateConstantPoolDouble(double v)
           
protected  int allocateConstantPoolField(java.lang.String c, java.lang.String name, java.lang.String type)
           
protected  int allocateConstantPoolFloat(float v)
           
protected  int allocateConstantPoolInteger(int v)
           
protected  int allocateConstantPoolInterfaceMethod(java.lang.String c, java.lang.String name, java.lang.String sig)
           
protected  int allocateConstantPoolLong(long v)
           
protected  int allocateConstantPoolMethod(java.lang.String c, java.lang.String name, java.lang.String sig)
           
protected  int allocateConstantPoolString(java.lang.String v)
           
static java.lang.String convertTypeToClass(java.lang.String s)
          Convert a JVM type to the internal JVM class name (e.g., Ljava/lang/Object; to java/lang/Object)
protected  java.lang.String createHelperMethod(boolean isStatic, java.lang.String sig)
           
static CTCompiler make(ClassWriter cw, MethodData md)
           
 
Methods inherited from class com.ibm.wala.shrikeBT.Compiler
compile, getAuxiliaryMethods, getClassType, getOutput, setClassHierarchy, setPresetConstants
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

allocateConstantPoolInteger

protected int allocateConstantPoolInteger(int v)
Specified by:
allocateConstantPoolInteger in class Compiler

allocateConstantPoolFloat

protected int allocateConstantPoolFloat(float v)
Specified by:
allocateConstantPoolFloat in class Compiler

allocateConstantPoolLong

protected int allocateConstantPoolLong(long v)
Specified by:
allocateConstantPoolLong in class Compiler

allocateConstantPoolDouble

protected int allocateConstantPoolDouble(double v)
Specified by:
allocateConstantPoolDouble in class Compiler

allocateConstantPoolString

protected int allocateConstantPoolString(java.lang.String v)
Specified by:
allocateConstantPoolString in class Compiler

allocateConstantPoolClassType

protected int allocateConstantPoolClassType(java.lang.String c)
Specified by:
allocateConstantPoolClassType in class Compiler

convertTypeToClass

public static java.lang.String convertTypeToClass(java.lang.String s)
Convert a JVM type to the internal JVM class name (e.g., Ljava/lang/Object; to java/lang/Object)

Throws:
java.lang.IllegalArgumentException - if s is null

make

public static CTCompiler make(ClassWriter cw,
                              MethodData md)

allocateConstantPoolField

protected int allocateConstantPoolField(java.lang.String c,
                                        java.lang.String name,
                                        java.lang.String type)
Specified by:
allocateConstantPoolField in class Compiler

allocateConstantPoolMethod

protected int allocateConstantPoolMethod(java.lang.String c,
                                         java.lang.String name,
                                         java.lang.String sig)
Specified by:
allocateConstantPoolMethod in class Compiler

allocateConstantPoolInterfaceMethod

protected int allocateConstantPoolInterfaceMethod(java.lang.String c,
                                                  java.lang.String name,
                                                  java.lang.String sig)
Specified by:
allocateConstantPoolInterfaceMethod in class Compiler

createHelperMethod

protected java.lang.String createHelperMethod(boolean isStatic,
                                              java.lang.String sig)
Specified by:
createHelperMethod in class Compiler