```rust function %foo(i32) system_v { ; list of alternative targets for the invoke outside of the control of Cranelift. ; compilation will result in a list of offsets to the start of these blocks jt0 = jump_table [block2] sig0 = () system_v sig1 = (i64) system_v fn0 = %bar sig0 fn1 = %_Unwind_Resume sig1 block0(v0: i32): invoke fn0, block1, jt0 block1: return ; All registers specified as callee-saved by the base ABI are restored, as well as scratch registers ; %rdi,%rsi,%rdx,%rcx(see below). Except for those exceptions, scratch (or caller-saved) registers ; are not preserved, and their contents are undefined on transfer. ; up to four args passed in %rdi, %rsi, %rdx, %rcx ; panic_unwind passes the exception_object pointer as the first arg and no additional arguments block2(v1: i64) eh_landing_pad: ; eh_landing_pad is the "block entry abi" ; do cleanup work. all values accessible at the invoke are also accessible here tail_call fn1(v1) } ```