public abstract class CallBase extends NOperandInstr implements ClosureAcceptingInstr
| Modifier and Type | Field and Description | 
|---|---|
| protected int | argsCount | 
| protected CallSite | callSite | 
| long | callSiteId | 
| protected boolean | hasClosure | 
| protected String | name | 
operandsEMPTY_OPERANDS| Modifier | Constructor and Description | 
|---|---|
| protected  | CallBase(Operation op,
        CallType callType,
        String name,
        Operand receiver,
        Operand[] args,
        Operand closure,
        boolean potentiallyRefined) | 
| Modifier and Type | Method and Description | 
|---|---|
| void | blockInlining() | 
| boolean | canBeEval() | 
| Operand[] | cloneCallArgs(CloneInfo ii) | 
| boolean | computeScopeFlags(IRScope scope)Does this instruction do anything the scope is interested in? | 
| boolean | containsArgSplat() | 
| static boolean | containsArgSplat(Operand[] arguments) | 
| void | encode(IRWriterEncoder e) | 
| Operand | getArg1()This getter is potentially unsafe if you do not know you have >=1 arguments to the call. | 
| int | getArgsCount() | 
| Operand[] | getCallArgs() | 
| CallSite | getCallSite() | 
| CallType | getCallType() | 
| Operand | getClosureArg()From interface ClosureAcceptingInstr | 
| Operand | getClosureArg(Operand ifUnspecified) | 
| String | getName() | 
| Operand | getReceiver() | 
| boolean | hasLiteralClosure() | 
| boolean | inliningBlocked() | 
| Object | interpret(ThreadContext context,
         StaticScope currScope,
         DynamicScope dynamicScope,
         IRubyObject self,
         Object[] temp) | 
| static boolean | isAllFixnums(Operand[] args) | 
| static boolean | isAllFloats(Operand[] args) | 
| boolean | isPotentiallyRefined() | 
| protected IRubyObject[] | prepareArguments(ThreadContext context,
                IRubyObject self,
                StaticScope currScope,
                DynamicScope dynamicScope,
                Object[] temp) | 
| protected IRubyObject[] | prepareArgumentsComplex(ThreadContext context,
                       IRubyObject self,
                       StaticScope currScope,
                       DynamicScope currDynScope,
                       Object[] temp) | 
| protected IRubyObject[] | prepareArgumentsSimple(ThreadContext context,
                      IRubyObject self,
                      StaticScope currScope,
                      DynamicScope currDynScope,
                      Object[] temp) | 
| Block | prepareBlock(ThreadContext context,
            IRubyObject self,
            StaticScope currScope,
            DynamicScope currDynScope,
            Object[] temp) | 
| void | setProcNew(boolean procNew) | 
| void | simplifyOperands(Map<Operand,Operand> valueMap,
                boolean force)This method takes as input a map of operands to their values, and outputs
 If the value map provides a value for any of the instruction's operands
 this method is expected to replace the original operands with the simplified values. | 
| boolean | targetRequiresCallersBinding() | 
| boolean | targetRequiresCallersFrame() | 
| String[] | toStringNonOperandArgs() | 
getOperands, setOperandcanBeDeletedFromScope, canRaiseException, clone, cloneOperands, getIPC, getOperation, getRPC, getUsedVariables, hasSideEffects, interpretAndGetNewIPC, isDead, isDeletable, markDead, renameVars, setIPC, setRPC, simplifyAndGetResult, toString, transfersControl, visitpublic final long callSiteId
protected String name
protected CallSite callSite
protected int argsCount
protected boolean hasClosure
public void encode(IRWriterEncoder e)
public String getName()
public Operand getClosureArg()
getClosureArg in interface ClosureAcceptingInstrpublic Operand getReceiver()
public Operand getArg1()
public int getArgsCount()
public Operand[] getCallArgs()
public CallSite getCallSite()
public CallType getCallType()
public boolean containsArgSplat()
public void setProcNew(boolean procNew)
public void blockInlining()
public boolean inliningBlocked()
public boolean hasLiteralClosure()
public static boolean isAllFixnums(Operand[] args)
public static boolean isAllFloats(Operand[] args)
public boolean isPotentiallyRefined()
public boolean computeScopeFlags(IRScope scope)
InstrcomputeScopeFlags in class Instrpublic void simplifyOperands(Map<Operand,Operand> valueMap, boolean force)
InstrsimplifyOperands in class Instrpublic boolean canBeEval()
public boolean targetRequiresCallersBinding()
public boolean targetRequiresCallersFrame()
public String[] toStringNonOperandArgs()
toStringNonOperandArgs in class Instrpublic static boolean containsArgSplat(Operand[] arguments)
public Object interpret(ThreadContext context, StaticScope currScope, DynamicScope dynamicScope, IRubyObject self, Object[] temp)
protected IRubyObject[] prepareArguments(ThreadContext context, IRubyObject self, StaticScope currScope, DynamicScope dynamicScope, Object[] temp)
protected IRubyObject[] prepareArgumentsSimple(ThreadContext context, IRubyObject self, StaticScope currScope, DynamicScope currDynScope, Object[] temp)
protected IRubyObject[] prepareArgumentsComplex(ThreadContext context, IRubyObject self, StaticScope currScope, DynamicScope currDynScope, Object[] temp)
public Block prepareBlock(ThreadContext context, IRubyObject self, StaticScope currScope, DynamicScope currDynScope, Object[] temp)
Copyright © 2001-2015 JRuby. All Rights Reserved.