public class IRBytecodeAdapter6 extends IRBytecodeAdapter
IRBytecodeAdapter.BlockPassType
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
SUPER_NOSPLAT_RESOLVED |
static java.lang.String |
SUPER_NOSPLAT_UNRESOLVED |
static java.lang.String |
SUPER_SPLAT_RESOLVED |
static java.lang.String |
SUPER_SPLAT_UNRESOLVED |
adapter, ipc, MAX_ARGUMENTS, signature
Constructor and Description |
---|
IRBytecodeAdapter6(SkinnyMethodAdapter adapter,
com.headius.invokebinder.Signature signature,
org.jruby.ir.targets.ClassData classData) |
Modifier and Type | Method and Description |
---|---|
void |
array(int length)
Construct an Array from elements on stack.
|
static void |
buildArrayFromLocals(SkinnyMethodAdapter adapter2,
int base,
int arity) |
java.lang.String |
cacheValuePermanently(java.lang.String what,
java.lang.Class type,
java.lang.Object key,
boolean sync,
java.lang.Runnable construction) |
java.lang.String |
cacheValuePermanently(java.lang.String what,
java.lang.Class type,
java.lang.Object key,
boolean sync,
java.lang.String signature,
java.lang.Runnable loadState,
java.lang.Runnable construction) |
java.lang.String |
cacheValuePermanentlyLoadContext(java.lang.String what,
java.lang.Class type,
java.lang.Object key,
java.lang.Runnable construction) |
void |
callEqq(boolean isSplattedValue)
Perform a === call appropriate for a case/when statement.
|
void |
checkpoint()
Perform a thread event checkpoint.
|
void |
getField(java.lang.String name)
Load instance variable from self.
|
void |
getGlobalVariable(java.lang.String name,
java.lang.String file,
int line)
Retrieve a global variable with the given name.
|
void |
hash(int length)
Construct a Hash from elements on stack.
|
void |
inheritanceSearchConst(java.lang.String name,
boolean noPrivateConsts)
Lookup a constant from a given class or module.
|
void |
invoke(java.lang.String file,
int lineNumber,
java.lang.String name,
int arity,
IRBytecodeAdapter.BlockPassType blockPassType,
CallType callType,
boolean isPotentiallyRefined) |
void |
invokeArrayDeref(java.lang.String file,
int line)
Invoke the array dereferencing method ([]) on an object other than self.
|
void |
invokeClassSuper(java.lang.String file,
int line,
java.lang.String name,
int arity,
boolean hasClosure,
boolean[] splatmap)
Invoke a superclass method from a class context.
|
void |
invokeInstanceSuper(java.lang.String file,
int line,
java.lang.String name,
int arity,
boolean hasClosure,
boolean[] splatmap)
Invoke a superclass method from an instance context.
|
void |
invokeOther(java.lang.String file,
int line,
java.lang.String name,
int arity,
IRBytecodeAdapter.BlockPassType blockPassType,
boolean isPotentiallyRefined)
Invoke a method on an object other than self.
|
void |
invokeOtherOneFixnum(java.lang.String file,
int line,
java.lang.String name,
long fixnum,
CallType callType)
Invoke a fixnum-receiving method on an object other than self.
|
void |
invokeOtherOneFloat(java.lang.String file,
int line,
java.lang.String name,
double flote,
CallType callType)
Invoke a float-receiving method on an object other than self.
|
void |
invokeSelf(java.lang.String file,
int line,
java.lang.String name,
int arity,
IRBytecodeAdapter.BlockPassType blockPassType,
CallType callType,
boolean isPotentiallyRefined)
Invoke a method on self.
|
void |
invokeUnresolvedSuper(java.lang.String file,
int line,
java.lang.String name,
int arity,
boolean hasClosure,
boolean[] splatmap)
Invoke a superclass method from an unresolved context.
|
void |
invokeZSuper(java.lang.String file,
int line,
java.lang.String name,
int arity,
boolean hasClosure,
boolean[] splatmap)
Invoke a superclass method from a zsuper in a block.
|
void |
kwargsHash(int length)
Construct a Hash based on keyword arguments pasesd to this method, for use in zsuper
Stack required: context, kwargs hash to dup, remaining elements of hash
|
void |
lexicalSearchConst(java.lang.String name)
Lookup a constant from a lexical scope.
|
void |
loadRuntime()
Push the JRuby runtime on the stack.
|
void |
prepareBlock(org.objectweb.asm.Handle handle,
Signature signature,
java.lang.String className)
Prepare a block for a subsequent call.
|
void |
pushBignum(java.math.BigInteger bigint)
Load a Bignum onto the stack.
|
void |
pushBoolean(boolean b)
Load a boolean onto the stack.
|
void |
pushByteList(org.jruby.util.ByteList bl)
Stack required: none
|
void |
pushDRegexp(java.lang.Runnable callback,
RegexpOptions options,
int arity)
Build a dynamic regexp.
|
void |
pushEncoding(org.jcodings.Encoding encoding)
Push an encoding on the stack.
|
void |
pushFixnum(long l)
Stack required: none
|
void |
pushFloat(double d)
Stack required: none
|
void |
pushFrozenString(org.jruby.util.ByteList bl,
int cr,
java.lang.String file,
int line)
Stack required: none
|
void |
pushNil()
Load nil onto the stack.
|
void |
pushRegexp(org.jruby.util.ByteList source,
int options)
Build and save a literal regular expression.
|
void |
pushString(org.jruby.util.ByteList bl,
int cr)
Stack required: none
|
void |
pushSymbol(org.jruby.util.ByteList bytes)
Push a symbol on the stack.
|
void |
pushSymbolProc(java.lang.String id)
Push a Symbol.to_proc on the stack.
|
void |
putField(java.lang.String name)
Store instance variable into self.
|
void |
searchConst(java.lang.String name,
boolean noPrivateConsts)
Lookup a constant from current context.
|
void |
searchModuleForConst(java.lang.String name,
boolean noPrivateConsts,
boolean callConstMissing)
Lookup a constant from current module.
|
void |
setGlobalVariable(java.lang.String name,
java.lang.String file,
int line)
Set the global variable with the given name to the value on stack.
|
void |
yield(boolean unwrap)
Yield argument list to a block.
|
void |
yieldSpecific()
Yield to a block.
|
void |
yieldValues(int arity)
Yield a number of flat arguments to a block.
|
bfalse, btrue, cacheCallSite, endMethod, getClassData, getUniqueSiteName, goTo, invokeHelper, invokeHelper, invokeIRHelper, invokeStatic, invokeVirtual, isNil, isTrue, loadArgs, loadBlock, loadBlockType, loadContext, loadFrameClass, loadFrameName, loadLocal, loadSelf, loadSelfBlock, loadStaticScope, loadSuperName, mark, newLabel, newLocal, poll, pushHandle, pushObjectClass, pushUndefined, returnValue, startMethod, storeArgs, storeLocal, storeSelf
public static final java.lang.String SUPER_SPLAT_UNRESOLVED
public static final java.lang.String SUPER_NOSPLAT_UNRESOLVED
public static final java.lang.String SUPER_SPLAT_RESOLVED
public static final java.lang.String SUPER_NOSPLAT_RESOLVED
public IRBytecodeAdapter6(SkinnyMethodAdapter adapter, com.headius.invokebinder.Signature signature, org.jruby.ir.targets.ClassData classData)
public void pushFixnum(long l)
IRBytecodeAdapter
pushFixnum
in class IRBytecodeAdapter
l
- long value to push as a Fixnumpublic void pushFloat(double d)
IRBytecodeAdapter
pushFloat
in class IRBytecodeAdapter
d
- double value to push as a Floatpublic void pushString(org.jruby.util.ByteList bl, int cr)
IRBytecodeAdapter
pushString
in class IRBytecodeAdapter
bl
- ByteList for the String to pushpublic void pushFrozenString(org.jruby.util.ByteList bl, int cr, java.lang.String file, int line)
pushFrozenString
in class IRBytecodeAdapter
bl
- ByteList for the String to pushpublic void pushByteList(org.jruby.util.ByteList bl)
IRBytecodeAdapter
pushByteList
in class IRBytecodeAdapter
bl
- ByteList to pushpublic java.lang.String cacheValuePermanentlyLoadContext(java.lang.String what, java.lang.Class type, java.lang.Object key, java.lang.Runnable construction)
public java.lang.String cacheValuePermanently(java.lang.String what, java.lang.Class type, java.lang.Object key, boolean sync, java.lang.Runnable construction)
public java.lang.String cacheValuePermanently(java.lang.String what, java.lang.Class type, java.lang.Object key, boolean sync, java.lang.String signature, java.lang.Runnable loadState, java.lang.Runnable construction)
public void pushRegexp(org.jruby.util.ByteList source, int options)
IRBytecodeAdapter
pushRegexp
in class IRBytecodeAdapter
options
- options for the regexppublic void pushDRegexp(java.lang.Runnable callback, RegexpOptions options, int arity)
IRBytecodeAdapter
pushDRegexp
in class IRBytecodeAdapter
options
- options for the regexparity
- number of Strings passed inpublic void pushSymbol(org.jruby.util.ByteList bytes)
IRBytecodeAdapter
pushSymbol
in class IRBytecodeAdapter
bytes
- the ByteList for the symbolpublic void pushSymbolProc(java.lang.String id)
IRBytecodeAdapter
pushSymbolProc
in class IRBytecodeAdapter
id
- raw id string for the symbol.public void loadRuntime()
IRBytecodeAdapter
loadRuntime
in class IRBytecodeAdapter
public void pushEncoding(org.jcodings.Encoding encoding)
IRBytecodeAdapter
pushEncoding
in class IRBytecodeAdapter
encoding
- the encoding to pushpublic void invokeOther(java.lang.String file, int line, java.lang.String name, int arity, IRBytecodeAdapter.BlockPassType blockPassType, boolean isPotentiallyRefined)
IRBytecodeAdapter
invokeOther
in class IRBytecodeAdapter
name
- name of the method to invokearity
- arity of the callblockPassType
- what type of closure is passedpublic void invokeArrayDeref(java.lang.String file, int line)
IRBytecodeAdapter
invokeArrayDeref
in class IRBytecodeAdapter
public void invoke(java.lang.String file, int lineNumber, java.lang.String name, int arity, IRBytecodeAdapter.BlockPassType blockPassType, CallType callType, boolean isPotentiallyRefined)
public static void buildArrayFromLocals(SkinnyMethodAdapter adapter2, int base, int arity)
public void invokeOtherOneFixnum(java.lang.String file, int line, java.lang.String name, long fixnum, CallType callType)
IRBytecodeAdapter
invokeOtherOneFixnum
in class IRBytecodeAdapter
name
- name of the method to invokepublic void invokeOtherOneFloat(java.lang.String file, int line, java.lang.String name, double flote, CallType callType)
IRBytecodeAdapter
invokeOtherOneFloat
in class IRBytecodeAdapter
name
- name of the method to invokepublic void invokeSelf(java.lang.String file, int line, java.lang.String name, int arity, IRBytecodeAdapter.BlockPassType blockPassType, CallType callType, boolean isPotentiallyRefined)
IRBytecodeAdapter
invokeSelf
in class IRBytecodeAdapter
file
- the filename of the script making this callline
- the line number where this call appearsname
- name of the method to invokearity
- arity of the callblockPassType
- what type of closure is passedpublic void invokeInstanceSuper(java.lang.String file, int line, java.lang.String name, int arity, boolean hasClosure, boolean[] splatmap)
IRBytecodeAdapter
invokeInstanceSuper
in class IRBytecodeAdapter
file
- the filename of the script making this callline
- the line number where this call appearsname
- name of the method to invokearity
- arity of the arguments on the stackhasClosure
- whether a block is passedsplatmap
- a map of arguments to be splatted back into arg listpublic void invokeClassSuper(java.lang.String file, int line, java.lang.String name, int arity, boolean hasClosure, boolean[] splatmap)
IRBytecodeAdapter
invokeClassSuper
in class IRBytecodeAdapter
file
- the filename of the script making this callline
- the line number where this call appearsname
- name of the method to invokearity
- arity of the arguments on the stackhasClosure
- whether a block is passedsplatmap
- a map of arguments to be splatted back into arg listpublic void invokeUnresolvedSuper(java.lang.String file, int line, java.lang.String name, int arity, boolean hasClosure, boolean[] splatmap)
IRBytecodeAdapter
invokeUnresolvedSuper
in class IRBytecodeAdapter
file
- the filename of the script making this callline
- the line number where this call appearsname
- name of the method to invokearity
- arity of the arguments on the stackhasClosure
- whether a block is passedsplatmap
- a map of arguments to be splatted back into arg listpublic void invokeZSuper(java.lang.String file, int line, java.lang.String name, int arity, boolean hasClosure, boolean[] splatmap)
IRBytecodeAdapter
invokeZSuper
in class IRBytecodeAdapter
file
- the filename of the script making this callline
- the line number where this call appearsname
- name of the method to invokearity
- arity of the arguments on the stackhasClosure
- whether a block is passedsplatmap
- a map of arguments to be splatted back into arg listpublic void searchConst(java.lang.String name, boolean noPrivateConsts)
IRBytecodeAdapter
searchConst
in class IRBytecodeAdapter
name
- name of the constantnoPrivateConsts
- whether to ignore private constantspublic void searchModuleForConst(java.lang.String name, boolean noPrivateConsts, boolean callConstMissing)
IRBytecodeAdapter
searchModuleForConst
in class IRBytecodeAdapter
name
- name of the constantnoPrivateConsts
- whether to ignore private constantspublic void inheritanceSearchConst(java.lang.String name, boolean noPrivateConsts)
IRBytecodeAdapter
inheritanceSearchConst
in class IRBytecodeAdapter
name
- name of the constantnoPrivateConsts
- whether to ignore private constantspublic void lexicalSearchConst(java.lang.String name)
IRBytecodeAdapter
lexicalSearchConst
in class IRBytecodeAdapter
name
- name of the constantpublic void pushNil()
IRBytecodeAdapter
pushNil
in class IRBytecodeAdapter
public void pushBoolean(boolean b)
IRBytecodeAdapter
pushBoolean
in class IRBytecodeAdapter
b
- the boolean to pushpublic void pushBignum(java.math.BigInteger bigint)
IRBytecodeAdapter
pushBignum
in class IRBytecodeAdapter
bigint
- the value of the Bignum to pushpublic void putField(java.lang.String name)
IRBytecodeAdapter
putField
in class IRBytecodeAdapter
name
- name of variable to storepublic void getField(java.lang.String name)
IRBytecodeAdapter
getField
in class IRBytecodeAdapter
name
- name of variable to loadpublic void array(int length)
IRBytecodeAdapter
array
in class IRBytecodeAdapter
length
- number of elementspublic void hash(int length)
IRBytecodeAdapter
hash
in class IRBytecodeAdapter
length
- number of element pairspublic void kwargsHash(int length)
IRBytecodeAdapter
kwargsHash
in class IRBytecodeAdapter
length
- number of element pairspublic void checkpoint()
IRBytecodeAdapter
checkpoint
in class IRBytecodeAdapter
public void getGlobalVariable(java.lang.String name, java.lang.String file, int line)
IRBytecodeAdapter
getGlobalVariable
in class IRBytecodeAdapter
public void setGlobalVariable(java.lang.String name, java.lang.String file, int line)
IRBytecodeAdapter
setGlobalVariable
in class IRBytecodeAdapter
public void yield(boolean unwrap)
IRBytecodeAdapter
yield
in class IRBytecodeAdapter
public void yieldSpecific()
IRBytecodeAdapter
yieldSpecific
in class IRBytecodeAdapter
public void yieldValues(int arity)
IRBytecodeAdapter
yieldValues
in class IRBytecodeAdapter
public void prepareBlock(org.objectweb.asm.Handle handle, Signature signature, java.lang.String className)
IRBytecodeAdapter
prepareBlock
in class IRBytecodeAdapter
public void callEqq(boolean isSplattedValue)
IRBytecodeAdapter
callEqq
in class IRBytecodeAdapter
Copyright © 2001-2018 JRuby. All Rights Reserved.