org.jruby.compiler.ir.instructions
Class CallInstr
java.lang.Object
org.jruby.compiler.ir.instructions.Instr
org.jruby.compiler.ir.instructions.MultiOperandInstr
org.jruby.compiler.ir.instructions.CallInstr
- Direct Known Subclasses:
- JRubyImplCallInstr, RubyInternalCallInstr
public class CallInstr
- extends MultiOperandInstr
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
_profile
public java.util.HashMap<DynamicMethod,java.lang.Integer> _profile
CallInstr
public CallInstr(Variable result,
MethAddr methAddr,
Operand receiver,
Operand[] args,
Operand closure)
CallInstr
public CallInstr(Operation op,
Variable result,
MethAddr methAddr,
Operand receiver,
Operand[] args,
Operand closure)
getOperands
public Operand[] getOperands()
- Specified by:
getOperands
in class Instr
setMethodAddr
public void setMethodAddr(MethAddr mh)
getMethodAddr
public MethAddr getMethodAddr()
getClosureArg
public Operand getClosureArg()
getReceiver
public Operand getReceiver()
getCallArgs
public Operand[] getCallArgs()
simplifyOperands
public void simplifyOperands(java.util.Map<Operand,Operand> valueMap)
- Description copied from class:
Instr
- 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.
It is not required that it do so -- code correctness is not compromised by failure
to simplify
- Specified by:
simplifyOperands
in class Instr
cloneCallArgs
public Operand[] cloneCallArgs(InlinerInfo ii)
isRubyInternalsCall
public boolean isRubyInternalsCall()
isStaticCallTarget
public boolean isStaticCallTarget()
getTargetMethodWithReceiver
public IRMethod getTargetMethodWithReceiver(Operand receiver)
getTargetMethod
public IRMethod getTargetMethod()
canModifyCode
public boolean canModifyCode()
canBeEval
public boolean canBeEval()
requiresBinding
public boolean requiresBinding()
canCaptureCallersBinding
public boolean canCaptureCallersBinding()
isLVADataflowBarrier
public boolean isLVADataflowBarrier()
toString
public java.lang.String toString()
- Overrides:
toString
in class MultiOperandInstr
cloneForInlining
public Instr cloneForInlining(InlinerInfo ii)
- Description copied from class:
Instr
- Clone the instruction for inlining -- this will rename all variables (including local variables and self!)
and replace RECV_ARG and RETURN instructions to regular copy instructions,
- Specified by:
cloneForInlining
in class Instr
interpret
public Label interpret(InterpreterContext interp,
IRubyObject self)
- Overrides:
interpret
in class Instr
interpret_with_inline
public Label interpret_with_inline(InterpreterContext interp,
IRubyObject self)
Copyright © 2002-2009 JRuby Team. All Rights Reserved.