Commit Graph

60 Commits

Author SHA1 Message Date
Wenyong Huang
fe76ce3b68
Update global initialization process for latest spec cases () 2021-03-02 18:24:15 +08:00
Xu Jun
370cc83fbd
Fix loader fail to lookup registered native symbol issue () 2021-02-19 11:14:40 +08:00
Wenyong Huang
a5188f5574
Add checks to avoid wasm_runtime_malloc memory with size 0 ()
In some platforms, allocating memory with size 0 may return NULL but not an empty memory block, which causes runtime load, instantiate or execute wasm/aot file failed. We add checks to try to avoid allocating memory in runtime if the size is 0. And in wasm_runtime_malloc/free, output warning if allocate memory with size 0 and free memory with NULL ptr.
Also fix some coding style issues, fix handle riscv32 ilp32d issue, and fix several wasm-c-api issues.

Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
2021-01-28 16:16:02 +08:00
Wenyong Huang
8a477786f1
Remove unused block_addr_cache buffer in wasm loader ()
And fix possible memory leak issue in aot loader when apply relocation failed.

Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
2021-01-08 19:11:12 +08:00
Wenyong Huang
788cbf2a19
Refine aot call_indirect opcode translation ()
Re-implement aot call_indirect opcode translation: when calling non-import function, translate it by LLVM call IR to call the function in AOTed code, so as to avoid calling runtime aot_call_indirect API which is much slower. For import function, keep calling aot_call_indirect API due to the possible pointer/string argument conversion.

And add prompt info while app heap is corrupted, change emit_leb to emit_uint32 inter fast-interp to refine footprint.

Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
2021-01-05 18:05:30 +08:00
Wenyong Huang
724858c731
Update wasm app build scripts for wasi-sdk-12 and refine interpreter ()
Update wasm app build scripts for wasi-sdk-12.0: add --export=__main_argc_argv, remove --no-threads
Lookup function with name "__main_argc_argv" as main function besides "main"
Change module_malloc to runtime_malloc in wasi native lib
Refine classic interpreter op_block and op_br_table
Refine faster interpreter op_br_table

Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
2020-12-28 10:46:31 +08:00
Wenyong Huang
ad35c3c21b
Implement SIMD float ceil/floor/trunc/nearest opcodes ()
Implement SIMD f32x4/f64x2 ceil/floor/trunc/nearest opcodes

Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
2020-12-16 15:33:25 +08:00
Wenyong Huang
16e6f41b3a
Fix wamr compiler issues and refine some error messages ()
Fix potential memory leak issue when using llvm::EngineBuilder().selectTarget()
Fix issue of accessing aot_value's fields after it is freed
Fix JIT not print failed to link import warning
Change some error messages: 'fail to' to 'failed to'
Update error message when SIMD isn't enabled
Fix install littlevgl wasm app of wasi version failed

Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
2020-12-15 13:05:39 +08:00
Xu Jun
a84d51271c
Support AssemblyScript's new/retain/release APIs () 2020-12-07 16:37:49 +08:00
Wenyong Huang
282831eba5
Fix some compilation warnings and add esp-idf platform for experiment ()
And fix some code indent issues.
2020-11-30 16:03:51 +08:00
Wenyong Huang
74be7a0b7c
Add more checks to enhance security ()
add more checks to enhance security
clear "wasi proc exit" exception before return to caller in wasm/aot call functions
fix memory profiling issue
change movdqa to movdqu in simd invokeNative asm codes to fix issue of unaligned address access
move setjmp/longjmp from libc-builtin to libc-emcc
fix zephyr platform compilation issue in latest zephyr version
2020-11-24 14:00:09 +08:00
Wenyong Huang
a3074df21b
Import SIMD feature and add some workload samples () 2020-11-05 18:15:15 +08:00
lum1n0us
4787b150b8
Enable multi-module support for wasm-c-api ()
it is allowed that all imported functions and globals can be
linked by multi-module feature automatically or by wasm-c-api manually
2020-10-16 17:43:57 +08:00
YAMAMOTO Takashi
f7903caa65
wasm_loader_ctx_init: Don't use false as a pointer () 2020-10-13 14:13:30 +08:00
Xiaokang Qin
c83a5713f9
Add the fast-interp tail call support ()
And also fix one bug in loader for tail-call

Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>
2020-09-29 10:35:10 +08:00
Xu Jun
4bfcbc2cab
fix problem about local in fast-interp () 2020-09-27 18:05:20 +08:00
Xiaokang Qin
a70daed17d
Add the tail-call feature support for classic-interp ()
* Add the tail-call feature support for classic-interp

Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>

* add CI for tail call and custom name section

* add CI for tail call and custom name section

* update CI for mac

Co-authored-by: Xu Jun <693788454@qq.com>
2020-09-24 12:38:54 +08:00
Wenyong Huang
a3d374eb57
Fix jit target arch not set issue and custom name section typo issue ()
And set target machine's cpu to host cpu when creating JIT execution engine.

Signed-off-by: Wenyong Huang wenyong.huang@intel.com
2020-09-24 11:21:20 +08:00
Xiaokang Qin
a7e7711f63
Add the support for custom name section ()
Add the function name field for internal function struct

Signed-off-by: Zhongmin Wu <vwzm@live.com>
Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>

Co-authored-by: Zhongmin Wu <vwzm@live.com>
2020-09-23 16:12:09 +08:00
Huang Qi
a290aaf93e
Fix wasm loader malloc(0) issue which returns NULL is some platforms ()
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>

