; 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() native { ; nextln: ebb0: ; nextln: jump ebb1 ; nextln: ; nextln: ebb1: ; nextln: jump ebb0 ; nextln: } ; Jumps with 1 arg. function %onearg(i32) { ebb0(v90: i32): jump ebb1(v90) ebb1(v91: i32): jump ebb0(v91) } ; sameln: function %onearg(i32) native { ; nextln: ebb0($v90: i32): ; nextln: jump ebb1($v90) ; nextln: ; nextln: ebb1($v91: i32): ; nextln: jump ebb0($v91) ; nextln: } ; Jumps with 2 args. function %twoargs(i32, f32) { ebb0(v90: i32, v91: f32): jump ebb1(v90, v91) ebb1(v92: i32, v93: f32): jump ebb0(v92, v93) } ; sameln: function %twoargs(i32, f32) native { ; nextln: ebb0($v90: i32, $v91: f32): ; nextln: jump ebb1($v90, $v91) ; nextln: ; nextln: ebb1($v92: i32, $v93: f32): ; nextln: jump ebb0($v92, $v93) ; nextln: } ; Branches with no arguments. The '()' empty argument list is optional. function %minimal(i32) { ebb0(v90: i32): brz v90, ebb1 ebb1: brnz v90, ebb1() } ; sameln: function %minimal(i32) native { ; nextln: ebb0($v90: i32): ; nextln: brz $v90, ebb1 ; nextln: ; nextln: ebb1: ; nextln: brnz.i32 $v90, ebb1 ; nextln: } function %twoargs(i32, f32) { ebb0(v90: i32, v91: f32): brz v90, ebb1(v90, v91) ebb1(v92: i32, v93: f32): brnz v90, ebb0(v92, v93) } ; sameln: function %twoargs(i32, f32) native { ; nextln: ebb0($v90: i32, $v91: f32): ; nextln: brz $v90, ebb1($v90, $v91) ; nextln: ; nextln: ebb1($v92: i32, $v93: f32): ; nextln: brnz.i32 $v90, ebb0($v92, $v93) ; 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) native { ; nextln: jt0 = jump_table 0 ; nextln: jt1 = jump_table 0, 0, ebb0, ebb3, ebb1, ebb2 ; nextln: ; nextln: ebb0($v3: i32): ; nextln: br_table $v3, jt1 ; nextln: trap ; nextln: ; nextln: ebb1: ; nextln: trap ; nextln: ; nextln: ebb2: ; nextln: trap ; nextln: ; nextln: ebb3: ; nextln: trap ; nextln: }