Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Compil3r.Reference.x86
Class x86ReferenceCompiler  view x86ReferenceCompiler download x86ReferenceCompiler.java

java.lang.Object
  extended byCompil3r.BytecodeAnalysis.BytecodeVisitor
      extended byCompil3r.Reference.x86.x86ReferenceCompiler
All Implemented Interfaces:
Clazz.jq_ClassFileConstants, Assembler.x86.x86Constants

public class x86ReferenceCompiler
extends Compil3r.BytecodeAnalysis.BytecodeVisitor
implements Assembler.x86.x86Constants, Clazz.jq_ClassFileConstants

Version:
$Id: x86ReferenceCompiler.java,v 1.28 2003/05/12 10:05:16 joewhaley Exp $

Nested Class Summary
static class x86ReferenceCompiler.Factory
           
 
Field Summary
static UTF.Utf8 address32
           
static UTF.Utf8 addressOf
           
static UTF.Utf8 align
           
static UTF.Utf8 alloca
           
static boolean ALWAYS_TRACE
           
private  Assembler.x86.x86Assembler asm
           
static UTF.Utf8 asObject
           
static UTF.Utf8 asReferenceType
           
static UTF.Utf8 atomicAdd
           
static UTF.Utf8 atomicAnd
           
static UTF.Utf8 atomicCas4
           
static UTF.Utf8 atomicSub
           
private  java.util.List code_relocs
           
private  java.util.List data_relocs
           
static int DEFAULT_ALIGNMENT
           
static UTF.Utf8 difference
           
static UTF.Utf8 getBasePointer
           
static UTF.Utf8 getNull
           
static UTF.Utf8 getStackPointer
           
static UTF.Utf8 isNull
           
static UTF.Utf8 logSize
           
static UTF.Utf8 max
           
static UTF.Utf8 min
           
private  int n_paramwords
           
static UTF.Utf8 offset
           
static UTF.Utf8 pageAlign
           
static UTF.Utf8 peek
           
static UTF.Utf8 peek1
           
static UTF.Utf8 peek2
           
static UTF.Utf8 peek4
           
static UTF.Utf8 peek8
           
static UTF.Utf8 poke
           
static UTF.Utf8 poke1
           
static UTF.Utf8 poke2
           
static UTF.Utf8 poke4
           
static UTF.Utf8 poke8
           
static UTF.Utf8 size
           
static UTF.Utf8 stringRep
           
static int THREAD_BLOCK_OFFSET
           
static byte THREAD_BLOCK_PREFIX
           
static UTF.Utf8 to32BitValue
           
static boolean TRACE_STUBS
           
 boolean TraceArguments
           
static java.util.Set TraceBytecode_ClassNames
           
static java.util.Set TraceBytecode_MethodNames
           
 boolean TraceBytecodes
           
static java.util.Set TraceMethod_ClassNames
           
static java.util.Set TraceMethod_MethodNames
           
 boolean TraceMethods
           
 
Fields inherited from class Compil3r.BytecodeAnalysis.BytecodeVisitor
bcs, BINOP_ADD, BINOP_AND, BINOP_DIV, BINOP_MUL, BINOP_OR, BINOP_REM, BINOP_SUB, BINOP_XOR, binopnames, clazz, CMP_AE, CMP_EQ, CMP_G, CMP_GE, CMP_GT, CMP_L, CMP_LE, CMP_LT, CMP_NE, CMP_UNCOND, cmpopnames, fcmpopnames, i_end, i_start, INVOKE_INTERFACE, INVOKE_SPECIAL, INVOKE_STATIC, INVOKE_VIRTUAL, invokeopnames, method, MONITOR_ENTER, MONITOR_EXIT, monitoropnames, out, SHIFT_LEFT, SHIFT_RIGHT, SHIFT_URIGHT, shiftopnames, TRACE, UNOP_NEG, unopnames
 
Fields inherited from interface Assembler.x86.x86Constants
AL, AX, BOUNDS_EX_NUM, CACHE_LINE_SIZE, CJUMP_NEAR, CJUMP_SHORT, COMPLEX, EAX, EBP, EBX, ECX, EDI, EDX, ESI, ESP, JUMP_NEAR, JUMP_SHORT, MOD_DISP32, MOD_DISP8, MOD_EA, MOD_REG, NP, PU, PV, RA, RM_SIB, SCALE_1, SCALE_2, SCALE_4, SCALE_8, SEIMM8, SHIFT_ONCE, UV
 
