1189 Commits

Author SHA1 Message Date
Lachlan Sneff
d8c6f76846 Redesign the interface between the runtime and the backends.
This removes the ProtectedCaller and FuncResolver traits, simplifying call implementations and improving dynamic call throughput.
2019-04-11 18:01:54 -07:00
Lachlan Sneff
688b6cae26
Merge branch 'master' into feature/nightly-release 2019-04-11 14:36:18 -07:00
Lachlan Sneff
4740b2467f Add backend selection to cli 2019-04-11 14:34:54 -07:00
Syrus
d67bfdb2c5 Renamed dynasm backend to singlepass 2019-04-11 12:44:03 -07:00
Lachlan Sneff
60ac7a5b49 Remove unneeded semicolon 2019-04-11 12:13:36 -07:00
Lachlan Sneff
c898439817 Add well placed unwind(allowed) attribute 2019-04-11 12:07:54 -07:00
bors[bot]
81fcecd705 Merge #290
290: Assembler API for the single-pass backend. r=syrusakbary a=losfair



Co-authored-by: losfair <zhy20000919@hotmail.com>
2019-04-11 18:07:58 +00:00
losfair
394c56b2b4 Added missing was_unreachable check. 2019-04-11 18:59:00 +08:00
Syrus Akbary
527d32b00d
Added WASI to the integrations 2019-04-10 23:14:29 -07:00
losfair
77c1bfa005 Cargo fmt 2019-04-11 11:53:26 +08:00
losfair
759fecf6fd Fix longjmp. 2019-04-11 11:52:57 +08:00
losfair
7e20575e5b Implement get_wasm_trampoline 2019-04-11 11:41:32 +08:00
losfair
ab04f54e72 Merge remote-tracking branch 'origin/master' into dynasm-refactor 2019-04-11 10:06:47 +08:00
losfair
4736028369 Cargo fmt 2019-04-11 09:43:02 +08:00
losfair
799e1d8dec Cleanup. 2019-04-11 09:41:18 +08:00
losfair
2d72bbf834 Smallvec optimization. 2019-04-11 09:31:54 +08:00
Mark McCaskey
91af7cf8a8 add preopened fd and fix/improve fs syscalls (WIP) 2019-04-10 18:23:25 -07:00
losfair
e8fe58d9c6 Implement IxxTrunc{U/S}Fxx bound checks. 2019-04-11 09:14:29 +08:00
losfair
02a305cfbe Fix function pointer offset for resolver. 2019-04-11 08:44:18 +08:00
bors[bot]
72b9939331 Merge #334
334: Added longjmp implementation r=syrusakbary a=syrusakbary

Added longjmp implementation

Co-authored-by: Syrus <me@syrusakbary.com>
Co-authored-by: Mark McCaskey <mark@wasmer.io>
Co-authored-by: Lachlan Sneff <lachlan.sneff@gmail.com>
2019-04-11 00:26:30 +00:00
Lachlan Sneff
1cb3fbea0a Add support for panicking/returning err back to llvm 2019-04-10 14:17:10 -07:00
bors[bot]
870faf9838 Merge #341
341: feat(runtime-core) `Instance.exports` takes `&self` instead of `&mut self` r=lachlansneff a=Hywan

There is no reason for `exports` to take a mutable reference. This patch rewrites the `Instance.export` signature a little bit.

Co-authored-by: Ivan Enderlin <ivan.enderlin@hoa-project.net>
2019-04-10 19:22:12 +00:00
Ivan Enderlin
20297d1751 feat(runtime-core) Instance.exports takes &self instead of &mut self.
There is no reason for `exports` to take a mutable reference.
2019-04-10 12:17:16 -07:00
losfair
4e09bda745 Fix calling convention. 2019-04-11 02:54:23 +08:00
Syrus
6848e81a77 Merge branch 'master' into feature/longjmp
# Conflicts:
#	lib/runtime-core/src/backend.rs
#	lib/runtime-core/src/typed_func.rs
2019-04-10 10:57:45 -07:00
losfair
13d456aaf2 Fixed ShrU/S and Trunc's. 2019-04-11 01:53:13 +08:00
Lachlan Sneff
2d2a177e9c Fix lint 2019-04-10 10:31:49 -07:00
Syrus
e620d6bef9 Fix formatting 2019-04-10 10:29:35 -07:00
Lachlan Sneff
cfd4758210 Add some documentation 2019-04-10 10:26:16 -07:00
losfair
3300a3b272 Passing all spectests, except traps. 2019-04-11 00:55:55 +08:00
Syrus
1ee5e7cde6 Remove unsafe setjmp / longjmp implementation 2019-04-09 19:01:51 -07:00
Syrus
02ed9f0e5f Reenabled longjmp 🎉 2019-04-09 18:33:53 -07:00
Syrus
b2446b567e Uncommented some longjmp tests 2019-04-09 17:49:26 -07:00
Syrus
ffe00da678 Improved invoke certain functions 2019-04-09 17:48:42 -07:00
Lachlan Sneff
70ab6667c7 Attempt #3 for windows 2019-04-09 17:09:33 -07:00
Lachlan Sneff
50b5da8dd0 Attempt #2 for windows building 2019-04-09 17:09:33 -07:00
Lachlan Sneff
a657315320 Attempt to fix windows build 2019-04-09 17:09:33 -07:00
Lachlan Sneff
a320af4485 Fix runtime test missing method 2019-04-09 17:09:33 -07:00
Lachlan Sneff
782bb384ad Cleanup 2019-04-09 17:09:33 -07:00
Lachlan Sneff
cc656b26a9 Add implementations for typed func errors to cranelift and llvm 2019-04-09 17:09:33 -07:00
Lachlan Sneff
7d09a2ee7e Initial typed func rewrite 2019-04-09 17:09:33 -07:00
Mark McCaskey
fec65a262e implement emscripten resize_heap 2019-04-09 17:09:33 -07:00
Mark McCaskey
8ba5ea2a08 allow resize_heap to grow heap in emscripten 2019-04-09 17:09:33 -07:00
Mark McCaskey
a6c2f7e8e3 change void* to stat* for lstat on linux 2019-04-09 17:09:33 -07:00
Mark McCaskey
95095feb2e try normal lstat on linux 2019-04-09 17:09:33 -07:00
Mark McCaskey
e34874e2d3 fix type errors on Linux/OSX 2019-04-09 17:09:33 -07:00
Mark McCaskey
17686b9a98 revert location of lstat64 2019-04-09 17:09:33 -07:00
Mark McCaskey
18a00e8e8f fix bug in stat, move lstat64 back to unix 2019-04-09 17:09:33 -07:00
Mark McCaskey
79da3e8f3c return total memory size for get_heap_size 2019-04-09 17:09:33 -07:00
Mark McCaskey
e8236cf1c7 fix lstat64; increase num returned by heap size 2019-04-09 17:09:33 -07:00