Commit Graph

1052 Commits

Author SHA1 Message Date
losfair
e71da1cdf1 Some documentation on the code generator. 2019-04-18 02:28:08 +08:00
losfair
5f9aed0103 Merge remote-tracking branch 'origin/master' into feature/singlepass-opt 2019-04-17 02:18:00 +08:00
losfair
0da2442be1 Parse input in a single pass. 2019-04-17 02:10:36 +08:00
losfair
c47eb6eaa2 Fix corner cases. 2019-04-16 22:45:32 +08:00
Mark McCaskey
5771c904f8 add changelog entry 2019-04-12 14:16:42 -07:00
Mark McCaskey
a36ab1cd78 add misc changes to Cargo.tomls for publishing 2019-04-12 14:07:25 -07:00
Lachlan Sneff
57e24c957c
Merge branch 'master' into feature/remove-call-protected 2019-04-12 12:44:59 -07:00
Mark McCaskey
d507253372 update crate version numbers to 0.3.0 2019-04-12 12:19:46 -07:00
Lachlan Sneff
8b2f613649
Merge branch 'master' into feature/remove-call-protected 2019-04-12 11:50:39 -07:00
Mark McCaskey
9c12b3f7f1 update changelog 2019-04-12 11:22:01 -07:00
Lachlan Sneff
0d30c957a2 Fix llvm test 2019-04-12 10:33:30 -07:00
Lachlan Sneff
051d435423 Warnings and unused code cleanup 2019-04-12 10:27:14 -07:00
Lachlan Sneff
4e17ff8571 Update singlepass backend to new backend abstraction 2019-04-12 10:21:40 -07:00
Lachlan Sneff
75cc65a8c5 Update llvm backend to new backend abstraction 2019-04-12 10:05:50 -07:00
Lachlan Sneff
8b5da1d86e Update cranelift backend to new backend abstraction 2019-04-12 09:58:29 -07:00
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
Lachlan Sneff
b949de2560 Attempt #3 for windows 2019-04-09 16:54:55 -07:00
Lachlan Sneff
654fce9354 Attempt #2 for windows building 2019-04-09 16:50:33 -07:00
Lachlan Sneff
751dff0f9d Attempt to fix windows build 2019-04-09 16:46:01 -07:00
Lachlan Sneff
41129e445d Fix runtime test missing method 2019-04-09 16:15:50 -07:00
Lachlan Sneff
0745274892 Cleanup 2019-04-09 16:07:09 -07:00
Lachlan Sneff
c212ba3619 Add implementations for typed func errors to cranelift and llvm 2019-04-09 15:53:01 -07:00
Lachlan Sneff
5e1a67d835 Initial typed func rewrite 2019-04-09 12:48:41 -07:00
losfair
e78a5ba602 F32ConvertUI64, F64ConvertUI64 2019-04-10 01:38:16 +08:00
losfair
69d6093955 Fix GetGlobal, RemS/U and floating point comparison. 2019-04-10 00:41:32 +08:00
losfair
6b514e110a 1241/1256 tests passing 2019-04-09 19:10:20 +08:00
losfair
f781b0eb02 More floating point operators. 2019-04-09 17:08:31 +08:00
Mark McCaskey
50a22bcae2 implement emscripten resize_heap 2019-04-08 16:17:34 -07:00
Mark McCaskey
6578838acd allow resize_heap to grow heap in emscripten 2019-04-08 14:44:40 -07:00
bors[bot]
7f8b1ea521 Merge #332
332: fix lstat64; heap size; and stat r=MarkMcCaskey a=MarkMcCaskey

- Get https://github.com/nikic/PHP-Parser working 🎉 
- fixes memory issue bug which looked like relative paths didn't work, but was really pointer aliasing corrupting data

Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-04-08 18:58:48 +00:00
Mark McCaskey
03f0bf0c49 change void* to stat* for lstat on linux 2019-04-08 11:53:15 -07:00
Mark McCaskey
b2a51b8fbd try normal lstat on linux 2019-04-08 11:48:04 -07:00
Mark McCaskey
7cb2766292 fix type errors on Linux/OSX 2019-04-08 11:36:54 -07:00
Mark McCaskey
134ee3c511 revert location of lstat64 2019-04-08 11:29:55 -07:00
Mark McCaskey
b3a765446a fix bug in stat, move lstat64 back to unix 2019-04-08 11:26:25 -07:00
losfair
e32816b06b Floating point with AVX. 2019-04-09 01:24:30 +08:00
losfair
154f7f8fd3 BrTable, 64-bit memory operations and bug fixes. 2019-04-08 17:47:41 +08:00
losfair
29d93aee2d Indirect calls. 2019-04-07 17:19:23 +08:00
Syrus
3fcc502015 Added temporal code for emscripten target 2019-04-06 17:16:51 -07:00
Syrus
dc3c2227dc Addd stack_save, stack_restore and set_threw for longjmp 2019-04-06 14:32:21 -07:00
Syrus
3b11da91c5 Make DynFunc public 2019-04-06 14:31:39 -07:00
Syrus
a4e1051c25 Fix format 2019-04-05 23:55:04 -07:00
Syrus
ea58e0051b Commented zbox until speed is fixed 2019-04-05 23:48:12 -07:00
Syrus
1193d561e2 Improved debug! macro with timing 2019-04-05 23:47:59 -07:00
Syrus
d0fe506793 Added emscripten dynVall_vj 2019-04-05 22:27:09 -07:00
Mark McCaskey
09a207364b return total memory size for get_heap_size 2019-04-05 17:21:40 -07:00
Mark McCaskey
40deb3e6ed fix lstat64; increase num returned by heap size 2019-04-05 16:50:50 -07:00
bors[bot]
ea08a96b32 Merge #330
330: implement strftime r=syrusakbary a=MarkMcCaskey



Co-authored-by: Mark McCaskey <mark@wasmer.io>
2019-04-05 21:38:35 +00:00
Mark McCaskey
b0a83408ec fix debug statement 2019-04-05 14:33:49 -07:00
Mark McCaskey
8015fbfc16 implement strftime 2019-04-05 13:59:33 -07:00
Syrus
b03a05f1b7 Added f64-to-int 2019-04-05 13:33:28 -07:00