Sha256: 33498299244c149497488cc6e62c001306756742e0d08461e825905491beb2ba

Contents?: true

Size: 824 Bytes

Versions: 2

Compression:

Stored size: 824 Bytes

Contents

//! Type-based states to represent code generation phases.
//! These states help enforce code generation invariants at compile time.
//!
//! Currently two phases are defined for code generation:
//!
//! * Prologue: responsible of setting up the function's frame.
//! * Emission: emission of Wasm code to machine code.

/// A code generation phase.
pub trait CodeGenPhase {}

/// The prologue phase.
///
/// Its main responsibility is to setup the function's frame, by creating the
/// well known local slots. In this phase, writes to such slots is allowed.
/// After this phase, the frame is considered immutable.
pub struct Prologue;
/// The code emission phase.
///
/// Its main responsibility is to emit Wasm code to machine code.
pub struct Emission;

impl CodeGenPhase for Prologue {}
impl CodeGenPhase for Emission {}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
wasmtime-29.0.0 ./ext/cargo-vendor/winch-codegen-29.0.0/src/codegen/phase.rs
wasmtime-28.0.0 ./ext/cargo-vendor/winch-codegen-28.0.0/src/codegen/phase.rs