diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/dot_s/export_malloc_free.s | 29 | ||||
-rw-r--r-- | test/dot_s/export_malloc_free.wast | 16 | ||||
-rw-r--r-- | test/dot_s/invoke_wrapper.s | 67 | ||||
-rw-r--r-- | test/dot_s/invoke_wrapper.wast | 95 | ||||
-rw-r--r-- | test/dot_s/text_before_type.s | 2 |
5 files changed, 208 insertions, 1 deletions
diff --git a/test/dot_s/export_malloc_free.s b/test/dot_s/export_malloc_free.s new file mode 100644 index 000000000..0158811a4 --- /dev/null +++ b/test/dot_s/export_malloc_free.s @@ -0,0 +1,29 @@ + .text + .file "export_malloc_free.bc" + .hidden main + .globl main + .type main,@function +main: + .result i32 + i32.const $push0=, 0 + .endfunc +.Lfunc_end1: + .size main, .Lfunc_end1-main + + .weak malloc + .type malloc,@function +malloc: + .param i32 + .result i32 + i32.const $push0=, 0 + .endfunc +.Lfunc_end20: + .size malloc, .Lfunc_end20-malloc + + .weak free + .type free,@function +free: + .param i32 + .endfunc +.Lfunc_end21: + .size free, .Lfunc_end21-free diff --git a/test/dot_s/export_malloc_free.wast b/test/dot_s/export_malloc_free.wast new file mode 100644 index 000000000..e3c2f3d6f --- /dev/null +++ b/test/dot_s/export_malloc_free.wast @@ -0,0 +1,16 @@ +(module + (memory 1) + (export "memory" memory) + (export "main" $main) + (export "malloc" $malloc) + (export "free" $free) + (func $main (result i32) + (i32.const 0) + ) + (func $malloc (param $0 i32) (result i32) + (i32.const 0) + ) + (func $free (param $0 i32) + ) +) +;; METADATA: { "asmConsts": {},"staticBump": 12, "initializers": [] } diff --git a/test/dot_s/invoke_wrapper.s b/test/dot_s/invoke_wrapper.s new file mode 100644 index 000000000..6de2f8b4c --- /dev/null +++ b/test/dot_s/invoke_wrapper.s @@ -0,0 +1,67 @@ + .text + .file "invoke_wrapper.bc" + .type _Z5func1v,@function +_Z5func1v: + .endfunc +.Lfunc_end0: + .size _Z5func1v, .Lfunc_end0-_Z5func1v + + .type _Z5func2iii,@function +_Z5func2iii: + .param i32, i32, i32 + .result i32 + i32.const $push0=, 3 + .endfunc +.Lfunc_end1: + .size _Z5func2iii, .Lfunc_end1-_Z5func2iii + + .type _Z5func3fd,@function +_Z5func3fd: + .param f32, f64 + .result f32 + f32.const $push0=, 0x1p0 + .endfunc +.Lfunc_end2: + .size _Z5func3fd, .Lfunc_end2-_Z5func3fd + + .type _Z5func4P8mystructS_,@function +_Z5func4P8mystructS_: + .param i32, i32 + .result i32 + i32.const $push0=, 0 + .endfunc +.Lfunc_end3: + .size _Z5func4P8mystructS_, .Lfunc_end3-_Z5func4P8mystructS_ + + .hidden main + .globl main + .type main,@function +main: + .result i32 + .local i32, i32, i32, i32 + i32.const $push1=, _Z5func1v@FUNCTION + call __invoke_void@FUNCTION, $pop1 + i32.const $push5=, _Z5func2iii@FUNCTION + i32.const $push4=, 1 + i32.const $push3=, 2 + i32.const $push2=, 3 + i32.call $drop=, __invoke_i32_i32_i32_i32@FUNCTION, $pop5, $pop4, $pop3, $pop2 + i32.const $push9=, _Z5func3fd@FUNCTION + f32.const $push8=, 0x1.8p0 + f64.const $push7=, 0x1.b333333333333p1 + f32.call $drop=, __invoke_float_float_double@FUNCTION, $pop9, $pop8, $pop7 + i32.const $push21=, _Z5func4P8mystructS_@FUNCTION + i32.const $push37=, 32 + i32.add $push38=, $1, $pop37 + i32.const $push39=, 4 + i32.add $push40=, $1, $pop39 + i32.call $drop=, "__invoke_%struct.mystruct*_%struct.mystruct*_%struct.mystruct*"@FUNCTION, $pop21, $pop38, $pop40 + i32.const $push23=, 0 + .endfunc +.Lfunc_end4: + .size main, .Lfunc_end4-main + + .functype __invoke_void, void, i32 + .functype __invoke_i32_i32_i32_i32, i32, i32, i32, i32, i32 + .functype __invoke_float_float_double, f32, i32, f32, f64 + .functype __invoke_%struct.mystruct*_%struct.mystruct*_%struct.mystruct*, i32, i32, i32, i32 diff --git a/test/dot_s/invoke_wrapper.wast b/test/dot_s/invoke_wrapper.wast new file mode 100644 index 000000000..6aa7a4ce6 --- /dev/null +++ b/test/dot_s/invoke_wrapper.wast @@ -0,0 +1,95 @@ +(module + (memory 1) + (export "memory" memory) + (type $FUNCSIG$vi (func (param i32))) + (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) + (type $FUNCSIG$fifd (func (param i32 f32 f64) (result f32))) + (type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32))) + (type $FUNCSIG$v (func)) + (type $FUNCSIG$ffd (func (param f32 f64) (result f32))) + (type $FUNCSIG$iii (func (param i32 i32) (result i32))) + (import $invoke_ffd "env" "invoke_ffd" (param i32 f32 f64) (result f32)) + (import $invoke_iii "env" "invoke_iii" (param i32 i32 i32) (result i32)) + (import $invoke_iiii "env" "invoke_iiii" (param i32 i32 i32 i32) (result i32)) + (import $invoke_v "env" "invoke_v" (param i32)) + (export "main" $main) + (export "dynCall_v" $dynCall_v) + (export "dynCall_iiii" $dynCall_iiii) + (export "dynCall_ffd" $dynCall_ffd) + (export "dynCall_iii" $dynCall_iii) + (table $__wasm_nullptr $_Z5func1v $_Z5func2iii $_Z5func3fd $_Z5func4P8mystructS_) + (func $_Z5func1v (type $FUNCSIG$v) + ) + (func $_Z5func2iii (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (i32.const 3) + ) + (func $_Z5func3fd (type $FUNCSIG$ffd) (param $0 f32) (param $1 f64) (result f32) + (f32.const 1) + ) + (func $_Z5func4P8mystructS_ (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (i32.const 0) + ) + (func $main (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (call_import $invoke_v + (i32.const 1) + ) + (call_import $invoke_iiii + (i32.const 2) + (i32.const 1) + (i32.const 2) + (i32.const 3) + ) + (call_import $invoke_ffd + (i32.const 3) + (f32.const 1.5) + (f64.const 3.4) + ) + (call_import $invoke_iii + (i32.const 4) + (i32.add + (get_local $1) + (i32.const 32) + ) + (i32.add + (get_local $1) + (i32.const 4) + ) + ) + (i32.const 0) + ) + (func $__wasm_nullptr (type $FUNCSIG$v) + (unreachable) + ) + (func $dynCall_v (param $fptr i32) + (call_indirect $FUNCSIG$v + (get_local $fptr) + ) + ) + (func $dynCall_iiii (param $fptr i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (call_indirect $FUNCSIG$iiii + (get_local $fptr) + (get_local $0) + (get_local $1) + (get_local $2) + ) + ) + (func $dynCall_ffd (param $fptr i32) (param $0 f32) (param $1 f64) (result f32) + (call_indirect $FUNCSIG$ffd + (get_local $fptr) + (get_local $0) + (get_local $1) + ) + ) + (func $dynCall_iii (param $fptr i32) (param $0 i32) (param $1 i32) (result i32) + (call_indirect $FUNCSIG$iii + (get_local $fptr) + (get_local $0) + (get_local $1) + ) + ) +) +;; METADATA: { "asmConsts": {},"staticBump": 12, "initializers": [] } diff --git a/test/dot_s/text_before_type.s b/test/dot_s/text_before_type.s index 7c341078a..c76ecfbed 100644 --- a/test/dot_s/text_before_type.s +++ b/test/dot_s/text_before_type.s @@ -1,5 +1,5 @@ .text - .file "/tmp/tmpGckQku/foo.bc" + .file "text_before_type.bc" .hidden main .globl main .type main,@function |