# *** This file is generated by InstructionParser ***

module CodeTools
  module GeneratorMethods
      def add_scope
        @stream << 0
        @ip += 1
        @current_block.add_stack(1, 0)
        @instruction = 0
      end

      def allow_private
        @stream << 1
        @ip += 1
        @current_block.add_stack(0, 0)
        @instruction = 1
      end

      def cast_array
        unless @instruction == 2 or @instruction == 29
          @stream << 2
          @ip += 1
        end
        @instruction = 2
      end

      def cast_for_multi_block_arg
        @stream << 3
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 3
      end

      def cast_for_single_block_arg
        @stream << 4
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 4
      end

      def cast_for_splat_block_arg
        @stream << 5
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 5
      end

      def cast_multi_value
        @stream << 6
        @ip += 1
        @current_block.add_stack(1, 1)
        @instruction = 6
      end

      def check_frozen
        @stream << 7
        @ip += 1
        @current_block.add_stack(1, 1)
        @instruction = 7
      end

      def check_interrupts
        @stream << 8
        @ip += 1
        @current_block.add_stack(0, 0)
        @instruction = 8
      end

      def check_serial(arg1, arg2)
        arg1 = find_literal(arg1)
        @stream << 9 << arg1 << arg2
        @ip += 3
        @current_block.add_stack(1, 1)
        @instruction = 9
      end

      def check_serial_private(arg1, arg2)
        arg1 = find_literal(arg1)
        @stream << 10 << arg1 << arg2
        @ip += 3
        @current_block.add_stack(1, 1)
        @instruction = 10
      end

      def clear_exception
        @stream << 11
        @ip += 1
        @current_block.add_stack(0, 0)
        @instruction = 11
      end

      def create_block(arg1)
        arg1 = add_generator(arg1)
        @stream << 12 << arg1
        @ip += 2
        @current_block.add_stack(0, 1)
        @instruction = 12
      end

      def dup
        @stream << 13
        @ip += 1
        @current_block.add_stack(1, 2)
        @instruction = 13
      end

      def dup_many(arg1)
        arg1 = Integer(arg1)
        @stream << 14 << arg1
        @ip += 2
        @current_block.add_stack(arg1, (arg1 * 2))
        @instruction = 14
      end

      def ensure_return
        @stream << 15
        @ip += 1
        @current_block.add_stack(1, 1)
        @current_block.close true
        @current_block = new_basic_block
        @instruction = 15
      end

      def find_const(arg1)
        arg1 = find_literal(arg1)
        @stream << 16 << arg1
        @ip += 2
        @current_block.add_stack(1, 1)
        @instruction = 16
      end

      def goto(arg1)
        location = @ip + 1
        @stream << 17 << arg1
        @ip += 2
        arg1.used_at location
        @current_block.add_stack(0, 0)
        @current_block.left = arg1.basic_block
        @current_block.close
        @current_block = new_basic_block
        @instruction = 17
      end

      def goto_if_equal(arg1)
        location = @ip + 1
        @stream << 18 << arg1
        @ip += 2
        arg1.used_at location
        @current_block.add_stack(2, 0)
        @current_block.left = arg1.basic_block
        @current_block.close
        block = new_basic_block
        @current_block.right = block
        @current_block = block
        @instruction = 18
      end

      def goto_if_false(arg1)
        location = @ip + 1
        @stream << 19 << arg1
        @ip += 2
        arg1.used_at location
        @current_block.add_stack(1, 0)
        @current_block.left = arg1.basic_block
        @current_block.close
        block = new_basic_block
        @current_block.right = block
        @current_block = block
        @instruction = 19
      end

      def goto_if_nil(arg1)
        location = @ip + 1
        @stream << 20 << arg1
        @ip += 2
        arg1.used_at location
        @current_block.add_stack(1, 0)
        @current_block.left = arg1.basic_block
        @current_block.close
        block = new_basic_block
        @current_block.right = block
        @current_block = block
        @instruction = 20
      end

      def goto_if_not_equal(arg1)
        location = @ip + 1
        @stream << 21 << arg1
        @ip += 2
        arg1.used_at location
        @current_block.add_stack(2, 0)
        @current_block.left = arg1.basic_block
        @current_block.close
        block = new_basic_block
        @current_block.right = block
        @current_block = block
        @instruction = 21
      end

      def goto_if_not_nil(arg1)
        location = @ip + 1
        @stream << 22 << arg1
        @ip += 2
        arg1.used_at location
        @current_block.add_stack(1, 0)
        @current_block.left = arg1.basic_block
        @current_block.close
        block = new_basic_block
        @current_block.right = block
        @current_block = block
        @instruction = 22
      end

      def goto_if_not_undefined(arg1)
        location = @ip + 1
        @stream << 23 << arg1
        @ip += 2
        arg1.used_at location
        @current_block.add_stack(1, 0)
        @current_block.left = arg1.basic_block
        @current_block.close
        block = new_basic_block
        @current_block.right = block
        @current_block = block
        @instruction = 23
      end

      def goto_if_true(arg1)
        location = @ip + 1
        @stream << 24 << arg1
        @ip += 2
        arg1.used_at location
        @current_block.add_stack(1, 0)
        @current_block.left = arg1.basic_block
        @current_block.close
        block = new_basic_block
        @current_block.right = block
        @current_block = block
        @instruction = 24
      end

      def goto_if_undefined(arg1)
        location = @ip + 1
        @stream << 25 << arg1
        @ip += 2
        arg1.used_at location
        @current_block.add_stack(1, 0)
        @current_block.left = arg1.basic_block
        @current_block.close
        block = new_basic_block
        @current_block.right = block
        @current_block = block
        @instruction = 25
      end

      def instance_of
        @stream << 26
        @ip += 1
        @current_block.add_stack(2, 1)
        @instruction = 26
      end

      def invoke_primitive(arg1, arg2)
        arg1 = find_literal(arg1)
        arg2 = Integer(arg2)
        @stream << 27 << arg1 << arg2
        @ip += 3
        @current_block.add_stack(arg2, 1)
        @instruction = 27
      end

      def kind_of
        @stream << 28
        @ip += 1
        @current_block.add_stack(2, 1)
        @instruction = 28
      end

      def make_array(arg1)
        arg1 = Integer(arg1)
        @stream << 29 << arg1
        @ip += 2
        @current_block.add_stack(arg1, 1)
        @instruction = 29
      end

      def move_down(arg1)
        @stream << 30 << arg1
        @ip += 2
        @current_block.add_stack(arg1, (arg1 * 1))
        @instruction = 30
      end

      def noop
        @stream << 31
        @ip += 1
        @current_block.add_stack(0, 0)
        @instruction = 31
      end

      def object_to_s(arg1)
        arg1 = find_literal(arg1)
        @stream << 32 << arg1
        @ip += 2
        @current_block.add_stack(1, 1)
        @instruction = 32
      end

      def passed_arg(arg1)
        @stream << 33 << arg1
        @ip += 2
        @current_block.add_stack(0, 1)
        @instruction = 33
      end

      def passed_blockarg(arg1)
        arg1 = Integer(arg1)
        @stream << 34 << arg1
        @ip += 2
        @current_block.add_stack(0, 1)
        @instruction = 34
      end

      def pop
        @stream << 35
        @ip += 1
        @current_block.add_stack(1, 0)
        @instruction = 35
      end

      def pop_many(arg1)
        arg1 = Integer(arg1)
        @stream << 36 << arg1
        @ip += 2
        @current_block.add_stack(arg1, 0)
        @instruction = 36
      end

      def pop_unwind
        @stream << 37
        @ip += 1
        @current_block.add_stack(0, 0)
        @instruction = 37
      end

      def push_block
        @stream << 38
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 38
      end

      def push_block_arg
        @stream << 39
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 39
      end

      def push_const(arg1)
        arg1 = find_literal(arg1)
        @stream << 40 << arg1
        @ip += 2
        @current_block.add_stack(0, 1)
        @instruction = 40
      end

      def push_cpath_top
        @stream << 41
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 41
      end

      def push_current_exception
        @stream << 42
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 42
      end

      def push_exception_state
        @stream << 43
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 43
      end

      def push_false
        @stream << 44
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 44
      end

      def push_has_block
        @stream << 45
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 45
      end

      def push_int(arg1)
        @stream << 46 << arg1
        @ip += 2
        @current_block.add_stack(0, 1)
        @instruction = 46
      end

      def push_ivar(arg1)
        arg1 = find_literal(arg1)
        @stream << 47 << arg1
        @ip += 2
        @current_block.add_stack(0, 1)
        @instruction = 47
      end

      def emit_push_literal(arg1)
        @stream << 48 << arg1
        @ip += 2
        @current_block.add_stack(0, 1)
        @instruction = 48
      end

      def push_local(arg1)
        @stream << 49 << arg1
        @ip += 2
        @current_block.add_stack(0, 1)
        @instruction = 49
      end

      def push_local_depth(arg1, arg2)
        @stream << 50 << arg1 << arg2
        @ip += 3
        @current_block.add_stack(0, 1)
        @instruction = 50
      end

      def push_memo(arg1)
        arg1 = find_literal(arg1)
        @stream << 51 << arg1
        @ip += 2
        @current_block.add_stack(1, 1)
        @instruction = 51
      end

      def push_mirror
        @stream << 52
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 52
      end

      def push_my_field(arg1)
        @stream << 53 << arg1
        @ip += 2
        @current_block.add_stack(0, 1)
        @instruction = 53
      end

      def push_my_offset(arg1)
        @stream << 54 << arg1
        @ip += 2
        @current_block.add_stack(0, 1)
        @instruction = 54
      end

      def push_nil
        @stream << 55
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 55
      end

      def push_proc
        @stream << 56
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 56
      end

      def push_rubinius
        @stream << 57
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 57
      end

      def push_scope
        @stream << 58
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 58
      end

      def push_self
        @stream << 59
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 59
      end

      def push_stack_local(arg1)
        @stream << 60 << arg1
        @ip += 2
        @current_block.add_stack(0, 1)
        @instruction = 60
      end

      def push_true
        @stream << 61
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 61
      end

      def push_type
        @stream << 62
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 62
      end

      def push_undef
        @stream << 63
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 63
      end

      def push_variables
        @stream << 64
        @ip += 1
        @current_block.add_stack(0, 1)
        @instruction = 64
      end

      def raise_break
        @stream << 65
        @ip += 1
        @current_block.add_stack(1, 1)
        @current_block.close false
        @current_block = new_basic_block
        @instruction = 65
      end

      def raise_exc
        @stream << 66
        @ip += 1
        @current_block.add_stack(1, 0)
        @current_block.close false
        @current_block = new_basic_block
        @instruction = 66
      end

      def raise_return
        @stream << 67
        @ip += 1
        @current_block.add_stack(1, 1)
        @current_block.close true
        @current_block = new_basic_block
        @instruction = 67
      end

      def reraise
        @stream << 68
        @ip += 1
        @current_block.add_stack(0, 0)
        @current_block.close false
        @current_block = new_basic_block
        @instruction = 68
      end

      def restore_exception_state
        @stream << 69
        @ip += 1
        @current_block.add_stack(1, 0)
        @instruction = 69
      end

      def ret
        @stream << 70
        @ip += 1
        @current_block.add_stack(1, 1)
        @current_block.close true
        @current_block = new_basic_block
        @instruction = 70
      end

      def rotate(arg1)
        arg1 = Integer(arg1)
        @stream << 71 << arg1
        @ip += 2
        @current_block.add_stack(arg1, (arg1 * 1))
        @instruction = 71
      end

      def run_exception
        @stream << 72
        @ip += 1
        @current_block.add_stack(0, 0)
        @instruction = 72
      end

      def send_method(arg1)
        arg1 = find_literal(arg1)
        @stream << 73 << arg1
        @ip += 2
        @current_block.add_stack(1, 1)
        @instruction = 73
      end

      def send_stack(arg1, arg2)
        arg1 = find_literal(arg1)
        arg2 = Integer(arg2)
        @stream << 74 << arg1 << arg2
        @ip += 3
        @current_block.add_stack(arg2+1, 1)
        @instruction = 74
      end

      def send_stack_with_block(arg1, arg2)
        arg1 = find_literal(arg1)
        arg2 = Integer(arg2)
        @stream << 75 << arg1 << arg2
        @ip += 3
        @current_block.add_stack(arg2+2, 1)
        @instruction = 75
      end

      def send_stack_with_splat(arg1, arg2)
        arg1 = find_literal(arg1)
        arg2 = Integer(arg2)
        @stream << 76 << arg1 << arg2
        @ip += 3
        @current_block.add_stack(arg2+3, 1)
        @instruction = 76
      end

      def send_super_stack_with_block(arg1, arg2)
        arg1 = find_literal(arg1)
        arg2 = Integer(arg2)
        @stream << 77 << arg1 << arg2
        @ip += 3
        @current_block.add_stack(arg2+1, 1)
        @instruction = 77
      end

      def send_super_stack_with_splat(arg1, arg2)
        arg1 = find_literal(arg1)
        arg2 = Integer(arg2)
        @stream << 78 << arg1 << arg2
        @ip += 3
        @current_block.add_stack(arg2+2, 1)
        @instruction = 78
      end

      def send_vcall(arg1)
        arg1 = find_literal(arg1)
        @stream << 79 << arg1
        @ip += 2
        @current_block.add_stack(0, 1)
        @instruction = 79
      end

      def set_call_flags(arg1)
        @stream << 80 << arg1
        @ip += 2
        @current_block.add_stack(0, 0)
        @instruction = 80
      end

      def set_const(arg1)
        arg1 = find_literal(arg1)
        @stream << 81 << arg1
        @ip += 2
        @current_block.add_stack(1, 1)
        @instruction = 81
      end

      def set_const_at(arg1)
        arg1 = find_literal(arg1)
        @stream << 82 << arg1
        @ip += 2
        @current_block.add_stack(2, 1)
        @instruction = 82
      end

      def set_ivar(arg1)
        arg1 = find_literal(arg1)
        @stream << 83 << arg1
        @ip += 2
        @current_block.add_stack(1, 1)
        @instruction = 83
      end

      def set_local(arg1)
        @stream << 84 << arg1
        @ip += 2
        @current_block.add_stack(1, 1)
        @instruction = 84
      end

      def set_local_depth(arg1, arg2)
        @stream << 85 << arg1 << arg2
        @ip += 3
        @current_block.add_stack(1, 1)
        @instruction = 85
      end

      def set_stack_local(arg1)
        @stream << 86 << arg1
        @ip += 2
        @current_block.add_stack(1, 1)
        @instruction = 86
      end

      def setup_unwind(arg1, arg2)
        location = @ip + 1
        @stream << 87 << arg1 << arg2
        @ip += 3
        arg1.used_at location
        @current_block.add_stack(0, 0)
        @current_block.left = arg1.basic_block
        @current_block.close
        block = new_basic_block
        @current_block.right = block
        @current_block = block
        @instruction = 87
      end

      def shift_array
        @stream << 88
        @ip += 1
        @current_block.add_stack(1, 2)
        @instruction = 88
      end

      def store_my_field(arg1)
        @stream << 89 << arg1
        @ip += 2
        @current_block.add_stack(1, 1)
        @instruction = 89
      end

      def string_append
        @stream << 90
        @ip += 1
        @current_block.add_stack(2, 1)
        @instruction = 90
      end

      def string_build(arg1)
        arg1 = Integer(arg1)
        @stream << 91 << arg1
        @ip += 2
        @current_block.add_stack(arg1, 1)
        @instruction = 91
      end

      def string_dup
        @stream << 92
        @ip += 1
        @current_block.add_stack(1, 1)
        @instruction = 92
      end

      def swap
        @stream << 93
        @ip += 1
        @current_block.add_stack(2, 2)
        @instruction = 93
      end

      def yield_debugger
        @stream << 94
        @ip += 1
        @current_block.add_stack(0, 0)
        @instruction = 94
      end

      def yield_splat(arg1)
        arg1 = Integer(arg1)
        @stream << 95 << arg1
        @ip += 2
        @current_block.add_stack(arg1+1, 1)
        @instruction = 95
      end

      def yield_stack(arg1)
        arg1 = Integer(arg1)
        @stream << 96 << arg1
        @ip += 2
        @current_block.add_stack(arg1, 1)
        @instruction = 96
      end

      def zsuper(arg1)
        arg1 = find_literal(arg1)
        @stream << 97 << arg1
        @ip += 2
        @current_block.add_stack(1, 1)
        @instruction = 97
      end

  end
end
