blob: 78647f30678ff632e188fb6b7662e4fb3527fb8f [file] [log] [blame] [edit]
.text
.file "/s/llvm-upstream/llvm/test/CodeGen/WebAssembly/userstack.ll"
.globl alloca32
.type alloca32,@function
alloca32:
.local i32
i32.const $push4=, 0
i32.const $push1=, 0
i32.load $push2=, __stack_pointer($pop1)
i32.const $push3=, 16
i32.sub $push9=, $pop2, $pop3
tee_local $push8=, $0=, $pop9
i32.store __stack_pointer($pop4), $pop8
i32.const $push0=, 0
i32.store 12($0), $pop0
i32.const $push7=, 0
i32.const $push5=, 16
i32.add $push6=, $0, $pop5
i32.store __stack_pointer($pop7), $pop6
return
.endfunc
.Lfunc_end0:
.size alloca32, .Lfunc_end0-alloca32
.globl alloca3264
.type alloca3264,@function
alloca3264:
.local i32
i32.const $push2=, 0
i32.load $push3=, __stack_pointer($pop2)
i32.const $push4=, 16
i32.sub $push6=, $pop3, $pop4
tee_local $push5=, $0=, $pop6
i32.const $push0=, 0
i32.store 12($pop5), $pop0
i64.const $push1=, 0
i64.store 0($0), $pop1
return
.endfunc
.Lfunc_end1:
.size alloca3264, .Lfunc_end1-alloca3264
.globl allocarray
.type allocarray,@function
allocarray:
.local i32
i32.const $push6=, 0
i32.const $push3=, 0
i32.load $push4=, __stack_pointer($pop3)
i32.const $push5=, 144
i32.sub $push12=, $pop4, $pop5
tee_local $push11=, $0=, $pop12
i32.store __stack_pointer($pop6), $pop11
i32.const $push0=, 24
i32.add $push1=, $0, $pop0
i32.const $push2=, 1
i32.store 0($pop1), $pop2
i32.const $push10=, 1
i32.store 12($0), $pop10
i32.const $push9=, 0
i32.const $push7=, 144
i32.add $push8=, $0, $pop7
i32.store __stack_pointer($pop9), $pop8
return
.endfunc
.Lfunc_end2:
.size allocarray, .Lfunc_end2-allocarray
.globl non_mem_use
.type non_mem_use,@function
non_mem_use:
.param i32
.local i32
i32.const $push3=, 0
i32.const $push0=, 0
i32.load $push1=, __stack_pointer($pop0)
i32.const $push2=, 48
i32.sub $push12=, $pop1, $pop2
tee_local $push11=, $1=, $pop12
i32.store __stack_pointer($pop3), $pop11
i32.const $push7=, 8
i32.add $push8=, $1, $pop7
call ext_func@FUNCTION, $pop8
call ext_func@FUNCTION, $1
i32.const $push9=, 16
i32.add $push10=, $1, $pop9
i32.store 0($0), $pop10
i32.const $push6=, 0
i32.const $push4=, 48
i32.add $push5=, $1, $pop4
i32.store __stack_pointer($pop6), $pop5
return
.endfunc
.Lfunc_end3:
.size non_mem_use, .Lfunc_end3-non_mem_use
.globl allocarray_inbounds
.type allocarray_inbounds,@function
allocarray_inbounds:
.local i32
i32.const $push5=, 0
i32.const $push2=, 0
i32.load $push3=, __stack_pointer($pop2)
i32.const $push4=, 32
i32.sub $push11=, $pop3, $pop4
tee_local $push10=, $0=, $pop11
i32.store __stack_pointer($pop5), $pop10
i32.const $push0=, 1
i32.store 24($0), $pop0
i32.const $push9=, 1
i32.store 12($0), $pop9
i32.const $push1=, 0
call ext_func@FUNCTION, $pop1
i32.const $push8=, 0
i32.const $push6=, 32
i32.add $push7=, $0, $pop6
i32.store __stack_pointer($pop8), $pop7
return
.endfunc
.Lfunc_end4:
.size allocarray_inbounds, .Lfunc_end4-allocarray_inbounds
.globl dynamic_alloca
.type dynamic_alloca,@function
dynamic_alloca:
.param i32
.local i32
i32.const $push6=, 0
i32.const $push7=, 0
i32.load $push14=, __stack_pointer($pop7)
tee_local $push13=, $1=, $pop14
i32.const $push0=, 2
i32.shl $push1=, $0, $pop0
i32.const $push2=, 15
i32.add $push3=, $pop1, $pop2
i32.const $push4=, -16
i32.and $push5=, $pop3, $pop4
i32.sub $push12=, $pop13, $pop5
tee_local $push11=, $0=, $pop12
copy_local $push10=, $pop11
i32.store __stack_pointer($pop6), $pop10
call ext_func_i32@FUNCTION, $0
i32.const $push8=, 0
copy_local $push9=, $1
i32.store __stack_pointer($pop8), $pop9
return
.endfunc
.Lfunc_end5:
.size dynamic_alloca, .Lfunc_end5-dynamic_alloca
.globl dynamic_alloca_redzone
.type dynamic_alloca_redzone,@function
dynamic_alloca_redzone:
.param i32
.local i32
i32.const $push7=, 0
i32.load $push11=, __stack_pointer($pop7)
tee_local $push10=, $1=, $pop11
copy_local $drop=, $pop10
i32.const $push0=, 2
i32.shl $push1=, $0, $pop0
i32.const $push2=, 15
i32.add $push3=, $pop1, $pop2
i32.const $push4=, -16
i32.and $push5=, $pop3, $pop4
i32.sub $push9=, $1, $pop5
tee_local $push8=, $0=, $pop9
copy_local $drop=, $pop8
i32.const $push6=, 0
i32.store 0($0), $pop6
return
.endfunc
.Lfunc_end6:
.size dynamic_alloca_redzone, .Lfunc_end6-dynamic_alloca_redzone
.globl dynamic_static_alloca
.type dynamic_static_alloca,@function
dynamic_static_alloca:
.param i32
.local i32, i32, i32
i32.const $push16=, 0
i32.const $push13=, 0
i32.load $push14=, __stack_pointer($pop13)
i32.const $push15=, 16
i32.sub $push32=, $pop14, $pop15
tee_local $push31=, $2=, $pop32
i32.store __stack_pointer($pop16), $pop31
copy_local $push30=, $2
tee_local $push29=, $1=, $pop30
i32.const $push0=, 101
i32.store 12($pop29), $pop0
i32.const $push11=, 0
i32.const $push1=, 2
i32.shl $push2=, $0, $pop1
i32.const $push3=, 15
i32.add $push4=, $pop2, $pop3
i32.const $push5=, -16
i32.and $push28=, $pop4, $pop5
tee_local $push27=, $0=, $pop28
i32.sub $push26=, $2, $pop27
tee_local $push25=, $2=, $pop26
copy_local $push24=, $pop25
tee_local $push23=, $3=, $pop24
i32.store __stack_pointer($pop11), $pop23
i32.const $push6=, 102
i32.store 12($1), $pop6
i32.const $push7=, 103
i32.store 0($2), $pop7
i32.const $push12=, 0
i32.sub $push22=, $3, $0
tee_local $push21=, $0=, $pop22
copy_local $push20=, $pop21
i32.store __stack_pointer($pop12), $pop20
i32.const $push8=, 104
i32.store 12($1), $pop8
i32.const $push9=, 105
i32.store 0($2), $pop9
i32.const $push10=, 106
i32.store 0($0), $pop10
i32.const $push19=, 0
i32.const $push17=, 16
i32.add $push18=, $1, $pop17
i32.store __stack_pointer($pop19), $pop18
return
.endfunc
.Lfunc_end7:
.size dynamic_static_alloca, .Lfunc_end7-dynamic_static_alloca
.globl llvm_stack_builtins
.type llvm_stack_builtins,@function
llvm_stack_builtins:
.param i32
.local i32, i32, i32
i32.const $push7=, 0
i32.load $push11=, __stack_pointer($pop7)
tee_local $push10=, $3=, $pop11
copy_local $2=, $pop10
copy_local $1=, $3
i32.const $push6=, 0
i32.const $push0=, 2
i32.shl $push1=, $0, $pop0
i32.const $push2=, 15
i32.add $push3=, $pop1, $pop2
i32.const $push4=, -16
i32.and $push5=, $pop3, $pop4
i32.sub $push9=, $3, $pop5
i32.store __stack_pointer($pop6), $pop9
copy_local $drop=, $1
i32.const $push8=, 0
i32.store __stack_pointer($pop8), $2
return
.endfunc
.Lfunc_end8:
.size llvm_stack_builtins, .Lfunc_end8-llvm_stack_builtins
.globl dynamic_alloca_nouse
.type dynamic_alloca_nouse,@function
dynamic_alloca_nouse:
.param i32
.local i32, i32
i32.const $push7=, 0
i32.load $push11=, __stack_pointer($pop7)
tee_local $push10=, $2=, $pop11
copy_local $1=, $pop10
i32.const $push6=, 0
i32.const $push0=, 2
i32.shl $push1=, $0, $pop0
i32.const $push2=, 15
i32.add $push3=, $pop1, $pop2
i32.const $push4=, -16
i32.and $push5=, $pop3, $pop4
i32.sub $push9=, $2, $pop5
i32.store __stack_pointer($pop6), $pop9
i32.const $push8=, 0
i32.store __stack_pointer($pop8), $1
return
.endfunc
.Lfunc_end9:
.size dynamic_alloca_nouse, .Lfunc_end9-dynamic_alloca_nouse
.globl copytoreg_fi
.type copytoreg_fi,@function
copytoreg_fi:
.param i32, i32
.local i32
i32.const $push0=, 0
i32.load $push1=, __stack_pointer($pop0)
i32.const $push2=, 16
i32.sub $push5=, $pop1, $pop2
i32.const $push3=, 12
i32.add $push4=, $pop5, $pop3
copy_local $2=, $pop4
i32.const $push6=, 1
i32.and $0=, $0, $pop6
.LBB10_1:
loop
i32.const $push7=, 1
i32.store 0($2), $pop7
copy_local $2=, $1
br_if 0, $0
end_loop
return
.endfunc
.Lfunc_end10:
.size copytoreg_fi, .Lfunc_end10-copytoreg_fi
.globl frameaddress_0
.type frameaddress_0,@function
frameaddress_0:
.local i32
i32.const $push0=, 0
i32.load $push2=, __stack_pointer($pop0)
copy_local $push4=, $pop2
tee_local $push3=, $0=, $pop4
call use_i8_star@FUNCTION, $pop3
i32.const $push1=, 0
i32.store __stack_pointer($pop1), $0
return
.endfunc
.Lfunc_end11:
.size frameaddress_0, .Lfunc_end11-frameaddress_0
.globl frameaddress_1
.type frameaddress_1,@function
frameaddress_1:
i32.const $push0=, 0
call use_i8_star@FUNCTION, $pop0
return
.endfunc
.Lfunc_end12:
.size frameaddress_1, .Lfunc_end12-frameaddress_1
.globl inline_asm
.type inline_asm,@function
inline_asm:
.local i32
i32.const $push0=, 0
i32.load $push1=, __stack_pointer($pop0)
i32.const $push2=, 16
i32.sub $push5=, $pop1, $pop2
i32.const $push3=, 15
i32.add $push4=, $pop5, $pop3
copy_local $0=, $pop4
#APP
# %0
#NO_APP
return
.endfunc
.Lfunc_end13:
.size inline_asm, .Lfunc_end13-inline_asm
.functype ext_func, void, i32
.functype ext_func_i32, void, i32
.functype use_i8_star, void, i32