aae256b407
Add tag to fix cast ptr lint error
2019-03-03 15:34:20 -06:00
3f345b41c2
Fix emscripten lib compilation
2019-03-03 15:18:16 -06:00
97a70327d0
Fix compilation of test example
2019-03-03 15:13:20 -06:00
2c765c87c5
Update locals reading to use count
2019-03-03 12:55:29 -06:00
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
2077fb448a
Fix C API table/global/memory imports
2019-03-02 22:28:00 -06:00
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
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
57bfa9b0a4
Remove multiple throwing functions, just use one.
2019-03-02 14:16:02 -08:00
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
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
87ddf4f855
Add personality function.
...
- This is part of supporting exceptions in the future.
2019-03-02 10:20:18 -08:00
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
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
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
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
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
adfdf4d85d
Merge branch 'master' into feature/add-c-api-module-import-descriptors
2019-03-01 12:50:35 -06:00
0792cc7018
Merge branch 'master' into feature/c-api-call-an-exported-func
2019-03-01 12:14:56 -06:00
aa75994e2f
Add memory opcodes and test.
2019-03-02 01:41:31 +08:00
b80252e165
Setup the spectests lib to use llvm-backend
2019-02-28 23:02:03 -06:00
51c9091fc5
Start work on generating trampolines
2019-02-28 18:26:47 -08:00
6a20676fa9
Actually unmap the code after it's done being used
2019-02-28 17:20:18 -08:00
359ac5abec
Connect part of the llvm backend to the runtime
2019-02-28 13:18:00 -08:00
d4ae5cdd40
Get function addresses from llvm-compiled code
2019-02-28 12:31:39 -08:00
e026adf33e
Initial work on linear memory.
2019-02-28 23:58:02 +08:00
64142c4cb8
Reserve R15.
2019-02-28 23:22:21 +08:00
b7ca5e46ed
Add Select opcode.
2019-02-28 23:12:42 +08:00
358d653b18
Merge branch 'master' into feature/add-c-api-module-export-descriptors
2019-02-27 23:21:23 -06:00
889fc3f432
Merge branch 'master' into feature/add-c-api-module-import-descriptors
2019-02-27 23:21:01 -06:00
02eac589f4
Merge branch 'master' into feature/c-api-call-an-exported-func
2019-02-27 23:19:50 -06:00
5d77769381
Hopefully finish the memory manager implementation for llvm RuntimeDyLd
2019-02-27 17:21:20 -08:00
60f8f15db3
Updated version to 0.2.1
2019-02-27 17:20:49 -08:00
95062d524a
commit virtual memory before copying ( #212 )
2019-02-27 14:20:53 -08:00
ff5e1320da
Fix casting errors cause io issues ( #222 )
2019-02-27 13:54:28 -08:00
2a7a8c0069
newline in test-module-imports.c
2019-02-27 10:41:22 -08:00
c4566f0b39
Merge branch 'master' into feature/add-c-api-module-export-descriptors
2019-02-27 10:28:18 -08:00
d50f1cc95f
If/Else.
2019-02-27 23:38:45 +08:00
c7f3666354
Merge pull request #220 from wasmerio/feature/better-debug
...
Added debug build
2019-02-26 15:42:29 -08:00
f7197bf456
Added debug build
2019-02-26 15:39:54 -08:00
3c3c5db2e1
Native trampolines.
2019-02-26 20:56:10 +08:00
e6d0f91832
Use blake2b SIMD version for increased performance
2019-02-26 01:12:34 -08:00
4f833876e0
Start work on object loader using llvm's RuntimeDyld api.
2019-02-25 18:08:06 -08:00
2d49d58665
Use blake2b (simd) version instead of blake2
2019-02-25 17:43:25 -08:00
e7d08712b5
Use blake2 hashing algorithm
2019-02-25 17:37:33 -08:00
53c8603464
Updated crates version to 0.2.0
2019-02-25 13:33:33 -08:00
09fe82862e
Merge pull request #211 from wasmerio/fix/error-display
...
Fix/error display
2019-02-25 12:35:16 -08:00
f9c0e0c078
Fix formatting
2019-02-25 12:25:28 -08:00
3cfdaf3891
Merge branch 'master' into feature/emscripten-getcwd
2019-02-25 12:18:30 -08:00
c5c967da00
Added parallel compilation ( #209 )
2019-02-25 12:03:48 -08:00