Fields inherited from interface Clazz.jq_ClassFileConstants
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_ResolvedClass, CONSTANT_ResolvedIFieldRef, CONSTANT_ResolvedIMethodRef, CONSTANT_ResolvedSFieldRef, CONSTANT_ResolvedSMethodRef, CONSTANT_String, CONSTANT_Utf8, CONSUME_STACK, ILLEGAL_OPCODE, ILLEGAL_TYPE, jbc_AALOAD, jbc_AASTORE, jbc_ACONST_NULL, jbc_ALOAD, jbc_ALOAD_0, jbc_ALOAD_1, jbc_ALOAD_2, jbc_ALOAD_3, jbc_ANEWARRAY, jbc_ARETURN, jbc_ARRAYLENGTH, jbc_ASTORE, jbc_ASTORE_0, jbc_ASTORE_1, jbc_ASTORE_2, jbc_ASTORE_3, jbc_ATHROW, jbc_BALOAD, jbc_BASTORE, jbc_BIPUSH, jbc_BREAKPOINT, jbc_CALOAD, jbc_CASTORE, jbc_CHECKCAST, jbc_D2F, jbc_D2I, jbc_D2L, jbc_DADD, jbc_DALOAD, jbc_DASTORE, jbc_DCMPG, jbc_DCMPL, jbc_DCONST_0, jbc_DCONST_1, jbc_DDIV, jbc_DLOAD, jbc_DLOAD_0, jbc_DLOAD_1, jbc_DLOAD_2, jbc_DLOAD_3, jbc_DMUL, jbc_DNEG, jbc_DREM, jbc_DRETURN, jbc_DSTORE, jbc_DSTORE_0, jbc_DSTORE_1, jbc_DSTORE_2, jbc_DSTORE_3, jbc_DSUB, jbc_DUP, jbc_DUP_X1, jbc_DUP_X2, jbc_DUP2, jbc_DUP2_X1, jbc_DUP2_X2, jbc_F2D, jbc_F2I, jbc_F2L, jbc_FADD, jbc_FALOAD, jbc_FASTORE, jbc_FCMPG, jbc_FCMPL, jbc_FCONST_0, jbc_FCONST_1, jbc_FCONST_2, jbc_FDIV, jbc_FLOAD, jbc_FLOAD_0, jbc_FLOAD_1, jbc_FLOAD_2, jbc_FLOAD_3, jbc_FMUL, jbc_FNEG, jbc_FREM, jbc_FRETURN, jbc_FSTORE, jbc_FSTORE_0, jbc_FSTORE_1, jbc_FSTORE_2, jbc_FSTORE_3, jbc_FSUB, jbc_GETFIELD, jbc_GETSTATIC, jbc_GOTO, jbc_GOTO_W, jbc_I2B, jbc_I2C, jbc_I2D, jbc_I2F, jbc_I2L, jbc_I2S, jbc_IADD, jbc_IALOAD, jbc_IAND, jbc_IASTORE, jbc_ICONST_0, jbc_ICONST_1, jbc_ICONST_2, jbc_ICONST_3, jbc_ICONST_4, jbc_ICONST_5, jbc_ICONST_M1, jbc_IDIV, jbc_IF_ACMPEQ, jbc_IF_ACMPNE, jbc_IF_ICMPEQ, jbc_IF_ICMPGE, jbc_IF_ICMPGT, jbc_IF_ICMPLE, jbc_IF_ICMPLT, jbc_IF_ICMPNE, jbc_IFEQ, jbc_IFGE, jbc_IFGT, jbc_IFLE, jbc_IFLT, jbc_IFNE, jbc_IFNONNULL, jbc_IFNULL, jbc_IINC, jbc_ILOAD, jbc_ILOAD_0, jbc_ILOAD_1, jbc_ILOAD_2, jbc_ILOAD_3, jbc_IMUL, jbc_INEG, jbc_INSTANCEOF, jbc_INT2BYTE, jbc_INT2CHAR, jbc_INT2SHORT, jbc_INVOKEINTERFACE, jbc_INVOKENONVIRTUAL, jbc_INVOKESPECIAL, jbc_INVOKESTATIC, jbc_INVOKEVIRTUAL, jbc_IOR, jbc_IREM, jbc_IRETURN, jbc_ISHL, jbc_ISHR, jbc_ISTORE, jbc_ISTORE_0, jbc_ISTORE_1, jbc_ISTORE_2, jbc_ISTORE_3, jbc_ISUB, jbc_IUSHR, jbc_IXOR, jbc_JSR, jbc_JSR_W, jbc_L2D, jbc_L2F, jbc_L2I, jbc_LADD, jbc_LALOAD, jbc_LAND, jbc_LASTORE, jbc_LCMP, jbc_LCONST_0, jbc_LCONST_1, jbc_LDC, jbc_LDC_W, jbc_LDC2_W, jbc_LDIV, jbc_LLOAD, jbc_LLOAD_0, jbc_LLOAD_1, jbc_LLOAD_2, jbc_LLOAD_3, jbc_LMUL, jbc_LNEG, jbc_LOOKUPSWITCH, jbc_LOR, jbc_LREM, jbc_LRETURN, jbc_LSHL, jbc_LSHR, jbc_LSTORE, jbc_LSTORE_0, jbc_LSTORE_1, jbc_LSTORE_2, jbc_LSTORE_3, jbc_LSUB, jbc_LUSHR, jbc_LXOR, jbc_MONITORENTER, jbc_MONITOREXIT, jbc_MULTIANEWARRAY, jbc_NEW, jbc_NEWARRAY, jbc_NOP, jbc_POP, jbc_POP2, jbc_PUTFIELD, jbc_PUTSTATIC, jbc_RET, jbc_RETURN, jbc_SALOAD, jbc_SASTORE, jbc_SIPUSH, jbc_SWAP, jbc_TABLESWITCH, jbc_WIDE, NO_OF_OPERANDS, OPCODE_NAMES, PRODUCE_STACK, RESERVED, STATE_CLSINITERROR, STATE_CLSINITIALIZED, STATE_CLSINITIALIZING, STATE_CLSINITRUNNING, STATE_COMPILED, STATE_COMPILING, STATE_LOADED, STATE_LOADERROR, STATE_LOADING1, STATE_LOADING2, STATE_LOADING3, STATE_PREPARED, STATE_PREPARING, STATE_SFINITIALIZED, STATE_SFINITIALIZING, STATE_UNLOADED, STATE_VERIFIED, STATE_VERIFYING, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TC_ARRAY, TC_BOOLEAN, TC_BYTE, TC_CHAR, TC_CLASS, TC_CLASSEND, TC_DOUBLE, TC_FLOAT, TC_INT, TC_LONG, TC_PARAM, TC_PARAMEND, TC_SHORT, TC_VOID, TYPE_OF_OPERANDS, UNDEFINED, UNPREDICTABLE
 
