fn vm_fast_send(&mut self, use_value: bool) -> InvokeResult {
        // In the case of Without keyword/block/splat/delegate arguments.
        let method_name = self.pc.read_id();
        let args_num = self.pc.read16() as usize;
        let block = self.pc.read32();
        let cache_id = self.pc.read32();
        let args = if block != 0 {
            Args2::new_with_block(args_num, Block::Block(block.into(), self.cur_frame()))
        } else {
            Args2::new(args_num as usize)
        };

        self.send(
            method_name,
            (self.sp() - args_num - 1)[0],
            &args,
            use_value,
            cache_id,
        )
    }
### return value
- VMResKind::Return
continue current context
- VMResKind::Invoke
new context
ruruby/src/vm/executor/opt_core.rs