Commit Graph

510 Commits

Author SHA1 Message Date
44faa7e86a Merge branch 'master' into feat/singlepass_dylib 2022-03-16 10:15:45 +01:00
fd62d3e9dc Merge branch 'master' into feat/singlepass_dylib 2022-03-15 14:22:15 +01:00
80cee07df9 Removed unused emit_ldr_label and emit_nop arm64 emiter 2022-03-15 14:14:52 +01:00
fe9d2d8d22 Release version 2.2.1 2022-03-15 11:02:31 +00:00
2b86fe802f Fix stack probing typo 2022-03-14 22:14:22 +00:00
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
f1b23b3af1 Small cleanup 2022-03-11 16:06:09 +01:00
408847ee75 Added support for Windows x64 in Singlepass for Unwind infos 2022-03-11 16:01:07 +01:00
3bc9505cd7 Added some support for Eh_frame generation on Aarch64 singlpass 2022-03-08 14:24:43 +01:00
d8c9f0ebdd Added a emit_unwind_op helper 2022-03-04 16:41:05 +01:00
e7fff40a27 More fix for no-unwind build 2022-03-03 16:43:02 +01:00
9e56f563a9 Fix for no-unwind build 2022-03-03 15:46:30 +01:00
16d2b78776 Filling some FDE information on x86_64 now 2022-03-03 14:41:28 +01:00
064657849d Try to fix no-unwind build 2022-03-02 14:02:19 +01:00
187b7508c9 Added some infrastructure to generate EH_Frame in singlepass compiler 2022-03-02 12:21:55 +01:00
4dd1634218 Release version 2.2.0 2022-02-28 17:19:14 +00:00
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
4f710acb7a Fixed dylib-singlepass on macos/Arm64 2022-02-23 10:33:46 +01:00
b7d705ab89 Changed how relocations are handled in singlepass/aarch64 2022-02-22 17:01:58 +01:00
b6b07ba4e4 Fix singlepass Arm64 since #2775 2022-02-18 16:43:40 +01:00
3f2fa63995 [chore]: Linting / formatting 2022-02-17 15:09:07 +01:00
b6a596fe13 [chore]: Merged in upstream/master 2022-02-17 10:51:31 +01:00
15f9d2646f Release version 2.2.0-rc1 2022-02-15 19:10:24 +00:00
c2a998224b Some more aarch64 emitter, after some fuzz testing 2022-02-14 17:50:20 +01:00
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
c0239987c8 [fix]: Added assert guard in SSE support against the case that src2 == dst 2022-02-11 13:32:45 +01:00
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
6090608f8a Merge remote-tracking branch 'upstream/master' into bat/feature/add-sse-singlepass 2022-02-11 10:32:39 +01:00
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
8283a635bd [fix]: Fixed a few stray mistakes in the sse_fn macro 2022-02-10 10:48:11 +01:00
17b3a94d36 Singlepass: added some more emiter 2022-02-08 09:41:02 +01:00
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
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
4ee83b3498 [chore]: Cleaning up doc strings from an over-zealous clion refactoring 2022-01-31 11:59:51 +01:00
17d410531c [chore]: Formatting 2022-01-31 11:55:05 +01:00
d42ec572fd [fix]: Cleanups after resolving conflicts with master 2022-01-31 11:52:06 +01:00
82bc23e082 Merge branch 'master' into bat/feature/add-sse-singlepass 2022-01-31 11:46:47 +01:00
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
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
4e27e1164c Release version 2.2.0-rc1 2022-01-27 23:59:27 +00:00
bff3c09875 Merge branch 'master' into singlepass_aarch64 2022-01-26 10:23:38 +01:00
a358e84741 x64: fix assert when calling a function 2022-01-24 20:37:28 +02:00
74779f5e80 Merge branch 'master' into singlepass_aarch64 2022-01-21 11:08:43 +01:00
ffb9cd33b9 Use trampolines for all libcalls in engine-universal and engine-dylib
In both of these engines, the compiled code may be loaded in memory far
from the Wasmer runtime which means that libcalls may not be reachable
through the normal relocation types. Instead a trampoline is needed to
allow reaching any address in the 64-bit address space.

In the case of engine-dylib, this is even worse since the symbols are
not exported by the executable without some special linker flags. The
solution here is to manually patch in the addresses at load time into
a data table of function pointers.
2022-01-20 11:47:20 +00:00
fb7a572415 Use exact version for Wasmer crate dependencies
We don't guarantee API compatibility between internal Wasmer crates when
making minor version bumps.
2022-01-19 21:35:09 +00:00
61609c9da3 improv(compiler) Added a few more arm64 emitter, just in case 2022-01-19 11:25:46 +01:00
80f9c8fed9 feat(compiler) Small adaption after comments 2022-01-17 09:14:26 +01:00
7f4fd02774 feat(compiler) Adapted/Fixed/Removed some comments in SinglePass codegen 2022-01-14 17:15:11 +01:00
c8ae8c8967 imp(feature) Fixed x64 backend of Singlepass 2022-01-14 17:15:11 +01:00
0e2d8097d0 imp(compiler) Add support for AppleAarch64 ABI to SinglePass 2022-01-14 17:15:11 +01:00