Package org.jruby.ir.instructions
Class AttrAssignInstr
java.lang.Object
org.jruby.ir.instructions.Instr
org.jruby.ir.instructions.NOperandInstr
org.jruby.ir.instructions.CallBase
org.jruby.ir.instructions.NoResultCallInstr
org.jruby.ir.instructions.AttrAssignInstr
- All Implemented Interfaces:
ClosureAcceptingInstr
,Site
- Direct Known Subclasses:
OneArgOperandAttrAssignInstr
-
Field Summary
Fields inherited from class org.jruby.ir.instructions.CallBase
argsCount, callSite, callSiteCounter, callSiteId, hasClosure, name
Fields inherited from class org.jruby.ir.instructions.NOperandInstr
operands
Fields inherited from class org.jruby.ir.instructions.Instr
EMPTY_OPERANDS
-
Constructor Summary
ConstructorsModifierConstructorDescriptionAttrAssignInstr
(IRScope scope, Operand obj, RubySymbol attr, Operand[] args, Operand block, int flags, boolean isPotentiallyRefined) protected
AttrAssignInstr
(IRScope scope, CallType callType, RubySymbol name, Operand receiver, Operand[] args, int flags, boolean potentiallyRefined, CallSite callSite, long callSiteId) -
Method Summary
Modifier and TypeMethodDescriptionClone the instruction for use in an inlining context (either when a scope is inlined into another scope, or when a block has to be cloned because its associated call belongs to an inlined scope).static AttrAssignInstr
create
(IRScope scope, Operand obj, RubySymbol attr, Operand[] args, int flags, boolean isPotentiallyRefined) static AttrAssignInstr
create
(IRScope scope, Operand obj, RubySymbol attr, Operand[] args, Operand block, int flags, boolean isPotentiallyRefined) static AttrAssignInstr
void
interpret
(ThreadContext context, StaticScope currScope, DynamicScope dynamicScope, IRubyObject self, Object[] temp) void
Methods inherited from class org.jruby.ir.instructions.NoResultCallInstr
create, getResult
Methods inherited from class org.jruby.ir.instructions.CallBase
blockInlining, canBeEval, cloneCallArgs, computeScopeFlags, containsArgSplat, getArg1, getArgsCount, getCallArgs, getCallSite, getCallSiteFor, getCallSiteId, getCallType, getClosureArg, getClosureArg, getFlags, getId, getName, getReceiver, hasLiteralClosure, inliningBlocked, isAllFixnums, isAllFloats, isPotentiallyRefined, prepareArguments, prepareArgumentsComplex, prepareArgumentsSimple, prepareBlock, setCallSiteId, simplifyOperands, splatMap, targetRequiresCallersBinding, targetRequiresCallersFrame, toStringNonOperandArgs
Methods inherited from class org.jruby.ir.instructions.NOperandInstr
getOperands, setOperand
Methods inherited from class org.jruby.ir.instructions.Instr
canBeDeletedFromScope, canRaiseException, cloneOperands, dumpableFields, getOperation, getUsedVariables, hasSideEffects, interpretAndGetNewIPC, isDead, isDeletable, markDead, renameVars, simplifyInstr, simplifyOperands, toString, transfersControl
-
Constructor Details
-
AttrAssignInstr
-
AttrAssignInstr
public AttrAssignInstr(IRScope scope, Operand obj, RubySymbol attr, Operand[] args, Operand block, int flags, boolean isPotentiallyRefined)
-
-
Method Details
-
create
public static AttrAssignInstr create(IRScope scope, Operand obj, RubySymbol attr, Operand[] args, Operand block, int flags, boolean isPotentiallyRefined) -
create
public static AttrAssignInstr create(IRScope scope, Operand obj, RubySymbol attr, Operand[] args, int flags, boolean isPotentiallyRefined) -
clone
Description copied from class:Instr
Clone the instruction for use in an inlining context (either when a scope is inlined into another scope, or when a block has to be cloned because its associated call belongs to an inlined scope). This might renaming variables and labels to eliminate naming conflicts. The implementation might vary on the cloning mode.- Overrides:
clone
in classNoResultCallInstr
- Parameters:
ii
- This object manages renaming of variables and labels, handles args and return values.- Returns:
- a new instruction that can be used in the target scope.
-
encode
-
decode
-
interpret
public Object interpret(ThreadContext context, StaticScope currScope, DynamicScope dynamicScope, IRubyObject self, Object[] temp) -
visit
- Overrides:
visit
in classNoResultCallInstr
-