1c3f177205
feat(llvm): Continue implementation of compact_unwind
support
2025-02-04 10:33:45 +01:00
19d21ff831
chore: Make linter happy
2025-01-15 15:15:54 +01:00
77e21dad8c
feat(compiler): Initial support for GOT-based relocations and compact_unwind
tables for Mach-O
...
(Work in progress) macOS uses a different scheme for exception handling
in Mach-O; in contrast with the "usual" .eh_frame mechanism, Mach-O has
a `compact_unwind` section in which EH-related metadata are embedded.
This commit begins the effort to support it in its entirety. On the path
to that end, it also adds GOT-based relocations, which are necessary for
Mach-O object files.
2025-01-15 12:14:36 +01:00
cf2d30940b
feat: Move "compilation" types from wasmer_types
to wasmer_compiler
2024-11-06 16:42:06 +01:00
4e8294a08b
More lints
2023-05-29 21:15:29 +08:00
edc9740f30
fuzz: fix build error ( #3861 )
2023-05-15 13:09:05 +02:00
26b43fee27
Merge branch 'master' into wasix-core-changes
2023-01-05 21:32:17 +01:00
d5167136fc
Fixed another typo
2023-01-05 16:35:06 +01:00
b4443864e3
Fixed a typo
2023-01-05 16:33:39 +01:00
ebcd97c16e
Fixed EH_Frame generation for LLVM Object files
2023-01-05 16:31:27 +01:00
958a7412d1
Fix LLVM WASMER_METADATA bug
2023-01-04 19:32:23 +01:00
b963d2cc54
Remove prefix from Symbol::Metadata
2023-01-04 17:12:25 +01:00
5df8789910
Add "Metadata" symbol to Symbol enum
2023-01-04 17:03:02 +01:00
5109a407c4
WASIX Preparation
...
This commit extracts changes to core libraries made in the WASIX branch.
It is not reasonable to extract the partial commit history, so this is
just a batch commit.
The history will make a bit more sense again if we decide to merge the
WASIX branch with full commit history.
2022-12-16 11:47:04 +01:00
ecc0c9e547
Limit the use of clone when handling Compilation object
2022-11-09 13:23:44 +01:00
14ee38a24e
compiler: move Symbol, SymbolRegistry to wasmer-types
2022-08-02 15:45:28 +03:00
187d2e6364
Remove Artifact trait
...
In favor of using UniversalArtifact everywhere
2022-07-25 13:13:52 +03:00
8f539d134b
Move wasmer_compiler/{address_map, function, module, sourceloc, trap, unwind}.rs to wasmer_types
2022-06-16 16:57:45 +03:00
b1f1939bf7
Move wasmer_compiler/{section,relocation}.rs to wasmer_types
2022-06-16 16:57:45 +03:00
feee4e3587
Move wasmer_compiler errors to wasmer_types error module
2022-06-16 16:57:45 +03:00
5339f7cdae
Fix clippy lints
...
Fixes : #2926
2022-06-09 16:05:53 +02:00
00f9a3c8d7
Remove loupe dependency
...
Closes #2731
Closes #2744
2022-06-08 14:12:49 +03: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
78eb5bc4c0
Fix alignment of WASMER_METADATA in the dylib engine
...
rykv requires this to be at least 16-byte aligned.
2022-01-04 16:23:49 +01:00
8c24ab48db
Some last small changes
2021-10-18 11:55:42 +02:00
b54780cdab
feat(compiler) Refactor the new ARM Reloc and Trampoline to avoid a &mut
2021-10-12 10:11:36 +02:00
0c6010ca34
feat(compiler) Use x17 as scratch instead of x16 on Aarch64 to help with Apple ABI
2021-10-08 16:19:31 +02:00
20f0c66fe6
feat(compiler) Added Trampolines and more Relocations for Arm64 (llvm-universal on linux-aarch64 are OK now)
2021-10-05 14:08:55 +02:00
cb66b5293d
Improved middleware logic
2021-04-27 14:00:25 -07:00
2df5854e37
Make compilers to take non-mutable inputs
2021-04-26 21:14:23 -07:00
b832de05df
Simplifies a few pattern-matches
...
... which have a direct combinator equivalent on Option / Result.
Tool-aided by [comby-rust](https://github.com/huitseeker/comby-rust ).
2021-03-24 07:18:26 -07:00
2afed4d813
feat: Use latest version of loupe
.
2021-03-22 11:43:46 +01:00
026520998c
feat: Start implementing loupe::MemoryUsage
on wasmer::Store
.
2021-03-22 11:42:28 +01:00
71b9feff08
Use ParallelBridge to remove copies of data out of PrimaryMap.
2021-01-22 13:36:45 -08:00
ec6c990663
Do all three mapping operations in a single thread pool.
2021-01-22 13:30:21 -08:00
184edbe7e4
Add a TODO referring to a feature request on Rayon.
2021-01-21 22:14:04 -08:00
fffdde0217
Apply rustfmt changes that the CI brought up.
2021-01-21 17:31:40 -08:00
8ee2cf55ad
Improve parallelism of llvm builds with native or object file engine.
2021-01-21 17:27:34 -08:00
13e6f29c29
Set compiler config to be owned (following wasm-c-api)
2020-12-04 02:39:19 -08:00
8ca3693a56
Add support for middleware to experimental_native_compile_module and make it work on compiler-llvm.
2020-11-23 13:56:17 -08:00
9d8f315d4c
Update module info in-place.
2020-11-23 13:42:51 -08:00
9bd2c47730
Upgraded Cranelift to 0.67
2020-10-29 20:19:16 -07:00
e4981c4f66
Add a get_abi(TargetMachine) method instead of creating X86_64SystemV directly.
...
A new Arm64Linux ABI is added but it's an unedited copy of the X86_64SystemV one so far.
A bunch of cleanups from clippy. Use matches! more, don't pass &Box<dyn Abi>.
2020-10-20 14:46:45 -07:00
5d40787856
Add a compiler-llvm CompilerFunctionKind for the whole module which can occur with the experimental API for engine-native.
...
Since it's no longer per-function, rename CompilerFunctionKind to CompilerKind.
2020-08-20 23:28:07 -07:00
91414df670
NFC. Import the inkwell::DLLStorageClass name.
2020-08-18 14:20:45 -07:00
9c5e682585
Export the wasmer metadata when building a DLL.
2020-08-18 14:18:07 -07:00
9e89ee9b7b
Call a callback to emit the merged object file.
2020-08-17 23:21:36 -07:00
6e974b92cd
Run cargo fmt
2020-08-13 18:12:43 -07:00
5049c543dc
Rename wasm-common
crate to wasmer-types
2020-08-13 17:59:26 -07:00
15b3a35e0c
Don't clone function body data.
2020-08-07 14:31:36 -07:00