Commit Graph

602 Commits

Author SHA1 Message Date
Dan Gohman
46a772ba67 Add a TODO about avoiding ReadWriteExecute mappings. 2018-05-17 23:59:40 -07:00
Dan Gohman
52f1171485 Make all the function bodies executable, not just the start function. 2018-05-17 23:56:05 -07:00
Dan Gohman
d162f8bc59 Implement Abs8 relocations, and fix X86PCRel4 relocations.
With new versions of cretonne-codegen:

 - Non-colocated calls are emitted as a movabs with an indirect call.
   This uses an Abs8 relocation.

 - Colocated calls are emitted as direct calls, but the "+ 4"
   adjustment is now folded into the addend, so we don't need to
   handle it explicitly in the X86PCRel4 code anymore.
2018-05-17 23:32:31 -07:00
Dan Gohman
9d41135fe3 Translate from function-body index to function-index-space index.
The wasm function index space consists of the index space of the
imported functions concatenated with the index space of the defined
functions. When iterating through function definitions, it's necessary
to adjust the index when a function-index-space index is needed.
2018-05-17 20:39:19 -07:00
Dan Gohman
b5e794a584 Update to Cretonne 0.8.0. 2018-05-14 12:58:28 -10:00
Dan Gohman
ed734f8ecb Update to Cretonne 0.4.0. 2018-03-16 16:34:20 -07:00
Dan Gohman
5a5f4e4a2f Switch to published packages rather than straight git paths.
We can do this now that all our dependencies are available in published
form, and this should reduce accidental breakage which APIs change.
2018-02-28 12:33:37 -08:00
Dan Gohman
933d8487c1 Minor code simplification. NFC. 2018-02-28 12:26:49 -08:00
Dan Gohman
f276a021cb Update wasmstandalone for API changes.
This updates to the latest faerie and cretonne API changes.
2018-02-22 09:44:02 -08:00
Dan Gohman
29db33e7f8 Replace reserve with reserve_exact when applicable. 2017-11-17 11:14:45 -08:00
Dan Gohman
46ac24d172 Add a comment about call_indirect bounds/signature checking. 2017-11-17 11:14:45 -08:00
m4b
89d3038c1c obj: minor fix to emit_module compile 2017-11-05 00:03:56 -07:00
Dan Gohman
114da83ad6 Avoid using to_string() on ExternalName to create strings for symbol names.
ExternalName's `to_string()` prepends a '%' for Cretonne's text syntax,
but for creating symbol names we just want the raw bytes.
2017-11-04 15:29:16 -07:00
Dan Gohman
2b40f72f00 Update for more Cretonne API changes.
This updates to ExternalName and reloc_external.
2017-10-31 12:36:53 -07:00
Dan Gohman
226fbce0b3 Update for Cretonne API changes. 2017-10-28 06:11:56 -07:00
Dan Gohman
469b7bb5e9 Add a FIXME comment for grow/current_memory. 2017-10-27 16:46:04 -07:00
Dan Gohman
233d2cd773 Initialize function names and signatures before calling translate_from_reader. 2017-10-13 16:42:40 -07:00
Dan Gohman
b87178647b Change get_func_type's return type to SignatureType.
It's the same thing, but provides more readability.
2017-10-13 16:42:01 -07:00
Dan Gohman
2c53dc69ff Use from_str_radix to parse hex digits. 2017-10-13 16:41:45 -07:00
Dan Gohman
ca1b461375 Begin internal reorganization.
This begins reorganizing how translation and compilation occur, and
setting up infrastructure for imports/exports and relocations. It
splits parts out of StandaloneRuntime, forming Module, Compilation,
and Instance structs, which can be used more independently.