Constructor Summary
x86ReferenceCompiler(Clazz.jq_Method method)
           
 
Method Summary
private  void ALOAD4helper()
           
private  void ALOAD8helper()
           
private  void ASTORE2helper()
           
private  void ASTORE4helper()
           
private  void ASTORE8helper()
           
private  void branchHelper(byte op, int target)
           
 Clazz.jq_CompiledCode compile()
           
 void emitCallMemory(Clazz.jq_StaticField f)
           
static void emitCallMemory(Clazz.jq_StaticField f, Assembler.x86.x86Assembler asm, java.util.List data_relocs)
           
 void emitCallRelative(Clazz.jq_Method target)
           
static void emitCallRelative(Clazz.jq_Method target, Assembler.x86.x86Assembler asm, java.util.List code_relocs)
           
 void emitFLD64(Clazz.jq_StaticField f)
           
static void emitFLD64(Clazz.jq_StaticField f, Assembler.x86.x86Assembler asm, java.util.List data_relocs)
           
 void emitPopMemory(Clazz.jq_StaticField f)
           
static void emitPopMemory(Clazz.jq_StaticField f, Assembler.x86.x86Assembler asm, java.util.List data_relocs)
           
 void emitPopMemory8(Clazz.jq_StaticField f)
           
static void emitPopMemory8(Clazz.jq_StaticField f, Assembler.x86.x86Assembler asm, java.util.List data_relocs)
           
 void emitPushAddressOf(java.lang.Object o)
           
static void emitPushAddressOf(java.lang.Object o, Assembler.x86.x86Assembler asm, java.util.List data_relocs)
           
 void emitPushMemory(Clazz.jq_StaticField f)
           
static void emitPushMemory(Clazz.jq_StaticField f, Assembler.x86.x86Assembler asm, java.util.List data_relocs)
           
 void emitPushMemory8(Clazz.jq_StaticField f)
           
static void emitPushMemory8(Clazz.jq_StaticField f, Assembler.x86.x86Assembler asm, java.util.List data_relocs)
           
private  void gen_unsafe(Clazz.jq_Method f)
           
private  void genAddress(Clazz.jq_Method f)
           
static Clazz.jq_CompiledCode generate_compile_stub(Clazz.jq_Method method)
           
 java.util.List getCodeRelocs()
           
 java.util.List getDataRelocs()
           
 void GETFIELD1helper(Clazz.jq_InstanceField f)
           
 void GETFIELD4helper(Clazz.jq_InstanceField f)
           
 void GETFIELD8helper(Clazz.jq_InstanceField f)
           
private  int getLocalOffset(int local)
           
 void GETSTATIC4helper(Clazz.jq_StaticField f)
           
 void GETSTATIC8helper(Clazz.jq_StaticField f)
           
 void init(Clazz.jq_Method method)
           
private  void INVOKEDPATCHhelper(byte op, Clazz.jq_Method f)
           
private  void INVOKEhelper(byte op, Clazz.jq_Method f)
           
private  void INVOKENODPATCHhelper(byte op, Clazz.jq_Method f)
           
(package private) static int patch_cgetfield(Memory.CodeAddress retloc, Clazz.jq_InstanceField f)
           
(package private) static int patch_getfield1(Memory.CodeAddress retloc, Clazz.jq_InstanceField f)
           
(package private) static int patch_getfield4(Memory.CodeAddress retloc, Clazz.jq_InstanceField f)
           
(package private) static int patch_getfield8(Memory.CodeAddress retloc, Clazz.jq_InstanceField f)
           
(package private) static int patch_getstatic4(Memory.CodeAddress retloc, Clazz.jq_StaticField f)
           
(package private) static int patch_getstatic8(Memory.CodeAddress retloc, Clazz.jq_StaticField f)
           
(package private) static int patch_invokestatic(Memory.CodeAddress retloc, Clazz.jq_Method f)
           
(package private) static int patch_invokevirtual(Memory.CodeAddress retloc, Clazz.jq_InstanceMethod f)
           
(package private) static int patch_putfield1(Memory.CodeAddress retloc, Clazz.jq_InstanceField f)
           
(package private) static int patch_putfield2(Memory.CodeAddress retloc, Clazz.jq_InstanceField f)
           
(package private) static int patch_putfield4(Memory.CodeAddress retloc, Clazz.jq_InstanceField f)
           
(package private) static int patch_putfield8(Memory.CodeAddress retloc, Clazz.jq_InstanceField f)
           
(package private) static int patch_putstatic4(Memory.CodeAddress retloc, Clazz.jq_StaticField f)
           
(package private) static int patch_putstatic8(Memory.CodeAddress retloc, Clazz.jq_StaticField f)
           
