Package org.jruby.ir.instructions
package org.jruby.ir.instructions
-
ClassDescriptionInstruction representing Ruby code of the form: "a['str']" which is equivalent to: a.[]('str').A call to block_given? which can be optimized like defined?(yield) or a regular call.Represents a defined?(yield) check, which works like a call to block_given? without requiring special access to the caller's frame.Represents a multiple-target jump instruction based on a switch-like tableMarks instrs that accept closure args.This is only used for active debugging and should never end up showing up in real executed code.Marker interface to allow persistence to know whether operand arity is fixed or variableA call to __method__ or __callee__ which can be optimized to use the frame method name directly.This represents a linenumber instr that has been inlined into another method/closure.Simple interface so we can ask for jump label for branches or jumpsLoad the block passed to this scope via the on-heap frame (or similar cross-call structure).Load the block passed to this scope via the on-heap frame (or similar cross-call structure).Load the "implicit" closure for this scope.This instruction will be generated whenever speculative optimizations are performed based on assuming that an object's metaclass is C (as determined by the version number of C -- where the version number changes every time C's class structure changes).An instr with no Operandsresult instr with no operandsFor Instrs with an arbitrary number of Operands.Created by enebo on 7/28/15.Created by enebo on 7/27/15.Result Instr with one operand.Gets the keyword arg (or representation of what might be holding keyword args).This represents a required arg that shows up after optional/rest args in a method/block parameter list.For most instrs that have a result this is their base class.Search for a constant within the current module.Represents a site for a call or yield.This instruction toggles a single per thread field which specifies whether an exception being thrown needs to generate backtrace info.Instrumented trace.Instr for two operands.Result Instr with two operands.