ristretto_jit 0.32.1

JVM JIT Compiler
Documentation
//! # Ristretto JIT
//!
//! [![Code Coverage](https://codecov.io/gh/theseus-rs/ristretto/branch/main/graph/badge.svg)](https://codecov.io/gh/theseus-rs/ristretto)
//! [![Benchmarks](https://img.shields.io/badge/%F0%9F%90%B0_bencher-enabled-6ec241)](https://bencher.dev/perf/theseus-rs-ristretto)
//! [![License](https://img.shields.io/crates/l/ristretto_jit)](https://github.com/theseus-rs/ristretto#license)
//! [![Semantic Versioning](https://img.shields.io/badge/%E2%9A%99%EF%B8%8F_SemVer-2.0.0-blue)](https://semver.org/spec/v2.0.0.html)
//!
//! Ristretto JIT provides a Just-In-Time compiler for the Ristretto VM. The JIT compiler generates
//! native code from Ristretto VM bytecode, allowing for high-performance execution directly on the
//! host machine.
//!
//! ## Platform Support
//!
//! The JIT compiler automatically adapts to the target platform:
//!
//! - **Native platforms**:
//!   - x86-64 (Intel/AMD 64-bit)
//!   - aarch64 (ARM 64-bit)
//!   - s390x (IBM Z Architecture)
//!   - riscv64 (RISC-V 64-bit)
//!
//! ## Limitations
//!
//! Current limitations include:
//!
//! - Method invocation instructions (`invokestatic`, `invokevirtual`, `invokespecial`,
//!   `invokeinterface`, `invokedynamic`) are not yet supported

#![allow(unsafe_code)]
#![cfg_attr(
    test,
    expect(
        clippy::indexing_slicing,
        clippy::panic_in_result_fn,
        reason = "unit tests use direct fixture indexing and assertions with Result-returning tests"
    )
)]
#[cfg(all(
    not(target_family = "wasm"),
    target_endian = "little",
    not(any(
        target_arch = "mips",
        target_arch = "mips64",
        target_os = "dragonfly",
        target_os = "solaris"
    ))
))]
mod compiler;
#[cfg(all(
    not(target_family = "wasm"),
    target_endian = "little",
    not(any(
        target_arch = "mips",
        target_arch = "mips64",
        target_os = "dragonfly",
        target_os = "solaris"
    ))
))]
mod control_flow_graph;
mod error;
mod function;
#[cfg(all(
    not(target_family = "wasm"),
    target_endian = "little",
    not(any(
        target_arch = "mips",
        target_arch = "mips64",
        target_os = "dragonfly",
        target_os = "solaris"
    ))
))]
mod instruction;
mod jit_value;
#[cfg(all(
    not(target_family = "wasm"),
    target_endian = "little",
    not(any(
        target_arch = "mips",
        target_arch = "mips64",
        target_os = "dragonfly",
        target_os = "solaris"
    ))
))]
mod local_type;
#[cfg(all(
    not(target_family = "wasm"),
    target_endian = "little",
    not(any(
        target_arch = "mips",
        target_arch = "mips64",
        target_os = "dragonfly",
        target_os = "solaris"
    ))
))]
mod local_variables;
#[cfg(all(
    not(target_family = "wasm"),
    target_endian = "little",
    not(any(
        target_arch = "mips",
        target_arch = "mips64",
        target_os = "dragonfly",
        target_os = "solaris"
    ))
))]
mod operand_stack;
#[cfg(all(
    not(target_family = "wasm"),
    target_endian = "little",
    not(any(
        target_arch = "mips",
        target_arch = "mips64",
        target_os = "dragonfly",
        target_os = "solaris"
    ))
))]
mod runtime_helpers;
#[cfg(all(
    test,
    not(target_family = "wasm"),
    target_endian = "little",
    not(any(
        target_arch = "mips",
        target_arch = "mips64",
        target_os = "dragonfly",
        target_os = "solaris"
    ))
))]
mod test;
mod value;
#[cfg(any(
    target_family = "wasm",
    target_endian = "big",
    target_arch = "mips",
    target_arch = "mips64",
    target_os = "dragonfly",
    target_os = "solaris"
))]
mod wasm_compiler;

#[cfg(all(
    not(target_family = "wasm"),
    target_endian = "little",
    not(any(
        target_arch = "mips",
        target_arch = "mips64",
        target_os = "dragonfly",
        target_os = "solaris"
    ))
))]
pub use compiler::Compiler;
pub use error::{Error, Result};
pub use function::Function;
pub(crate) use jit_value::JitValue;
pub use value::Value;
#[cfg(any(
    target_family = "wasm",
    target_endian = "big",
    target_arch = "mips",
    target_arch = "mips64",
    target_os = "dragonfly",
    target_os = "solaris"
))]
pub use wasm_compiler::Compiler;