Lachlan Sneff
3be7144892
Some cleanup
2019-03-04 17:37:05 -08:00
Lachlan Sneff
2969409ca7
Add hacky reinterpret instructions and pop used arguments off the value stack
2019-03-04 16:44:46 -08:00
Lachlan Sneff
25c0cef5f7
Up to 1242 passing spectests
2019-03-04 15:51:45 -08:00
Lachlan Sneff
7ef2c0dece
Fix execute after free issue with llvm (and presumably cranelift?)
2019-03-04 14:41:56 -08:00
Lachlan Sneff
039ebdcf75
Fix merge errors and update llvm to use the new runtime error type.
2019-03-04 13:10:28 -08:00
Lachlan Sneff
4e198bca8b
merge upstream/master into wasmer-private/feature/llvm-backend
2019-03-04 13:03:32 -08:00
Lachlan Sneff
65ec10961b
Change RuntimeError type ( #234 )
...
* Change RuntimeError type and fix codebase to use it
* Fix spectests to work with new runtime error type
* Fix windows signal handler in the clif-backend
* Add missing conversion
* final windows fix
2019-03-04 12:57:26 -08:00
Syrus Akbary
2d987982d6
Merge pull request #231 from Hywan/fix-clif-backend-module-new
...
fix(clif-backend) `Module::new` does not use its argument
2019-03-04 11:42:36 -08:00
Syrus Akbary
c1400d8c85
Merge pull request #227 from wasmerio/fix/c-api-fix-imports
...
Fix C API table/global/memory imports
2019-03-04 11:41:37 -08:00
Lachlan Sneff
deea9e98a4
Add import names, whoops.
2019-03-04 10:19:38 -08:00
Mackenzie Clark
b3c60bce14
Merge branch 'master' into fix-clif-backend-module-new
2019-03-04 08:14:44 -08:00
Mackenzie Clark
71d7fe7d08
Merge branch 'master' into fix/c-api-fix-imports
2019-03-04 08:14:14 -08:00
Syrus Akbary
ba8b7580ba
Merge pull request #230 from Hywan/fix-clif-backend-resolver-compiled-functions
...
fix(clif-backend) Remove an unused variable declaration
2019-03-04 08:10:11 -08:00
Syrus Akbary
436c4bffcb
Merge pull request #228 from Hywan/fix-runtime-core-unused-import
...
fix(runtime-core) Remove an unused import
2019-03-04 07:13:21 -08:00
Syrus Akbary
133203897b
Merge pull request #229 from Hywan/fix-runtime-core-mut-variable
...
fix(runtime-core) `hasher` does not need to be mutable
2019-03-04 06:50:45 -08:00
Ivan Enderlin
5744f6896f
fix(clif-backend) Module::new
does not use its argument.
...
The `Module::new` method requires an argument (`wasm: &[u8]`) that is
never used.
This patch removes the argument, and updates the code accordingly.
2019-03-04 14:03:07 +01:00
Ivan Enderlin
42c9bdf8c2
fix(clif-backend) Remove an unused variable declaration.
...
The `compiled_functions` variable is declared twice. The first
declaration is never used. This patch removes it.
2019-03-04 13:59:37 +01:00
Ivan Enderlin
d9073c03c6
fix(runtime-core) hasher
does not need to be mutable.
...
This patch updates the `hasher` variable. It is declared as mutable,
but it's never mutated.
2019-03-04 13:53:41 +01:00
Ivan Enderlin
ec4e476cc6
fix(runtime-core) Remove an unused import.
...
This patch removes an unused import, namely `crate::sys::Memory`.
2019-03-04 13:51:13 +01:00
Lachlan Sneff
3f9dbca17f
List specific supported features for validator.
2019-03-03 22:47:34 -08:00
Lachlan Sneff
ab550f46fc
Fix bug resulting from comparing the memory base instead of the memory offset to the memory bounds.
2019-03-03 22:11:40 -08:00
Lachlan Sneff
ae3b2b2a42
Add bounds checking for memory accesses on dynamic memories
2019-03-03 21:56:30 -08:00
Lachlan Sneff
87c453a0ec
Add check for table bounds on call_indirect.
2019-03-03 21:38:35 -08:00
Lachlan Sneff
801979c40d
Add dynamic sigindices to the vm context.
2019-03-03 21:26:34 -08:00
Lachlan Sneff
51cf9dde05
Move SSA value caches to the entry block.
...
The supporting framework around LLVM will make sure to only compute values once if they
are known to never change. Previously, these values were attempted to be reused from places where
the users may not dominate the creation of the value. To avoid that, they are always created
in the entry block now.
2019-03-03 21:13:37 -08:00
Brandon Fish
c07298e58e
Make capstone optional with a feature
2019-03-03 16:02:20 -06:00
Brandon Fish
aae256b407
Add tag to fix cast ptr lint error
2019-03-03 15:34:20 -06:00
Brandon Fish
3f345b41c2
Fix emscripten lib compilation
2019-03-03 15:18:16 -06:00
Brandon Fish
97a70327d0
Fix compilation of test example
2019-03-03 15:13:20 -06:00
Brandon Fish
2c765c87c5
Update locals reading to use count
2019-03-03 12:55:29 -06:00
Lachlan Sneff
e362b56b07
Turns out we can just throw an exception from the signal handler
...
without any fancy tricks.
This has been tested on macos, hopefully it works on linux too.
2019-03-03 02:15:53 -08:00
Brandon Fish
2077fb448a
Fix C API table/global/memory imports
2019-03-02 22:28:00 -06:00
Lachlan Sneff
9cfda6800f
Try to return an error from call_protected when an exception occurs.
...
Something breaks pretty drastically sometimes, not sure why.
2019-03-02 19:08:15 -08:00
Lachlan Sneff
caf2205936
Add a signal handler for macos and linux.
...
Implementation Notes:
- To avoid setjmp, longjmp, and the mess that those create, we instead set the interrupting
context of the signal handler to return into the `throw_trap` routine. To my surprise,
this actually works. The stack ends up getting unwound normally and the memory-oob error
is caught by the trampoline.
2019-03-02 17:00:05 -08:00
Lachlan Sneff
57bfa9b0a4
Remove multiple throwing functions, just use one.
2019-03-02 14:16:02 -08:00
Lachlan Sneff
9a90689b93
Add preliminary support for throwing and catching uncatchable exceptions.
...
Additional info:
- WebAssembly "traps" are uncatchable, but are still caught by the trampoline caller.
2019-03-02 12:57:35 -08:00
Lachlan Sneff
5760f6006a
Start implementing exception handling by adding frame descriptor entry processing.
...
- Soon, we should be able basic exceptions.
2019-03-02 10:56:02 -08:00
Lachlan Sneff
87ddf4f855
Add personality function.
...
- This is part of supporting exceptions in the future.
2019-03-02 10:20:18 -08:00
Lachlan Sneff
a6fc06c908
Fix more compiling issues
...
Specifically:
- Don't truncate the list of local parameters.
- If the default destination in a br_table instruction is a loop, don't pop any results.
2019-03-02 10:04:44 -08:00
Lachlan Sneff
362e5aa160
Fix issue caused by dangling instruction.
...
- Come on inkwell, I thought you were better than this.
2019-03-01 20:28:27 -08:00
Lachlan Sneff
f0ac76517a
Start running spectests
...
Additional info:
- Execution is turned off, this is just to make sure the backend can compile the entire specsuite.
- That being said, trampolines are implemented and protected call works (just doesn't protect).
2019-03-01 17:11:20 -08:00
Lachlan Sneff
3717c5720d
Get control flow (at least according to the llvm verifier) working.
...
Next up:
- Importing vm intrinsics.
2019-03-01 15:48:43 -08:00
Syrus Akbary
0c62693163
Merge pull request #226 from calavera/remove_debug_option
...
Remove debug option from run command.
2019-03-01 14:07:33 -08:00
Syrus Akbary
a9b685742e
Merge branch 'master' into remove_debug_option
2019-03-01 13:16:47 -08:00
Mackenzie Clark
bde2022b58
fix appveyor installer and build ( #224 )
...
* remove exception handler when function returns or throws
* revert to only reserving and not committing memory due to issues
* appveyor builds for release, caches more, only publish artifact once
2019-03-01 13:16:32 -08:00
Syrus Akbary
eed1c3b95b
Merge pull request #218 from ryanmjacobs/fix-install_wasmer.sh-creation
...
bugfix: Replace echo with printf so "\n" renders.
2019-03-01 11:37:56 -08:00
Syrus Akbary
ba23c95c67
Merge pull request #207 from wasmerio/feature/add-c-api-module-import-descriptors
...
Add C API module import descriptors
2019-03-01 11:36:32 -08:00
Brandon Fish
adfdf4d85d
Merge branch 'master' into feature/add-c-api-module-import-descriptors
2019-03-01 12:50:35 -06:00
Brandon Fish
7ed6ae3d49
Merge pull request #208 from wasmerio/feature/c-api-call-an-exported-func
...
Fix C API to allow calling an exported func
2019-03-01 12:38:13 -06:00
Brandon Fish
0792cc7018
Merge branch 'master' into feature/c-api-call-an-exported-func
2019-03-01 12:14:56 -06:00