diff options
author | Alon Zakai <alonzakai@gmail.com> | 2017-03-07 13:56:35 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-07 13:56:35 -0800 |
commit | 71804e2bfd1ba49b7dd4ce82b6ad26ba13f1bca8 (patch) | |
tree | 7a91f560708b5017cf795850db94267f2cb58f62 /test/dynamicLibrary.fromasm.clamp | |
parent | a452f92aeb96e9617a20146503720cd5acb64f29 (diff) | |
download | binaryen-71804e2bfd1ba49b7dd4ce82b6ad26ba13f1bca8.tar.gz binaryen-71804e2bfd1ba49b7dd4ce82b6ad26ba13f1bca8.tar.bz2 binaryen-71804e2bfd1ba49b7dd4ce82b6ad26ba13f1bca8.zip |
Use 3 modes for potentially trapping ops in asm2wasm (#929)
* use 3 modes for potentially trapping ops in asm2wasm: allow (just emit a potentially trapping op), js (do exactly what js does, even if it takes a slow ffi to do it), and clamp (avoid the trap by clamping as necessary)
Diffstat (limited to 'test/dynamicLibrary.fromasm.clamp')
-rw-r--r-- | test/dynamicLibrary.fromasm.clamp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/test/dynamicLibrary.fromasm.clamp b/test/dynamicLibrary.fromasm.clamp new file mode 100644 index 000000000..68cea0677 --- /dev/null +++ b/test/dynamicLibrary.fromasm.clamp @@ -0,0 +1,77 @@ +(module + (type $FUNCSIG$vi (func (param i32))) + (type $FUNCSIG$ii (func (param i32) (result i32))) + (import "env" "memoryBase" (global $memoryBase i32)) + (import "env" "abortStackOverflow" (func $abortStackOverflow (param i32))) + (import "env" "_puts" (func $_puts (param i32) (result i32))) + (import "env" "memory" (memory $0 256 256)) + (import "env" "table" (table 0 0 anyfunc)) + (import "env" "tableBase" (global $tableBase i32)) + (global $STACKTOP (mut i32) (i32.const 0)) + (global $STACK_MAX (mut i32) (i32.const 0)) + (global $_global i32 (i32.const 5242912)) + (data (get_global $memoryBase) "dynamicLibrary.asm.js") + (export "__ZN3FooC2Ev" (func $__ZN3FooC2Ev)) + (export "__post_instantiate" (func $__post_instantiate)) + (export "runPostSets" (func $runPostSets)) + (export "_global" (global $_global)) + (func $___cxx_global_var_init + (call $__ZN3FooC2Ev + (i32.add + (get_global $memoryBase) + (i32.const 5242912) + ) + ) + ) + (func $__ZN3FooC2Ev (param $0 i32) + (local $1 i32) + (set_local $1 + (get_global $STACKTOP) + ) + (set_global $STACKTOP + (i32.add + (get_global $STACKTOP) + (i32.const 16) + ) + ) + (if + (i32.ge_s + (get_global $STACKTOP) + (get_global $STACK_MAX) + ) + (call $abortStackOverflow + (i32.const 16) + ) + ) + (drop + (call $_puts + (get_global $memoryBase) + ) + ) + (set_global $STACKTOP + (get_local $1) + ) + ) + (func $__GLOBAL__sub_I_liblib_cpp + (call $___cxx_global_var_init) + ) + (func $runPostSets + (nop) + ) + (func $__post_instantiate + (set_global $STACKTOP + (i32.add + (get_global $memoryBase) + (i32.const 32) + ) + ) + (set_global $STACK_MAX + (i32.add + (get_global $STACKTOP) + (i32.const 5242880) + ) + ) + (call $runPostSets) + (call $__GLOBAL__sub_I_liblib_cpp) + ) +) |