Amanieu d'Antras
4c946257cf
Update Cranelift to 0.82
2022-04-06 16:23:32 +01:00
Amanieu d'Antras
3ad9552e2e
Update wasmparser to 0.83
2022-04-06 16:23:32 +01:00
ptitSeb
b5f4d47370
Merge branch 'master' into feat/TrapInformation_improvments
2022-04-04 16:19:55 +02:00
ptitSeb
61263bc914
Use Undefined instruction with payload to carry over TrapInformation without using an vector or hashmap on Singlepass
2022-04-04 16:16:35 +02:00
ptitSeb
dec097e500
Merge branch 'master' into feat/singlepass_ehframe
2022-03-17 15:52:42 +01:00
ptitSeb
32603a2f4c
Simplifed generation of unwind info in singlepass codegen
2022-03-17 12:20:57 +01:00
ptitSeb
aebcb3e693
Renamed 'gen_unwind_info' to 'gen_dwarf_unwind_info' for better clarity
2022-03-17 12:03:25 +01:00
ptitSeb
324a2517a1
Merge branch 'master' into feat/singlepass_ehframe
2022-03-17 10:57:39 +01:00
ptitSeb
dab1d2b46a
Merge branch 'master' into feat/singlepass_dylib
2022-03-16 16:04:22 +01:00
bors[bot]
fc794ab4e3
Merge #2807
...
2807: Run Wasm code on a separate stack r=Amanieu a=Amanieu
This uses the [corosensei](https://crates.io/crates/corosensei ) crate to
run Wasm code on a separate stack from the main thread stack.
In trap handlers for stack overflows and memory out of bounds accesses,
we can now check whether we are executing on the Wasm stack and reset
execution back to the main thread stack when returning from the trap
handler.
When Wasm code needs to perform an operation which may modify internal
data structures (e.g. growing a memory) then execution must switch back
to the main thread stack using on_host_stack. This is necessary to avoid
leaving internal data structure in an inconsistent state when a stack
overflow happens.
In the future, this can also be used to suspend execution of a Wasm
module (#1127 ) by modeling it as an async function call.
Fixes #2757
Fixes #2562
Co-authored-by: Amanieu d'Antras <amanieu@gmail.com >
2022-03-16 13:24:50 +00:00
ptitSeb
44faa7e86a
Merge branch 'master' into feat/singlepass_dylib
2022-03-16 10:15:45 +01:00
ptitSeb
fd62d3e9dc
Merge branch 'master' into feat/singlepass_dylib
2022-03-15 14:22:15 +01:00
ptitSeb
80cee07df9
Removed unused emit_ldr_label and emit_nop arm64 emiter
2022-03-15 14:14:52 +01:00
Amanieu d'Antras
fe9d2d8d22
Release version 2.2.1
2022-03-15 11:02:31 +00:00
Amanieu d'Antras
2b86fe802f
Fix stack probing typo
2022-03-14 22:14:22 +00:00
Amanieu d'Antras
054e524001
Fix stack probing in the singlepass compiler
...
Stack probes must be done before the stack pointer is adjusted. This
ensures that the stack pointer is still within the bounds of the stack
when inspected by the signal handler.
2022-03-14 22:14:22 +00:00
ptitSeb
f1b23b3af1
Small cleanup
2022-03-11 16:06:09 +01:00
ptitSeb
408847ee75
Added support for Windows x64 in Singlepass for Unwind infos
2022-03-11 16:01:07 +01:00
ptitSeb
3bc9505cd7
Added some support for Eh_frame generation on Aarch64 singlpass
2022-03-08 14:24:43 +01:00
ptitSeb
d8c9f0ebdd
Added a emit_unwind_op helper
2022-03-04 16:41:05 +01:00
ptitSeb
e7fff40a27
More fix for no-unwind build
2022-03-03 16:43:02 +01:00
ptitSeb
9e56f563a9
Fix for no-unwind build
2022-03-03 15:46:30 +01:00
ptitSeb
16d2b78776
Filling some FDE information on x86_64 now
2022-03-03 14:41:28 +01:00
ptitSeb
064657849d
Try to fix no-unwind build
2022-03-02 14:02:19 +01:00
ptitSeb
187b7508c9
Added some infrastructure to generate EH_Frame in singlepass compiler
2022-03-02 12:21:55 +01:00
Amanieu d'Antras
4dd1634218
Release version 2.2.0
2022-02-28 17:19:14 +00:00
ptitSeb
ffc559a2bb
Change the relocation type for x86_64 on Singlepass and removed the command on linker that enable write to text section
2022-02-23 15:21:26 +01:00
ptitSeb
4f710acb7a
Fixed dylib-singlepass on macos/Arm64
2022-02-23 10:33:46 +01:00
ptitSeb
b7d705ab89
Changed how relocations are handled in singlepass/aarch64
2022-02-22 17:01:58 +01:00
ptitSeb
b6b07ba4e4
Fix singlepass Arm64 since #2775
2022-02-18 16:43:40 +01:00
R2D2
3f2fa63995
[chore]: Linting / formatting
2022-02-17 15:09:07 +01:00
R2D2
b6a596fe13
[chore]: Merged in upstream/master
2022-02-17 10:51:31 +01:00
Amanieu d'Antras
15f9d2646f
Release version 2.2.0-rc1
2022-02-15 19:10:24 +00:00
ptitSeb
c2a998224b
Some more aarch64 emitter, after some fuzz testing
2022-02-14 17:50:20 +01:00
ptitSeb
5ebae6f34e
Remove HashSet on SinglePass register collection and use a simple Bitmap now, to avoid risk of non deterministic runs
2022-02-11 16:20:32 +01:00
R2D2
c0239987c8
[fix]: Added assert guard in SSE support against the case that src2 == dst
2022-02-11 13:32:45 +01:00
ptitSeb
b3b1c8b5f5
Removed the sort on gprs/simds list before push/pop, by using a single vec for the push/pop
2022-02-11 13:27:59 +01:00
R2D2
6090608f8a
Merge remote-tracking branch 'upstream/master' into bat/feature/add-sse-singlepass
2022-02-11 10:32:39 +01:00
ptitSeb
a9fab001e8
Fix a singlepass codegen regression, but forcing a sort on gprs/simds list before push/pop
2022-02-11 10:23:47 +01:00
R2D2
8283a635bd
[fix]: Fixed a few stray mistakes in the sse_fn macro
2022-02-10 10:48:11 +01:00
ptitSeb
17b3a94d36
Singlepass: added some more emiter
2022-02-08 09:41:02 +01:00
R2D2
98b70d9ad1
[fix]: Fixed some errors in the register being used in sse instructions. Changed the roundss/sd function
2022-02-06 21:17:25 +01:00
ptitSeb
f27d0a9bd7
Fix Sdinglepass f32_load and f64_load function, and introduce emit_bcond_label_far as direct bcond may not work all the time (for #2777 )
2022-02-01 15:08:55 +01:00
R2D2
4ee83b3498
[chore]: Cleaning up doc strings from an over-zealous clion refactoring
2022-01-31 11:59:51 +01:00
R2D2
17d410531c
[chore]: Formatting
2022-01-31 11:55:05 +01:00
R2D2
d42ec572fd
[fix]: Cleanups after resolving conflicts with master
2022-01-31 11:52:06 +01:00
Jacob Turner
82bc23e082
Merge branch 'master' into bat/feature/add-sse-singlepass
2022-01-31 11:46:47 +01:00
R2D2
abcbc13af9
[feat]: Refactored how macros emit additional movss/movsd instructions. Added >= SSE 4.1 implementation for emit_vblendvpd. Added some TODOs
2022-01-31 11:25:18 +01:00
R2D2
b32b5cfa53
[feat]: Adding the plumbing necessary for the singlepass to choose between different simd instruction sets. Partial work on supporting SSE4.2
2022-01-30 10:55:26 +01:00
Amanieu d'Antras
4e27e1164c
Release version 2.2.0-rc1
2022-01-27 23:59:27 +00:00