; Parsing branches and jumps. test cat ; Jumps with no arguments. The '()' empty argument list is optional. function minimal() { ebb0: jump ebb1 ebb1: jump ebb0() } ; sameln: function minimal() { ; nextln: ebb0: ; nextln: jump ebb1 ; nextln: ; nextln: ebb1: ; nextln: jump ebb0 ; nextln: } ; Jumps with 1 arg. function onearg(i32) { ebb0(vx0: i32): jump ebb1(vx0) ebb1(vx1: i32): jump ebb0(vx1) } ; sameln: function onearg(i32) { ; nextln: ebb0(vx0: i32): ; nextln: jump ebb1(vx0) ; nextln: ; nextln: ebb1(vx1: i32): ; nextln: jump ebb0(vx1) ; nextln: } ; Jumps with 2 args. function twoargs(i32, f32) { ebb0(vx0: i32, vx1: f32): jump ebb1(vx0, vx1) ebb1(vx2: i32, vx3: f32): jump ebb0(vx2, vx3) } ; sameln: function twoargs(i32, f32) { ; nextln: ebb0(vx0: i32, vx1: f32): ; nextln: jump ebb1(vx0, vx1) ; nextln: ; nextln: ebb1(vx2: i32, vx3: f32): ; nextln: jump ebb0(vx2, vx3) ; nextln: } ; Branches with no arguments. The '()' empty argument list is optional. function minimal(i32) { ebb0(vx0: i32): brz vx0, ebb1 ebb1: brnz vx0, ebb1() } ; sameln: function minimal(i32) { ; nextln: ebb0(vx0: i32): ; nextln: brz vx0, ebb1 ; nextln: ; nextln: ebb1: ; nextln: brnz vx0, ebb1 ; nextln: } function twoargs(i32, f32) { ebb0(vx0: i32, vx1: f32): brz vx0, ebb1(vx0, vx1) ebb1(vx2: i32, vx3: f32): brnz vx0, ebb0(vx2, vx3) } ; sameln: function twoargs(i32, f32) { ; nextln: ebb0(vx0: i32, vx1: f32): ; nextln: brz vx0, ebb1(vx0, vx1) ; nextln: ; nextln: ebb1(vx2: i32, vx3: f32): ; nextln: brnz vx0, ebb0(vx2, vx3) ; nextln: } function jumptable(i32) { jt200 = jump_table 0, 0 jt2 = jump_table 0, 0, ebb10, ebb40, ebb20, ebb30 ebb10(v3: i32): br_table v3, jt2 trap ebb20: trap ebb30: trap ebb40: trap } ; sameln: function jumptable(i32) { ; nextln: jt0 = jump_table 0 ; nextln: jt1 = jump_table 0, 0, ebb0, ebb3, ebb1, ebb2 ; nextln: ; nextln: ebb0(vx0: i32): ; nextln: br_table vx0, jt1 ; nextln: trap ; nextln: ; nextln: ebb1: ; nextln: trap ; nextln: ; nextln: ebb2: ; nextln: trap ; nextln: ; nextln: ebb3: ; nextln: trap ; nextln: }