|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.jruby.compiler.impl.StandardASMCompiler
public class StandardASMCompiler
| Field Summary | |
|---|---|
static int |
ARGS_INDEX
|
static int |
CLOSURE_OFFSET
|
static int |
DYNAMIC_SCOPE_OFFSET
|
static int |
EXCEPTION_OFFSET
|
static int |
FIRST_TEMP_OFFSET
|
static java.lang.reflect.Constructor |
invDynInvCompilerConstructor
|
static java.lang.reflect.Method |
invDynSupportInstaller
|
static java.lang.String |
IRUBYOBJECT
|
static int |
NIL_OFFSET
|
static int |
PREVIOUS_EXCEPTION_OFFSET
|
static java.lang.String |
RUBY
|
static int |
RUNTIME_OFFSET
|
static int |
SELF_INDEX
|
static int |
STARTING_DSTR_SIZE
|
static int |
THIS
|
static java.lang.String |
THREADCONTEXT
|
static int |
THREADCONTEXT_INDEX
|
static int |
VARS_ARRAY_OFFSET
|
| Fields inherited from interface org.objectweb.asm.Opcodes |
|---|
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, 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, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEDYNAMIC_OWNER, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7 |
| Constructor Summary | |
|---|---|
StandardASMCompiler(java.lang.String classname,
java.lang.String sourcename)
Creates a new instance of StandardCompilerContext |
|
| Method Summary | |
|---|---|
static void |
buildStaticScopeNames(SkinnyMethodAdapter method,
StaticScope scope)
|
void |
dumpClass(java.io.PrintStream out)
|
void |
endScript(boolean generateLoad,
boolean generateMain)
End compilation for the current script, closing all context and structures used for the compilation. |
int |
getAndIncrementEnsureNumber()
|
int |
getAndIncrementInnerIndex()
|
int |
getAndIncrementMethodIndex()
|
int |
getAndIncrementRescueNumber()
|
CacheCompiler |
getCacheCompiler()
|
byte[] |
getClassByteArray()
|
SkinnyMethodAdapter |
getClassInitMethod()
|
java.lang.String |
getClassname()
|
org.objectweb.asm.ClassVisitor |
getClassVisitor()
|
static java.lang.String |
getClosure19Signature()
|
static java.lang.String |
getClosureSignature()
|
int |
getEnsureNumber()
|
SkinnyMethodAdapter |
getInitMethod()
|
int |
getInnerIndex()
|
int |
getMethodIndex()
|
static java.lang.String |
getMethodSignature(int args)
|
java.lang.String |
getNewConstant(java.lang.String type,
java.lang.String name_prefix)
|
java.lang.String |
getNewConstant(java.lang.String type,
java.lang.String name_prefix,
java.lang.Object init)
|
java.lang.String |
getNewConstantName()
|
java.lang.String |
getNewField(java.lang.String type,
java.lang.String name,
java.lang.Object init)
|
java.lang.String |
getNewStaticConstant(java.lang.String type,
java.lang.String name_prefix)
|
int |
getRescueNumber()
|
java.lang.String |
getSourcename()
|
static java.lang.String |
getStaticClosure19Signature(java.lang.String classdesc)
|
static java.lang.String |
getStaticClosureSignature(java.lang.String classdesc)
|
static java.lang.String |
getStaticMethodSignature(java.lang.String classname,
int args)
|
java.lang.Class<?> |
loadClass(JRubyClassLoader classLoader)
|
BodyCompiler |
startFileMethod(CompilerCallback args,
StaticScope scope,
ASTInspector inspector)
Begin compilation for the root of a script named __file__. |
BodyCompiler |
startMethod(java.lang.String rubyName,
java.lang.String javaName,
CompilerCallback args,
StaticScope scope,
ASTInspector inspector)
Begin compilation for a method that has the specified number of local variables. |
BodyCompiler |
startRoot(java.lang.String rubyName,
java.lang.String javaName,
StaticScope scope,
ASTInspector inspector)
Begin compilation for a the root of a script. |
void |
startScript(StaticScope scope)
Begin compilation for a script, preparing all necessary context and code to support this script's compiled representation. |
void |
writeClass(java.io.File destination)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final java.lang.String THREADCONTEXT
public static final java.lang.String RUBY
public static final java.lang.String IRUBYOBJECT
public static final int THIS
public static final int THREADCONTEXT_INDEX
public static final int SELF_INDEX
public static final int ARGS_INDEX
public static final int CLOSURE_OFFSET
public static final int DYNAMIC_SCOPE_OFFSET
public static final int RUNTIME_OFFSET
public static final int VARS_ARRAY_OFFSET
public static final int NIL_OFFSET
public static final int EXCEPTION_OFFSET
public static final int PREVIOUS_EXCEPTION_OFFSET
public static final int FIRST_TEMP_OFFSET
public static final int STARTING_DSTR_SIZE
public static final java.lang.reflect.Constructor invDynInvCompilerConstructor
public static final java.lang.reflect.Method invDynSupportInstaller
| Constructor Detail |
|---|
public StandardASMCompiler(java.lang.String classname,
java.lang.String sourcename)
| Method Detail |
|---|
public static java.lang.String getStaticMethodSignature(java.lang.String classname,
int args)
public static java.lang.String getMethodSignature(int args)
public static java.lang.String getStaticClosureSignature(java.lang.String classdesc)
public static java.lang.String getStaticClosure19Signature(java.lang.String classdesc)
public static java.lang.String getClosureSignature()
public static java.lang.String getClosure19Signature()
public byte[] getClassByteArray()
public java.lang.Class<?> loadClass(JRubyClassLoader classLoader)
throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundExceptionpublic void dumpClass(java.io.PrintStream out)
public void writeClass(java.io.File destination)
throws java.io.IOException
java.io.IOExceptionpublic java.lang.String getClassname()
public java.lang.String getSourcename()
public org.objectweb.asm.ClassVisitor getClassVisitor()
public void startScript(StaticScope scope)
ScriptCompiler
startScript in interface ScriptCompiler
public void endScript(boolean generateLoad,
boolean generateMain)
ScriptCompiler
endScript in interface ScriptCompiler
public static void buildStaticScopeNames(SkinnyMethodAdapter method,
StaticScope scope)
public SkinnyMethodAdapter getInitMethod()
public SkinnyMethodAdapter getClassInitMethod()
public CacheCompiler getCacheCompiler()
public BodyCompiler startMethod(java.lang.String rubyName,
java.lang.String javaName,
CompilerCallback args,
StaticScope scope,
ASTInspector inspector)
ScriptCompiler
startMethod in interface ScriptCompilerjavaName - The outward user-readable name of the method. A unique name will be generated based on this.
public BodyCompiler startFileMethod(CompilerCallback args,
StaticScope scope,
ASTInspector inspector)
ScriptCompiler
startFileMethod in interface ScriptCompilerargs - Arguments to the script, as passed via jitted wrappersscope - The StaticScope for the scriptinspector - The ASTInspector for the nodes for the script
public BodyCompiler startRoot(java.lang.String rubyName,
java.lang.String javaName,
StaticScope scope,
ASTInspector inspector)
ScriptCompiler
startRoot in interface ScriptCompilerjavaName - The outward user-readable name of the method. A unique name will be generated based on this.
public int getMethodIndex()
public int getAndIncrementMethodIndex()
public int getInnerIndex()
public int getAndIncrementInnerIndex()
public int getRescueNumber()
public int getAndIncrementRescueNumber()
public int getEnsureNumber()
public int getAndIncrementEnsureNumber()
public java.lang.String getNewConstant(java.lang.String type,
java.lang.String name_prefix)
public java.lang.String getNewConstantName()
public java.lang.String getNewConstant(java.lang.String type,
java.lang.String name_prefix,
java.lang.Object init)
public java.lang.String getNewField(java.lang.String type,
java.lang.String name,
java.lang.Object init)
public java.lang.String getNewStaticConstant(java.lang.String type,
java.lang.String name_prefix)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||