Files
wasmtime/cranelift/filetests/filetests/isa/s390x/stack-limit.clif
Trevor Elliott cc073593a4 Fix block label printing in precise-output tests (#5798)
As a follow-up to #5780, disassemble the regions identified by bb_starts, falling back on disassembling the whole buffer. This ensures that instructions like br_table that introduce a lot of constants don't throw off capstone for the remainder of the function.

---------

Co-authored-by: Jamey Sharp <jamey@minilop.net>
2023-02-16 02:35:26 +00:00

324 lines
6.0 KiB
Plaintext

test compile precise-output
target s390x
function %foo() {
block0:
return
}
; VCode:
; block0:
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; br %r14
function %stack_limit_leaf_zero(i64 stack_limit) {
block0(v0: i64):
return
}
; VCode:
; block0:
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; br %r14
function %stack_limit_gv_leaf_zero(i64 vmctx) {
gv0 = vmctx
gv1 = load.i64 notrap aligned gv0
gv2 = load.i64 notrap aligned gv1+4
stack_limit = gv2
block0(v0: i64):
return
}
; VCode:
; block0:
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; br %r14
function %stack_limit_call_zero(i64 stack_limit) {
fn0 = %foo()
block0(v0: i64):
call fn0()
return
}
; VCode:
; clgrtle %r15, %r2
; stmg %r14, %r15, 112(%r15)
; aghi %r15, -160
; virtual_sp_offset_adjust 160
; block0:
; bras %r1, 12 ; data %foo + 0 ; lg %r4, 0(%r1)
; basr %r14, %r4
; lmg %r14, %r15, 272(%r15)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; clgrtle %r15, %r2 ; trap: stk_ovf
; stmg %r14, %r15, 0x70(%r15)
; aghi %r15, -0xa0
; block1: ; offset 0xe
; bras %r1, 0x1a
; .byte 0x00, 0x00 ; reloc_external Abs8 %foo 0
; .byte 0x00, 0x00
; .byte 0x00, 0x00
; .byte 0x00, 0x00
; lg %r4, 0(%r1)
; basr %r14, %r4
; lmg %r14, %r15, 0x110(%r15)
; br %r14
function %stack_limit_gv_call_zero(i64 vmctx) {
gv0 = vmctx
gv1 = load.i64 notrap aligned gv0
gv2 = load.i64 notrap aligned gv1+4
stack_limit = gv2
fn0 = %foo()
block0(v0: i64):
call fn0()
return
}
; VCode:
; lg %r1, 0(%r2)
; lg %r1, 4(%r1)
; clgrtle %r15, %r1
; stmg %r14, %r15, 112(%r15)
; aghi %r15, -160
; virtual_sp_offset_adjust 160
; block0:
; bras %r1, 12 ; data %foo + 0 ; lg %r4, 0(%r1)
; basr %r14, %r4
; lmg %r14, %r15, 272(%r15)
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; lg %r1, 0(%r2)
; lg %r1, 4(%r1)
; clgrtle %r15, %r1 ; trap: stk_ovf
; stmg %r14, %r15, 0x70(%r15)
; aghi %r15, -0xa0
; block1: ; offset 0x1a
; bras %r1, 0x26
; .byte 0x00, 0x00 ; reloc_external Abs8 %foo 0
; .byte 0x00, 0x00
; .byte 0x00, 0x00
; .byte 0x00, 0x00
; lg %r4, 0(%r1)
; basr %r14, %r4
; lmg %r14, %r15, 0x110(%r15)
; br %r14
function %stack_limit(i64 stack_limit) {
ss0 = explicit_slot 168
block0(v0: i64):
return
}
; VCode:
; la %r1, 168(%r2)
; clgrtle %r15, %r1
; aghi %r15, -168
; block0:
; aghi %r15, 168
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; la %r1, 0xa8(%r2)
; clgrtle %r15, %r1 ; trap: stk_ovf
; aghi %r15, -0xa8
; block1: ; offset 0xc
; aghi %r15, 0xa8
; br %r14
function %large_stack_limit(i64 stack_limit) {
ss0 = explicit_slot 400000
block0(v0: i64):
return
}
; VCode:
; clgrtle %r15, %r2
; lay %r1, 400000(%r2)
; clgrtle %r15, %r1
; agfi %r15, -400000
; block0:
; agfi %r15, 400000
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; clgrtle %r15, %r2 ; trap: stk_ovf
; lay %r1, 0x61a80(%r2)
; clgrtle %r15, %r1 ; trap: stk_ovf
; agfi %r15, -0x61a80
; block1: ; offset 0x14
; agfi %r15, 0x61a80
; br %r14
function %huge_stack_limit(i64 stack_limit) {
ss0 = explicit_slot 4000000
block0(v0: i64):
return
}
; VCode:
; clgrtle %r15, %r2
; lgr %r1, %r2
; algfi %r1, 4000000
; clgrtle %r15, %r1
; agfi %r15, -4000000
; block0:
; agfi %r15, 4000000
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; clgrtle %r15, %r2 ; trap: stk_ovf
; lgr %r1, %r2
; algfi %r1, 0x3d0900
; clgrtle %r15, %r1 ; trap: stk_ovf
; agfi %r15, -0x3d0900
; block1: ; offset 0x18
; agfi %r15, 0x3d0900
; br %r14
function %limit_preamble(i64 vmctx) {
gv0 = vmctx
gv1 = load.i64 notrap aligned gv0
gv2 = load.i64 notrap aligned gv1+4
stack_limit = gv2
ss0 = explicit_slot 20
block0(v0: i64):
return
}
; VCode:
; lg %r1, 0(%r2)
; lg %r1, 4(%r1)
; la %r1, 24(%r1)
; clgrtle %r15, %r1
; aghi %r15, -24
; block0:
; aghi %r15, 24
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; lg %r1, 0(%r2)
; lg %r1, 4(%r1)
; la %r1, 0x18(%r1)
; clgrtle %r15, %r1 ; trap: stk_ovf
; aghi %r15, -0x18
; block1: ; offset 0x18
; aghi %r15, 0x18
; br %r14
function %limit_preamble_large(i64 vmctx) {
gv0 = vmctx
gv1 = load.i64 notrap aligned gv0
gv2 = load.i64 notrap aligned gv1+4
stack_limit = gv2
ss0 = explicit_slot 400000
block0(v0: i64):
return
}
; VCode:
; lg %r1, 0(%r2)
; lg %r1, 4(%r1)
; clgrtle %r15, %r1
; lay %r1, 400000(%r1)
; clgrtle %r15, %r1
; agfi %r15, -400000
; block0:
; agfi %r15, 400000
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; lg %r1, 0(%r2)
; lg %r1, 4(%r1)
; clgrtle %r15, %r1 ; trap: stk_ovf
; lay %r1, 0x61a80(%r1)
; clgrtle %r15, %r1 ; trap: stk_ovf
; agfi %r15, -0x61a80
; block1: ; offset 0x20
; agfi %r15, 0x61a80
; br %r14
function %limit_preamble_huge(i64 vmctx) {
gv0 = vmctx
gv1 = load.i64 notrap aligned gv0
gv2 = load.i64 notrap aligned gv1+4
stack_limit = gv2
ss0 = explicit_slot 4000000
block0(v0: i64):
return
}
; VCode:
; lg %r1, 0(%r2)
; lg %r1, 4(%r1)
; clgrtle %r15, %r1
; algfi %r1, 4000000
; clgrtle %r15, %r1
; agfi %r15, -4000000
; block0:
; agfi %r15, 4000000
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; lg %r1, 0(%r2)
; lg %r1, 4(%r1)
; clgrtle %r15, %r1 ; trap: stk_ovf
; algfi %r1, 0x3d0900
; clgrtle %r15, %r1 ; trap: stk_ovf
; agfi %r15, -0x3d0900
; block1: ; offset 0x20
; agfi %r15, 0x3d0900
; br %r14
function %limit_preamble_huge_offset(i64 vmctx) {
gv0 = vmctx
gv1 = load.i64 notrap aligned gv0+1000000
stack_limit = gv1
ss0 = explicit_slot 20
block0(v0: i64):
return
}
; VCode:
; lgfi %r1, 1000000 ; lg %r1, 0(%r1,%r2)
; la %r1, 24(%r1)
; clgrtle %r15, %r1
; aghi %r15, -24
; block0:
; aghi %r15, 24
; br %r14
;
; Disassembled:
; block0: ; offset 0x0
; lgfi %r1, 0xf4240
; lg %r1, 0(%r1, %r2)
; la %r1, 0x18(%r1)
; clgrtle %r15, %r1 ; trap: stk_ovf
; aghi %r15, -0x18
; block1: ; offset 0x18
; aghi %r15, 0x18
; br %r14