(package private) static int patch_sgetfield(Memory.CodeAddress retloc, Clazz.jq_InstanceField f)
           
 void PUTFIELD1helper(Clazz.jq_InstanceField f)
           
 void PUTFIELD2helper(Clazz.jq_InstanceField f)
           
 void PUTFIELD4helper(Clazz.jq_InstanceField f)
           
 void PUTFIELD8helper(Clazz.jq_InstanceField f)
           
 void PUTSTATIC4helper(Clazz.jq_StaticField f)
           
 void PUTSTATIC8helper(Clazz.jq_StaticField f)
           
private  void RETURN4helper()
           
private  void RETURN8helper()
           
private  void SYNCHEXIThelper()
           
private  void toIntHelper()
           
private  void toLongHelper()
           
 java.lang.String toString()
          Convert this Object to a human-readable String.
 void visitAALOAD()
           
 void visitAASTORE()
           
 void visitACONST(java.lang.Object s)
           
 void visitAGETFIELD(Clazz.jq_InstanceField f)
           
 void visitAGETSTATIC(Clazz.jq_StaticField f)
           
 void visitAINVOKE(byte op, Clazz.jq_Method f)
           
 void visitALOAD(int i)
           
 void visitAPUTFIELD(Clazz.jq_InstanceField f)
           
 void visitAPUTSTATIC(Clazz.jq_StaticField f)
           
 void visitARETURN()
           
 void visitARRAYLENGTH()
           
 void visitASTORE(int i)
           
 void visitATHROW()
           
 void visitBALOAD()
           
 void visitBASTORE()
           
 void visitBGETFIELD(Clazz.jq_InstanceField f)
           
 void visitBGETSTATIC(Clazz.jq_StaticField f)
           
 void visitBPUTFIELD(Clazz.jq_InstanceField f)
           
 void visitBPUTSTATIC(Clazz.jq_StaticField f)
           
 void visitBytecode()
           
 void visitCALOAD()
           
 void visitCASTORE()
           
 void visitCGETFIELD(Clazz.jq_InstanceField f)
           
 void visitCGETSTATIC(Clazz.jq_StaticField f)
           
 void visitCHECKCAST(Clazz.jq_Type f)
           
 void visitCPUTFIELD(Clazz.jq_InstanceField f)
           
 void visitCPUTSTATIC(Clazz.jq_StaticField f)
           
 void visitD2F()
           
 void visitD2I()
           
 void visitD2L()
           
 void visitDALOAD()
           
 void visitDASTORE()
           
 void visitDBINOP(byte op)
           
 void visitDCMP2(byte op)
           
 void visitDCONST(double c)
           
 void visitDGETFIELD(Clazz.jq_InstanceField f)
           
 void visitDGETSTATIC(Clazz.jq_StaticField f)
           
 void visitDINVOKE(byte op, Clazz.jq_Method f)
           
 void visitDLOAD(int i)
           
 void visitDPUTFIELD(Clazz.jq_InstanceField f)
           
 void visitDPUTSTATIC(Clazz.jq_StaticField f)
           
 void visitDRETURN()
           
 void visitDSTORE(int i)
           
 void visitDUNOP(byte op)
           
 void visitDUP_x1()
           
 void visitDUP_x2()
           
 void visitDUP()
           
 void visitDUP2_x1()
           
 void visitDUP2_x2()
           
 void visitDUP2()
           
 void visitF2D()
           
 void visitF2I()
           
 void visitF2L()
           
 void visitFALOAD()
           
 void visitFASTORE()
           
 void visitFBINOP(byte op)
           
 void visitFCMP2(byte op)
           
 void visitFCONST(float c)
           
 void visitFGETFIELD(Clazz.jq_InstanceField f)
           
 void visitFGETSTATIC(Clazz.jq_StaticField f)
           
 void visitFINVOKE(byte op, Clazz.jq_Method f)
           
 void visitFLOAD(int i)
           
 void visitFPUTFIELD(Clazz.jq_InstanceField f)
           
 void visitFPUTSTATIC(Clazz.jq_StaticField f)
           
 void visitFRETURN()
           
 void visitFSTORE(int i)
           
 void visitFUNOP(byte op)
           
 void visitGOTO(int target)
           
 void visitI2B()
           
 void visitI2C()
           
 void visitI2D()
           
 void visitI2F()
           
 void visitI2L()
           
 void visitI2S()
           
 void visitIALOAD()
           
 void visitIASTORE()
           
 void visitIBINOP(byte op)
           
 void visitICONST(int c)
           
 void visitIF(byte op, int target)
           
 void visitIFCMP(byte op, int target)
           
 void visitIFREF(byte op, int target)
           
 void visitIFREFCMP(byte op, int target)
           
 void visitIGETFIELD(Clazz.jq_InstanceField f)
           
 void visitIGETSTATIC(Clazz.jq_StaticField f)
           
 void visitIINC(int i, int v)
           
 void visitIINVOKE(byte op, Clazz.jq_Method f)
           
 void visitILOAD(int i)
           
 void visitINSTANCEOF(Clazz.jq_Type f)
           
 void visitIPUTFIELD(Clazz.jq_InstanceField f)
           
 void visitIPUTSTATIC(Clazz.jq_StaticField f)
           
 void visitIRETURN()
           
 void visitISHIFT(byte op)
           
 void visitISTORE(int i)
           
 void visitIUNOP(byte op)
           
 void visitJSR(int target)
           
 void visitL2D()
           
 void visitL2F()
           
 void visitL2I()
           
 void visitLALOAD()
           
 void visitLASTORE()
           
 void visitLBINOP(byte op)
           
 void visitLCMP2()
           
 void visitLCONST(long c)
           
 void visitLGETFIELD(Clazz.jq_InstanceField f)
           
 void visitLGETSTATIC(Clazz.jq_StaticField f)
           
 void visitLINVOKE(byte op, Clazz.jq_Method f)
           
 void visitLLOAD(int i)
           
 void visitLOOKUPSWITCH(int default_target, int[] values, int[] targets)
           
 void visitLPUTFIELD(Clazz.jq_InstanceField f)
           
 void visitLPUTSTATIC(Clazz.jq_StaticField f)
           
 void visitLRETURN()
           
 void visitLSHIFT(byte op)
           
 void visitLSTORE(int i)
           
 void visitLUNOP(byte op)
           
 void visitMONITOR(byte op)
           
 void visitMULTINEWARRAY(Clazz.jq_Type f, char dim)
           
 void visitNEW(Clazz.jq_Type f)
           
 void visitNEWARRAY(Clazz.jq_Array f)
           
 void visitNOP()
           
 void visitPOP()
           
 void visitPOP2()
           
 void visitRET(int i)
           
 void visitSALOAD()
           
 void visitSASTORE()
           
 void visitSGETFIELD(Clazz.jq_InstanceField f)
           
 void visitSGETSTATIC(Clazz.jq_StaticField f)
           
 void visitSPUTFIELD(Clazz.jq_InstanceField f)
           
 void visitSPUTSTATIC(Clazz.jq_StaticField f)
           
 void visitSWAP()
           
 void visitTABLESWITCH(int default_target, int low, int high, int[] targets)
           
 void visitVINVOKE(byte op, Clazz.jq_Method f)
           
 void visitVRETURN()
           
 void visitZGETFIELD(Clazz.jq_InstanceField f)
           
 void visitZGETSTATIC(Clazz.jq_StaticField f)
           
 void visitZPUTFIELD(Clazz.jq_InstanceField f)
           
 void visitZPUTSTATIC(Clazz.jq_StaticField f)
           
 
