Module: CastOff::Compiler::Instruction

Extended by:
Util
Included in:
SimpleIR, SimpleIR::CallIR, Translator, Translator::CFG, Translator::CFG::BasicBlock
Defined in:
lib/cast_off/compile/instruction.rb

Defined Under Namespace

Classes: InsnInfo

Constant Summary collapse

VM_CALL_ARGS_SPLAT_BIT =
(0x01 << 1)
VM_CALL_ARGS_BLOCKARG_BIT =
(0x01 << 2)
VM_CALL_FCALL_BIT =
(0x01 << 3)
VM_CALL_VCALL_BIT =
(0x01 << 4)
VM_CALL_TAILCALL_BIT =
(0x01 << 5)
VM_CALL_TAILRECURSION_BIT =
(0x01 << 6)
VM_CALL_SUPER_BIT =
(0x01 << 7)
VM_CALL_OPT_SEND_BIT =
(0x01 << 8)
SupportInstruction =
[
  :trace, :nop, :putnil, :getdynamic, :send, :leave, :putobject, :putself, :putstring, :newrange,
  :newarray, :duparray, :tostring, :concatstrings, :setdynamic, :newhash, :branchunless, :branchif, :toregexp,
  :adjuststack, :dup, :dupn, :setn, :pop, :jump, :opt_plus, :opt_minus, :opt_mult, :opt_div, :opt_mod, :opt_succ,
  :opt_lt, :opt_le, :opt_gt, :opt_ge, :opt_neq, :opt_eq, :opt_length, :opt_size, :opt_ltlt, :opt_aref, :opt_not,
  :getinlinecache, :setinlinecache, :getconstant, :swap, :topn, :concatarray, :getinstancevariable, :setinstancevariable,
  :getclassvariable, :setclassvariable, :getglobal, :setglobal, :getlocal, :setlocal, :opt_case_dispatch,
  :opt_regexpmatch1, :opt_regexpmatch2, :expandarray, :splatarray, :checkincludearray, :getspecial, :invokeblock,
  :throw, :defined,
  :cast_off_prep, :cast_off_loop, :cast_off_cont, :cast_off_finl,
  :cast_off_getlvar, :cast_off_setlvar, :cast_off_getivar, :cast_off_setivar,
  :cast_off_getcvar, :cast_off_setcvar, :cast_off_getgvar, :cast_off_setgvar,
  :cast_off_handle_optional_args, :cast_off_fetch_args, :cast_off_decl_arg, :cast_off_decl_var,
  :cast_off_getconst, :cast_off_enter_block, :cast_off_leave_block, :cast_off_continue_loop,
  :cast_off_break_block,
  :cast_off_getdvar, :cast_off_setdvar,
]
IgnoreInstruction =
[
  :trace, :setinlinecache, :nop
]
BlockSeparator =
[
  :leave, :throw, :branchunless, :jump, :branchif, :cast_off_handle_optional_args,
  :cast_off_enter_block, :cast_off_leave_block, :cast_off_continue_loop,
  :cast_off_break_block,
]
BranchInstruction =
[
  :branchunless, :jump, :branchif, :cast_off_handle_optional_args,
  :cast_off_enter_block, :cast_off_leave_block, :cast_off_continue_loop,
  :cast_off_break_block,
]
JumpOrReturnInstruction =
[
  :leave, :throw, :jump, :cast_off_handle_optional_args,
  :cast_off_enter_block, :cast_off_leave_block, 
  :cast_off_break_block,
]
TypeInfoUser =
[
  :send, :opt_plus, :opt_minus, :opt_mult, :opt_div, :opt_mod, :opt_lt, :opt_le, :opt_gt, :opt_ge, :opt_neq, :opt_eq, :opt_ltlt, :opt_aref,
  :opt_length, :opt_size, :opt_not, :opt_succ,
  :putstring, :newarray, :newhash, :duparray, :tostring, :toregexp, :concatstrings, :concatarray, :newrange, :opt_regexpmatch1, :opt_regexpmatch2,
  :expandarray, :splatarray, :checkincludearray, :getconstant, :getspecial, 
  :branchif, :branchunless, 
  :cast_off_prep, :cast_off_loop, :cast_off_finl, :cast_off_fetch_args, :cast_off_handle_optional_args
  #:opt_case_dispatch,
]

Method Summary

Methods included from Util

bug, dlog, todo, vlog