Files
wasmtime/filetests/parser/branch.cton
Jakob Stoklund Olesen 0b7f87b14c Convert parser tests to filetests.
Create a new directory hierarchy under 'filetests' for all the tests
that are run by 'cton-util test'.

Convert the parser tests under 'tests/parser' to use 'test cat' and
filecheck directives.
2016-09-15 15:50:47 -07:00

114 lines
2.1 KiB
Plaintext

; 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: }