Package org.jruby.ir.interpreter
Class InterpreterEngine
java.lang.Object
org.jruby.ir.interpreter.InterpreterEngine
- Direct Known Subclasses:
ExitableInterpreterEngine
,StartupInterpreterEngine
Base full interpreter. Subclasses can use utility methods here and override what they want. This method requires
that it has fully built and has had a CFG made, etc...
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static void
extractToMethodToAvoidC2Crash
(Instr instr, Throwable t) interpret
(ThreadContext context, Block block, IRubyObject self, InterpreterContext interpreterContext, RubyModule implClass, String name, Block blockArg) interpret
(ThreadContext context, Block block, IRubyObject self, InterpreterContext interpreterContext, RubyModule implClass, String name, IRubyObject[] args, Block blockArg) interpret
(ThreadContext context, Block block, IRubyObject self, InterpreterContext interpreterContext, RubyModule implClass, String name, IRubyObject arg1, Block blockArg) interpret
(ThreadContext context, Block block, IRubyObject self, InterpreterContext interpreterContext, RubyModule implClass, String name, IRubyObject arg1, IRubyObject arg2, Block blockArg) interpret
(ThreadContext context, Block block, IRubyObject self, InterpreterContext interpreterContext, RubyModule implClass, String name, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, Block blockArg) interpret
(ThreadContext context, Block block, IRubyObject self, InterpreterContext interpreterContext, RubyModule implClass, String name, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, IRubyObject arg4, Block blockArg) protected static void
interpretFloatOp
(AluInstr instr, Operation op, double[] floats, boolean[] booleans) protected static void
interpretIntOp
(AluInstr instr, Operation op, long[] fixnums, boolean[] booleans) protected static void
processBookKeepingOp
(ThreadContext context, Block block, Instr instr, Operation operation, String name, IRubyObject[] args, IRubyObject self, Block blockArg, RubyModule implClass, DynamicScope currDynScope, Object[] temp, StaticScope currScope) protected static void
processCall
(ThreadContext context, Instr instr, Operation operation, DynamicScope currDynScope, StaticScope currScope, Object[] temp, IRubyObject self, String name) protected static void
processOtherOp
(ThreadContext context, Block block, Instr instr, Operation operation, DynamicScope currDynScope, StaticScope currScope, Object[] temp, IRubyObject self, double[] floats, long[] fixnums, boolean[] booleans) protected static IRubyObject
processReturnOp
(ThreadContext context, Block block, Instr instr, Operation operation, DynamicScope currDynScope, Object[] temp, IRubyObject self, StaticScope currScope) protected static void
receiveArg
(ThreadContext context, Instr i, Operation operation, IRubyObject self, IRubyObject[] args, boolean ruby2Keywords, StaticScope currScope, DynamicScope currDynScope, Object[] temp, Object exception, Block blockArg) protected static Object
retrieveOp
(Operand r, ThreadContext context, IRubyObject self, DynamicScope currDynScope, StaticScope currScope, Object[] temp) protected static void
setResult
(Object[] temp, DynamicScope currDynScope, Instr instr, Object result) protected static void
setResult
(Object[] temp, DynamicScope currDynScope, Variable resultVar, Object result)
-
Constructor Details
-
InterpreterEngine
public InterpreterEngine()
-
-
Method Details
-
interpret
public IRubyObject interpret(ThreadContext context, Block block, IRubyObject self, InterpreterContext interpreterContext, RubyModule implClass, String name, Block blockArg) -
interpret
public IRubyObject interpret(ThreadContext context, Block block, IRubyObject self, InterpreterContext interpreterContext, RubyModule implClass, String name, IRubyObject arg1, Block blockArg) -
interpret
public IRubyObject interpret(ThreadContext context, Block block, IRubyObject self, InterpreterContext interpreterContext, RubyModule implClass, String name, IRubyObject arg1, IRubyObject arg2, Block blockArg) -
interpret
public IRubyObject interpret(ThreadContext context, Block block, IRubyObject self, InterpreterContext interpreterContext, RubyModule implClass, String name, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, Block blockArg) -
interpret
public IRubyObject interpret(ThreadContext context, Block block, IRubyObject self, InterpreterContext interpreterContext, RubyModule implClass, String name, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, IRubyObject arg4, Block blockArg) -
interpret
public IRubyObject interpret(ThreadContext context, Block block, IRubyObject self, InterpreterContext interpreterContext, RubyModule implClass, String name, IRubyObject[] args, Block blockArg) -
interpretIntOp
-
interpretFloatOp
-
receiveArg
protected static void receiveArg(ThreadContext context, Instr i, Operation operation, IRubyObject self, IRubyObject[] args, boolean ruby2Keywords, StaticScope currScope, DynamicScope currDynScope, Object[] temp, Object exception, Block blockArg) -
processCall
protected static void processCall(ThreadContext context, Instr instr, Operation operation, DynamicScope currDynScope, StaticScope currScope, Object[] temp, IRubyObject self, String name) -
processBookKeepingOp
protected static void processBookKeepingOp(ThreadContext context, Block block, Instr instr, Operation operation, String name, IRubyObject[] args, IRubyObject self, Block blockArg, RubyModule implClass, DynamicScope currDynScope, Object[] temp, StaticScope currScope) -
processReturnOp
protected static IRubyObject processReturnOp(ThreadContext context, Block block, Instr instr, Operation operation, DynamicScope currDynScope, Object[] temp, IRubyObject self, StaticScope currScope) -
processOtherOp
protected static void processOtherOp(ThreadContext context, Block block, Instr instr, Operation operation, DynamicScope currDynScope, StaticScope currScope, Object[] temp, IRubyObject self, double[] floats, long[] fixnums, boolean[] booleans) -
extractToMethodToAvoidC2Crash
-
setResult
protected static void setResult(Object[] temp, DynamicScope currDynScope, Variable resultVar, Object result) -
setResult
protected static void setResult(Object[] temp, DynamicScope currDynScope, Instr instr, Object result) -
retrieveOp
protected static Object retrieveOp(Operand r, ThreadContext context, IRubyObject self, DynamicScope currDynScope, StaticScope currScope, Object[] temp)
-