Methods inherited from class Compil3r.BytecodeAnalysis.BytecodeVisitor
forwardTraversal, resolve, resolve, resolve, resolve, resolve, updateCPIndex, updateMemberReference, visitPEI
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ALWAYS_TRACE

public static boolean ALWAYS_TRACE

TRACE_STUBS

public static boolean TRACE_STUBS

TraceMethod_MethodNames

public static final java.util.Set TraceMethod_MethodNames

TraceMethod_ClassNames

public static final java.util.Set TraceMethod_ClassNames

TraceBytecode_MethodNames

public static final java.util.Set TraceBytecode_MethodNames

TraceBytecode_ClassNames

public static final java.util.Set TraceBytecode_ClassNames

TraceBytecodes

public final boolean TraceBytecodes

TraceMethods

public final boolean TraceMethods

TraceArguments

public final boolean TraceArguments

DEFAULT_ALIGNMENT

public static final int DEFAULT_ALIGNMENT
See Also:
Constant Field Values

asm

private Assembler.x86.x86Assembler asm

n_paramwords

private int n_paramwords

code_relocs

private java.util.List code_relocs

data_relocs

private java.util.List data_relocs

THREAD_BLOCK_PREFIX

public static byte THREAD_BLOCK_PREFIX

THREAD_BLOCK_OFFSET

public static int THREAD_BLOCK_OFFSET

peek

public static final UTF.Utf8 peek

peek1

public static final UTF.Utf8 peek1

peek2

public static final UTF.Utf8 peek2

peek4

public static final UTF.Utf8 peek4

peek8

public static final UTF.Utf8 peek8

poke

public static final UTF.Utf8 poke

poke1

public static final UTF.Utf8 poke1

poke2

public static final UTF.Utf8 poke2

poke4

public static final UTF.Utf8 poke4

poke8

public static final UTF.Utf8 poke8

offset

public static final UTF.Utf8 offset

align

public static final UTF.Utf8 align

difference

public static final UTF.Utf8 difference

isNull

public static final UTF.Utf8 isNull

addressOf

public static final UTF.Utf8 addressOf

address32

public static final UTF.Utf8 address32

asObject

public static final UTF.Utf8 asObject

asReferenceType

public static final UTF.Utf8 asReferenceType

to32BitValue

public static final UTF.Utf8 to32BitValue

stringRep

public static final UTF.Utf8 stringRep

getNull

public static final UTF.Utf8 getNull

size

public static final UTF.Utf8 size

logSize

public static final UTF.Utf8 logSize

pageAlign

public static final UTF.Utf8 pageAlign

getBasePointer

public static final UTF.Utf8 getBasePointer

getStackPointer

public static final UTF.Utf8 getStackPointer

alloca

public static final UTF.Utf8 alloca

atomicAdd

public static final UTF.Utf8 atomicAdd

atomicSub

public static final UTF.Utf8 atomicSub

atomicCas4

public static final UTF.Utf8 atomicCas4

atomicAnd

public static final UTF.Utf8 atomicAnd

min

public static final UTF.Utf8 min

max

public static final UTF.Utf8 max
Constructor Detail

x86ReferenceCompiler

public x86ReferenceCompiler(Clazz.jq_Method method)
Method Detail

