* Implement trap info in Lightbeam * Start using wasm-reader instead of wasmparser for parsing operators * Update to use wasm-reader, some reductions in allocation, support source location tracking for traps, start to support multi-value The only thing that still needs to be supported for multi-value is stack returns, but we need to make it compatible with Cranelift. * Error when running out of registers (although we'd hope it should be impossible) instead of panicking * WIP: Update Lightbeam to work with latest Wasmtime * WIP: Update Lightbeam to use current wasmtime * WIP: Migrate to new system for builtin functions * WIP: Update Lightbeam to work with latest Wasmtime * Remove multi_mut * Format * Fix some bugs around arguments, add debuginfo offset tracking * Complete integration with new Wasmtime * Remove commented code * Fix formatting * Fix warnings, remove unused dependencies * Fix `iter` if there are too many elements, fix compilation for latest wasmtime * Fix float arguments on stack * Remove wasm-reader and trap info work * Allocate stack space _before_ passing arguments, fail if we can't zero a xmm reg * Fix stack argument offset calculation * Fix stack arguments in Lightbeam * Re-add WASI because it somehow got removed during rebase * Workaround for apparent `type_alias_impl_trait`-related bug in rustdoc * Fix breakages caused by rebase, remove module offset info as it is unrelated to wasmtime integration PR and was broken by rebase * Add TODO comment explaining `lightbeam::ModuleContext` trait
26 lines
550 B
Rust
26 lines
550 B
Rust
#![cfg_attr(test, feature(test))]
|
|
#![feature(proc_macro_hygiene)]
|
|
|
|
#[cfg(test)]
|
|
extern crate test;
|
|
|
|
mod backend;
|
|
mod disassemble;
|
|
mod error;
|
|
mod function_body;
|
|
pub mod microwasm;
|
|
mod module;
|
|
mod translate_sections;
|
|
|
|
#[cfg(test)]
|
|
mod benches;
|
|
|
|
pub use crate::backend::CodeGenSession;
|
|
pub use crate::function_body::{
|
|
translate_wasm as translate_function, NullOffsetSink, OffsetSink, Sinks,
|
|
};
|
|
pub use crate::module::{
|
|
translate, ExecutableModule, ExecutionError, ModuleContext, Signature, TranslatedModule,
|
|
};
|
|
pub use disassemble::disassemble;
|