summaryrefslogtreecommitdiffstats
path: root/third_party/rust/cranelift-wasm/src/lib.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /third_party/rust/cranelift-wasm/src/lib.rs
parentInitial commit. (diff)
downloadfirefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz
firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/cranelift-wasm/src/lib.rs')
-rw-r--r--third_party/rust/cranelift-wasm/src/lib.rs76
1 files changed, 76 insertions, 0 deletions
diff --git a/third_party/rust/cranelift-wasm/src/lib.rs b/third_party/rust/cranelift-wasm/src/lib.rs
new file mode 100644
index 0000000000..3e6d4401a1
--- /dev/null
+++ b/third_party/rust/cranelift-wasm/src/lib.rs
@@ -0,0 +1,76 @@
+//! Performs translation from a wasm module in binary format to the in-memory form
+//! of Cranelift IR. More particularly, it translates the code of all the functions bodies and
+//! interacts with an environment implementing the
+//! [`ModuleEnvironment`](trait.ModuleEnvironment.html)
+//! trait to deal with tables, globals and linear memory.
+//!
+//! The crate provides a `DummyEnvironment` struct that will allow to translate the code of the
+//! functions but will fail at execution.
+//!
+//! The main function of this module is [`translate_module`](fn.translate_module.html).
+
+#![deny(missing_docs, trivial_numeric_casts, unused_extern_crates)]
+#![warn(unused_import_braces)]
+#![cfg_attr(feature = "std", deny(unstable_features))]
+#![cfg_attr(feature = "clippy", plugin(clippy(conf_file = "../../clippy.toml")))]
+#![cfg_attr(feature = "cargo-clippy", allow(clippy::new_without_default))]
+#![cfg_attr(
+ feature = "cargo-clippy",
+ warn(
+ clippy::float_arithmetic,
+ clippy::mut_mut,
+ clippy::nonminimal_bool,
+ clippy::map_unwrap_or,
+ clippy::clippy::print_stdout,
+ clippy::unicode_not_nfc,
+ clippy::use_self
+ )
+)]
+#![no_std]
+
+#[cfg(not(feature = "std"))]
+#[macro_use]
+extern crate alloc as std;
+#[cfg(feature = "std")]
+#[macro_use]
+extern crate std;
+
+#[cfg(not(feature = "std"))]
+use hashbrown::{
+ hash_map,
+ hash_map::Entry::{Occupied, Vacant},
+ HashMap,
+};
+#[cfg(feature = "std")]
+use std::collections::{
+ hash_map,
+ hash_map::Entry::{Occupied, Vacant},
+ HashMap,
+};
+
+mod code_translator;
+mod environ;
+mod func_translator;
+mod module_translator;
+mod sections_translator;
+mod state;
+mod translation_utils;
+
+pub use crate::environ::{
+ DummyEnvironment, FuncEnvironment, GlobalVariable, ModuleEnvironment, ReturnMode,
+ TargetEnvironment, WasmError, WasmFuncType, WasmResult, WasmType,
+};
+pub use crate::func_translator::FuncTranslator;
+pub use crate::module_translator::translate_module;
+pub use crate::state::func_state::FuncTranslationState;
+pub use crate::state::module_state::ModuleTranslationState;
+pub use crate::translation_utils::*;
+pub use cranelift_frontend::FunctionBuilder;
+
+// Convenience reexport of the wasmparser crate that we're linking against,
+// since a number of types in `wasmparser` show up in the public API of
+// `cranelift-wasm`.
+pub use wasmparser;
+
+/// Version number of this crate.
+pub const VERSION: &str = env!("CARGO_PKG_VERSION");