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, ]