It also simplifies the command-line interface, in a step towards
making simple tools that just expose the functionality of the
libraries.
2017-10-13 14:47:01 -07:00
Dan Gohman
3d6f0f7045 Update for Cretonne API changes. 2017-10-10 10:24:15 -07:00
Dan Gohman
142b17a3f0 Delete an unused settings builder. 2017-10-10 09:47:04 -07:00
Dan Gohman
6dea25ee9f Store relocs in a Vec rather than in a HashMap. 2017-10-10 09:45:32 -07:00
Dan Gohman
9f7d0a659c Use VmCtx arg for globals, and a global for the heap.
This replaces the ReservedReg strategy, and is more flexible.
2017-10-05 09:01:38 -07:00
Dan Gohman
23bafd1218 Split the runtime and execution code into separate crates. 2017-10-03 14:57:52 -07:00
Dan Gohman
6ded83332f Change the reloc sink to use vectors instead of hash maps. 2017-10-03 14:02:41 -07:00
Dan Gohman
412fedcc6d Fix reseting of the heap when compiling a module containing multiple functions. 2017-10-03 13:30:12 -07:00
Dan Gohman
31a962fa1b Support multiple globals. 2017-10-03 13:25:37 -07:00
Dan Gohman
865a3d9f31 Rename wasmstandalone::StandaloneRuntime to wasmstandalone::Runtime. 2017-10-03 13:01:31 -07:00
Dan Gohman
db88701eaa Use Self. 2017-10-03 12:54:35 -07:00
Dan Gohman
97b877bb9c Use Option::unwrap_or_else. 2017-10-03 12:53:28 -07:00
Dan Gohman
d4438f4006 Drop an unneeded dependency. 2017-10-03 12:48:33 -07:00
Dan Gohman
e64eb79aaf Fix dependency paths. wasmstandalone no longer depends on out-of-tree patches. 2017-09-23 15:38:38 -07:00
Dan Gohman
666d565fd4 Clean up unused imports. 2017-09-23 15:38:38 -07:00
Dan Gohman
0c78a2f298 Import the wasm2obj experiment and minimally update it. 2017-09-23 15:38:38 -07:00
Dan Gohman
06f0b00c2d Add an assert on an implemented feature rather than letting it silently fail. 2017-09-22 16:26:43 -07:00
Dan Gohman
64d596005c Reduce the extent of unsafe code. 2017-09-22 16:21:25 -07:00
Dan Gohman
ecd746718b Remove comments about manually saving callee-saved registers.
Even though Cretonne doesn't implement callee-saved registers yet,
it will, so we shouldn't need manual save/restore code when calling it.
2017-09-22 16:17:08 -07:00
Dan Gohman
4c5f584d01 Use debug_assert_eq! where applicable. 2017-09-22 16:13:04 -07:00
Dan Gohman
b583d75c7a Fix redundant borrows. 2017-09-22 16:11:11 -07:00
Dan Gohman
cdffc1b50a Roughly update for the recent Cretonne API changes.
Everything builds and simple modules run, though there's still lots more
to do.
2017-09-22 15:56:18 -07:00
Dan Gohman
73f5adb19d Clippy cleanups. 2017-09-06 09:56:14 -07:00
Dan Gohman
cb7e66d12a Fix missing documentation comment. 2017-09-06 09:19:34 -07:00
Dan Gohman
6c80e81c6c Remove trivial numeric casts. 2017-09-06 09:18:18 -07:00
Dan Gohman
54a3f1fcd4 Fix redundant qualification. 2017-09-06 08:59:10 -07:00
Dan Gohman
6c30cf8f00 Enable deny(missing_docs) in the wasmstandalone library. 2017-09-06 08:54:30 -07:00
Dan Gohman
3868467917 Format with rustfmt 0.9.0. 2017-09-06 08:37:12 -07:00
Dan Gohman
d0fe50a2a8 Check in the wasmstandalone code.
This is based on the code in https://github.com/denismerigoux/cretonne/commits/wasm2cretonne
before wasmstandalone was removed, with minor updates for the new library structure.
It is not yet updated for the latest cretonne API changes.
2017-09-05 17:06:51 -07:00
Denis Merigoux
051bc08d23 Added description and license to Cargo.toml 2017-08-11 15:49:47 -07:00
Denis Merigoux
727f297ba9 Bugfix: wrong jump arguments for br_if to loops 2017-08-11 13:50:41 -07:00