.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