init

public void init(Clazz.jq_Method method)

toString

public java.lang.String toString()
Description copied from class: java.lang.Object
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into System.out.println() 55 and such.

It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.

This method will be called when performing string concatenation with this object. If the result is null, string concatenation will instead use "null".

The default implementation returns getClass().getName() + "@" + Integer.toHexString(hashCode()).


getLocalOffset

private int getLocalOffset(int local)

emitCallRelative

public final void emitCallRelative(Clazz.jq_Method target)

emitCallRelative

public static final void emitCallRelative(Clazz.jq_Method target,
                                          Assembler.x86.x86Assembler asm,
                                          java.util.List code_relocs)

emitPushAddressOf

public final void emitPushAddressOf(java.lang.Object o)

emitPushAddressOf

public static final void emitPushAddressOf(java.lang.Object o,
                                           Assembler.x86.x86Assembler asm,
                                           java.util.List data_relocs)

emitPushMemory

public final void emitPushMemory(Clazz.jq_StaticField f)

emitPushMemory

public static final void emitPushMemory(Clazz.jq_StaticField f,
                                        Assembler.x86.x86Assembler asm,
                                        java.util.List data_relocs)

emitPushMemory8

public final void emitPushMemory8(Clazz.jq_StaticField f)

emitPushMemory8

public static final void emitPushMemory8(Clazz.jq_StaticField f,
                                         Assembler.x86.x86Assembler asm,
                                         java.util.List data_relocs)

emitPopMemory

public final void emitPopMemory(Clazz.jq_StaticField f)

emitPopMemory

public static final void emitPopMemory(Clazz.jq_StaticField f,
                                       Assembler.x86.x86Assembler asm,
                                       java.util.List data_relocs)

emitPopMemory8

public final void emitPopMemory8(Clazz.jq_StaticField f)

emitPopMemory8

public static final void emitPopMemory8(Clazz.jq_StaticField f,
                                        Assembler.x86.x86Assembler asm,
                                        java.util.List data_relocs)

emitCallMemory

public final void emitCallMemory(Clazz.jq_StaticField f)

emitCallMemory

public static final void emitCallMemory(Clazz.jq_StaticField f,
                                        Assembler.x86.x86Assembler asm,
                                        java.util.List data_relocs)

emitFLD64

public final void emitFLD64(Clazz.jq_StaticField f)

emitFLD64

public static final void emitFLD64(Clazz.jq_StaticField f,
                                   Assembler.x86.x86Assembler asm,
                                   java.util.List data_relocs)

getCodeRelocs

public final java.util.List getCodeRelocs()

getDataRelocs

public final java.util.List getDataRelocs()

generate_compile_stub

public static final Clazz.jq_CompiledCode generate_compile_stub(Clazz.jq_Method method)

compile

public final Clazz.jq_CompiledCode compile()

visitBytecode

public void visitBytecode()
                   throws java.lang.VerifyError

visitNOP

public void visitNOP()

visitACONST

public void visitACONST(java.lang.Object s)

visitICONST

public void visitICONST(int c)

visitLCONST

public void visitLCONST(long c)

visitFCONST

public void visitFCONST(float c)

visitDCONST

public void visitDCONST(double c)

visitILOAD

public void visitILOAD(int i)

visitLLOAD

public void visitLLOAD(int i)

visitFLOAD

public void visitFLOAD(int i)

visitDLOAD

public void visitDLOAD(int i)

visitALOAD

public void visitALOAD(int i)

visitISTORE

public void visitISTORE(int i)

visitLSTORE

public void visitLSTORE(int i)

visitFSTORE

public void visitFSTORE(int i)

visitDSTORE

public void visitDSTORE(int i)

visitASTORE

public void visitASTORE(int i)

ALOAD4helper

private void ALOAD4helper()

ALOAD8helper

private void ALOAD8helper()

visitIALOAD

public void visitIALOAD()

visitLALOAD

public void visitLALOAD()

visitFALOAD

public void visitFALOAD()

visitDALOAD

public void visitDALOAD()

visitAALOAD

public void visitAALOAD()

visitBALOAD

public void visitBALOAD()

visitCALOAD

public void visitCALOAD()

visitSALOAD

public void visitSALOAD()

ASTORE2helper

private void ASTORE2helper()

ASTORE4helper

private void ASTORE4helper()

ASTORE8helper

private void ASTORE8helper()

visitIASTORE

public void visitIASTORE()

visitLASTORE

public void visitLASTORE()

visitFASTORE

public void visitFASTORE()

visitDASTORE

public void visitDASTORE()

visitAASTORE

public void visitAASTORE()

visitBASTORE

public void visitBASTORE()

visitCASTORE

public void visitCASTORE()

visitSASTORE

public void visitSASTORE()

visitPOP

public void visitPOP()

visitPOP2

public void visitPOP2()

visitDUP

public void visitDUP()

visitDUP_x1

public void visitDUP_x1()

visitDUP_x2

public void visitDUP_x2()

visitDUP2

public void visitDUP2()

visitDUP2_x1

public void visitDUP2_x1()

visitDUP2_x2

public void visitDUP2_x2()

visitSWAP

public void visitSWAP()

visitIBINOP

public void visitIBINOP(byte op)

visitLBINOP

public void visitLBINOP(byte op)

visitFBINOP

public void visitFBINOP(byte op)

visitDBINOP

public void visitDBINOP(byte op)