Co-authored-by: Huang Qi <huangqi3@xiaomi.com>
2020-09-23 15:54:22 +08:00
Wenyong Huang
e501a6963b
Fix some coding style issues, fix doc typo and refine some codes () 2020-09-20 08:20:45 +08:00
Xiaokang Qin
2d06567cd1
Reimplement the utf8 string check ()
Previous implementation doesn't take care of overlong encoding

Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>
2020-09-18 18:06:13 +08:00
Xu Jun
0226dbbb3d
introduce WAMR memory profiling tool (experimental) () 2020-09-18 18:04:56 +08:00
Wenyong Huang
034606b0a9
Change wasm app offset type from int32 to uint32 ()
And fix some sign/unsigned conversion compilation warnings.
2020-08-26 18:33:29 +08:00
Wenyong Huang
0103f6429c
Refactor error/exception strings to reduce binary size () 2020-08-21 15:11:31 +08:00
Wenyong Huang
89d2937cde
Refactor app heap and memory boundary check, and fix os_printf compilation error ()
Insert app heap before __heap_base, or before new page
Fix os_printf compilation error in some platforms
2020-08-20 12:43:12 +08:00
Xu Jun
6aeefbebb2
implement atomics opcodes for interpreter () 2020-08-10 19:43:58 +08:00
Xu Jun
29e45e1527
implement atomic opcode in AOT/JIT () 2020-08-03 11:30:26 +08:00
Wenyong Huang
93ca9d8c62
Disable memory shrink opt when memory.size opcode is found () 2020-07-30 10:18:55 +08:00
lum1n0us
08d01b65c5
Eable post-MVP feature wasm-c-api () 2020-07-23 16:54:13 +08:00
Xu Jun
32b2943369
enable pthread for AoT && update AOT current version to 2 () 2020-07-16 20:35:04 +08:00
Weining
1a85051415
Implement multi-value feature and import binarydump tool () 2020-07-10 16:29:15 +08:00
wenyongh
847dccaa34
Refine get/set global opcodes for interpreter () 2020-06-29 14:17:27 +08:00
wenyongh
ee315e4049
Implement memory access bound check with hardware trap for 64-bit platforms ()
Also implement native stack overflow check with hardware trap for 64-bit platforms
Refine classic interpreter and fast interpreter to improve performance
Update document
2020-06-28 15:41:25 +08:00
Xu Jun
d98ab63e5c
Enable shared memory && add pthread support () 2020-06-15 19:04:04 +08:00
wenyongh
10980a1dd7
Fix app manager parse applet name issue () 2020-06-11 14:19:55 +08:00
wenyongh
7a287fd1a9
Implement wasm mini loader and refine footprint of loader and runtime () 2020-06-08 11:19:09 +08:00
wenyongh
752826a667
Implement multi-module feature and bulk-memory feature ()
Refine wasm loader and aot loader
Fix potential issue of os_mmap/os_munmap
Update document
2020-06-02 14:53:06 +08:00
wenyongh
a0bb761beb
Update API comments, refine footprint of wasm loader ()
and fix issues of get native stack boundary
2020-05-15 17:44:36 +08:00
wenyongh
e8e45aeecd
Refine aot stack overflow check and enhance wasm loader malformed checks ()
And separate global data from wasm memory instance
2020-05-08 12:38:59 +08:00
wenyongh
d381b0fdec
Implement post-MVP features and native stack overflow check ()
Implement native thread stack overflow check
Implement post-MVP: Non-trapping float-to-int conversions
Implement post-MVP: Sign-extension operators
Enhance WASM loader checks
2020-04-30 17:52:11 +08:00
Lei Zhang
ab4f0c5419
bugfix: check type for opcode block, loop and if () ()
Otherwise a block opcode with invalid type signature could crash the
wasm loader.
2020-04-25 11:48:24 +08:00
wenyongh
f72e848114
Refine aot memory boundary check, add more llvm passes ()
Fix issue of some error info mismatch with spec cases
2020-04-22 18:43:50 +08:00
wenyongh
b40e79c160
Make heap and linear memory contiguous to refine compilation time and footprint ()
Use FastISel for JIT mode
Use united aot version in aot file and aot runtime
Disable check signature failed warning for wamrc
Fix fast interpreter x86_32 float issue
Remove unused empty lvgl folder
2020-04-13 10:49:40 +08:00
Xu Jun
5e196253f6
Fix function type not set issue of aot_call_indirect ()
Add registration of libc-wasi to 'wasi_snapshot_preview1' to support cargo-wasi
change zephyr build method from cmake to west
fix problem when preserve space for local vars
fix wasi authority problem
2020-04-07 11:04:46 +08:00
wenyongh
c1a0e6d877
Implement register/call native API with raw (unextracted) arguments () 2020-04-01 12:52:08 +08:00
Xu Jun
d9890d2ccb
re-org ems mem allocator source codes, update prot_wamr.md () 2020-03-30 11:06:39 +08:00
Xu Jun
75009a2421
fix sgx compile and link error, preserve space for locals before set/tee opcode ()
Co-authored-by: Xu Jun <jun1.xu@intel.com>
2020-03-27 09:28:30 +08:00
Xu Jun
6523868a9a
fix aot load import global bug && enhance dead code processing ()
Co-authored-by: Xu Jun <jun1.xu@intel.com>
2020-03-17 17:51:51 +08:00
Xu Jun
f1a0e75ab7
re-org platform APIs, simplify porting process ()
Co-authored-by: Xu Jun <jun1.xu@intel.com>
2020-03-16 16:43:57 +08:00