# Difficult stuff, that hasn't been tested sufficiently adequately to support

(template: return
  (do 3
       (callv (^func &MVM_args_assert_void_return_ok)
             (arglist
                  (carg (tc) ptr)
                  (carg (const 0 int_sz) int)))
       (callv (^func &MVM_frame_try_return)
              (arglist 1 (carg (tc) ptr)))
       (^exit)))


(macro: ^throw_adhoc (,msg)
   (die (^func &MVM_exception_throw_adhoc)
        (arglist 2 (carg (tc) ptr)
                    (carg (const ,msg ptr_sz) ptr))))

# These properly yield a flag, not a register value.
# I maybe want to add a flag-to-register op