visitIUNOP

public void visitIUNOP(byte op)

visitLUNOP

public void visitLUNOP(byte op)

visitFUNOP

public void visitFUNOP(byte op)

visitDUNOP

public void visitDUNOP(byte op)

visitISHIFT

public void visitISHIFT(byte op)

visitLSHIFT

public void visitLSHIFT(byte op)

visitIINC

public void visitIINC(int i,
                      int v)

visitI2L

public void visitI2L()

visitI2F

public void visitI2F()

visitI2D

public void visitI2D()

visitL2I

public void visitL2I()

visitL2F

public void visitL2F()

visitL2D

public void visitL2D()

toIntHelper

private void toIntHelper()

toLongHelper

private void toLongHelper()

visitF2I

public void visitF2I()

visitF2L

public void visitF2L()

visitF2D

public void visitF2D()

visitD2I

public void visitD2I()

visitD2L

public void visitD2L()

visitD2F

public void visitD2F()

visitI2B

public void visitI2B()

visitI2C

public void visitI2C()

visitI2S

public void visitI2S()

visitLCMP2

public void visitLCMP2()

visitFCMP2

public void visitFCMP2(byte op)

visitDCMP2

public void visitDCMP2(byte op)

branchHelper

private void branchHelper(byte op,
                          int target)

visitIF

public void visitIF(byte op,
                    int target)

visitIFREF

public void visitIFREF(byte op,
                       int target)

visitIFCMP

public void visitIFCMP(byte op,
                       int target)

visitIFREFCMP

public void visitIFREFCMP(byte op,
                          int target)

visitGOTO

public void visitGOTO(int target)

visitJSR

public void visitJSR(int target)

visitRET

public void visitRET(int i)

visitTABLESWITCH

public void visitTABLESWITCH(int default_target,
                             int low,
                             int high,
                             int[] targets)

visitLOOKUPSWITCH

public void visitLOOKUPSWITCH(int default_target,
                              int[] values,
                              int[] targets)

SYNCHEXIThelper

private void SYNCHEXIThelper()

RETURN4helper

private void RETURN4helper()

RETURN8helper

private void RETURN8helper()

visitIRETURN

public void visitIRETURN()

visitLRETURN

public void visitLRETURN()

visitFRETURN

public void visitFRETURN()

visitDRETURN

public void visitDRETURN()

visitARETURN

public void visitARETURN()

visitVRETURN

public void visitVRETURN()

GETSTATIC4helper

public void GETSTATIC4helper(Clazz.jq_StaticField f)

patch_getstatic4

static int patch_getstatic4(Memory.CodeAddress retloc,
                            Clazz.jq_StaticField f)

GETSTATIC8helper

public void GETSTATIC8helper(Clazz.jq_StaticField f)

patch_getstatic8

static int patch_getstatic8(Memory.CodeAddress retloc,
                            Clazz.jq_StaticField f)

visitIGETSTATIC

public void visitIGETSTATIC(Clazz.jq_StaticField f)

visitLGETSTATIC

public void visitLGETSTATIC(Clazz.jq_StaticField f)

visitFGETSTATIC

public void visitFGETSTATIC(Clazz.jq_StaticField f)

visitDGETSTATIC

public void visitDGETSTATIC(Clazz.jq_StaticField f)

visitAGETSTATIC

public void visitAGETSTATIC(Clazz.jq_StaticField f)

visitZGETSTATIC

public void visitZGETSTATIC(Clazz.jq_StaticField f)

visitBGETSTATIC

public void visitBGETSTATIC(Clazz.jq_StaticField f)

visitCGETSTATIC

public void visitCGETSTATIC(Clazz.jq_StaticField f)

visitSGETSTATIC

public void visitSGETSTATIC(Clazz.jq_StaticField f)

PUTSTATIC4helper

public void PUTSTATIC4helper(Clazz.jq_StaticField f)

patch_putstatic4

static int patch_putstatic4(Memory.CodeAddress retloc,
                            Clazz.jq_StaticField f)

PUTSTATIC8helper

public void PUTSTATIC8helper(Clazz.jq_StaticField f)

patch_putstatic8

static int patch_putstatic8(Memory.CodeAddress retloc,
                            Clazz.jq_StaticField f)

visitIPUTSTATIC

public void visitIPUTSTATIC(Clazz.jq_StaticField f)

visitLPUTSTATIC

public void visitLPUTSTATIC(Clazz.jq_StaticField f)

visitFPUTSTATIC

public void visitFPUTSTATIC(Clazz.jq_StaticField f)

visitDPUTSTATIC

public void visitDPUTSTATIC(Clazz.jq_StaticField f)

visitAPUTSTATIC

public void visitAPUTSTATIC(Clazz.jq_StaticField f)

visitZPUTSTATIC

public void visitZPUTSTATIC(Clazz.jq_StaticField f)

visitBPUTSTATIC

public void visitBPUTSTATIC(Clazz.jq_StaticField f)

visitCPUTSTATIC

public void visitCPUTSTATIC(Clazz.jq_StaticField f)

visitSPUTSTATIC

public void visitSPUTSTATIC(Clazz.jq_StaticField f)

GETFIELD1helper

public void GETFIELD1helper(Clazz.jq_InstanceField f)

patch_getfield1

static int patch_getfield1(Memory.CodeAddress retloc,
                           Clazz.jq_InstanceField f)

GETFIELD4helper

public void GETFIELD4helper(Clazz.jq_InstanceField f)

patch_getfield4

static int patch_getfield4(Memory.CodeAddress retloc,
                           Clazz.jq_InstanceField f)

GETFIELD8helper

public void GETFIELD8helper(Clazz.jq_InstanceField f)

patch_getfield8

static int patch_getfield8(Memory.CodeAddress retloc,
                           Clazz.jq_InstanceField f)

visitIGETFIELD

public void visitIGETFIELD(Clazz.jq_InstanceField f)

visitLGETFIELD

public void visitLGETFIELD(Clazz.jq_InstanceField f)

visitFGETFIELD

public void visitFGETFIELD(Clazz.jq_InstanceField f)

visitDGETFIELD

public void visitDGETFIELD(Clazz.jq_InstanceField f)

visitAGETFIELD

public void visitAGETFIELD(Clazz.jq_InstanceField f)

visitBGETFIELD

public void visitBGETFIELD(Clazz.jq_InstanceField f)

visitCGETFIELD

public void visitCGETFIELD(Clazz.jq_InstanceField f)

patch_cgetfield

static int patch_cgetfield(Memory.CodeAddress retloc,
                           Clazz.jq_InstanceField f)

visitSGETFIELD

public void visitSGETFIELD(Clazz.jq_InstanceField f)

patch_sgetfield

static int patch_sgetfield(Memory.CodeAddress retloc,
                           Clazz.jq_InstanceField f)

visitZGETFIELD

public void visitZGETFIELD(Clazz.jq_InstanceField f)

PUTFIELD1helper

public void PUTFIELD1helper(Clazz.jq_InstanceField f)

patch_putfield1

static int patch_putfield1(Memory.CodeAddress retloc,
                           Clazz.jq_InstanceField f)

PUTFIELD2helper

public void PUTFIELD2helper(Clazz.jq_InstanceField f)

patch_putfield2

static int patch_putfield2(Memory.CodeAddress retloc,
                           Clazz.jq_InstanceField f)

PUTFIELD4helper

public void PUTFIELD4helper(Clazz.jq_InstanceField f)

patch_putfield4

static int patch_putfield4(Memory.CodeAddress retloc,
                           Clazz.jq_InstanceField f)

PUTFIELD8helper

public void PUTFIELD8helper(Clazz.jq_InstanceField f)

patch_putfield8

static int patch_putfield8(Memory.CodeAddress retloc,
                           Clazz.jq_InstanceField f)

visitIPUTFIELD

public void visitIPUTFIELD(Clazz.jq_InstanceField f)

visitLPUTFIELD

public void visitLPUTFIELD(Clazz.jq_InstanceField f)

visitFPUTFIELD

public void visitFPUTFIELD(Clazz.jq_InstanceField f)

visitDPUTFIELD

public void visitDPUTFIELD(Clazz.jq_InstanceField f)

visitAPUTFIELD

public void visitAPUTFIELD(Clazz.jq_InstanceField f)

visitBPUTFIELD

public void visitBPUTFIELD(Clazz.jq_InstanceField f)

visitCPUTFIELD

public void visitCPUTFIELD(Clazz.jq_InstanceField f)

visitSPUTFIELD

public void visitSPUTFIELD(Clazz.jq_InstanceField f)

visitZPUTFIELD

public void visitZPUTFIELD(Clazz.jq_InstanceField f)

INVOKEDPATCHhelper

private void INVOKEDPATCHhelper(byte op,
                                Clazz.jq_Method f)

patch_invokevirtual

static int patch_invokevirtual(Memory.CodeAddress retloc,
                               Clazz.jq_InstanceMethod f)

patch_invokestatic

static int patch_invokestatic(Memory.CodeAddress retloc,
                              Clazz.jq_Method f)

INVOKENODPATCHhelper

private void INVOKENODPATCHhelper(byte op,
                                  Clazz.jq_Method f)

INVOKEhelper

private void INVOKEhelper(byte op,
                          Clazz.jq_Method f)

visitIINVOKE

public void visitIINVOKE(byte op,
                         Clazz.jq_Method f)

visitLINVOKE

public void visitLINVOKE(byte op,
                         Clazz.jq_Method f)

visitFINVOKE

public void visitFINVOKE(byte op,
                         Clazz.jq_Method f)

visitDINVOKE

public void visitDINVOKE(byte op,
                         Clazz.jq_Method f)

visitAINVOKE

public void visitAINVOKE(byte op,
                         Clazz.jq_Method f)

visitVINVOKE

public void visitVINVOKE(byte op,
                         Clazz.jq_Method f)

visitNEW

public void visitNEW(Clazz.jq_Type f)

visitNEWARRAY

public void visitNEWARRAY(Clazz.jq_Array f)

visitARRAYLENGTH

public void visitARRAYLENGTH()

visitATHROW

public void visitATHROW()

visitCHECKCAST

public void visitCHECKCAST(Clazz.jq_Type f)

visitINSTANCEOF

public void visitINSTANCEOF(Clazz.jq_Type f)

visitMONITOR

public void visitMONITOR(byte op)

visitMULTINEWARRAY

public void visitMULTINEWARRAY(Clazz.jq_Type f,
                               char dim)

genAddress

private void genAddress(Clazz.jq_Method f)

gen_unsafe

private void gen_unsafe(Clazz.jq_Method f)