Sha256: 50245c51730ab31064628882d24155ba676803c29875ac9d226d081af9f6700d

Contents?: true

Size: 794 Bytes

Versions: 23

Compression:

Stored size: 794 Bytes

Contents

//! x64 addressing mode.

use crate::reg::Reg;
use cranelift_codegen::ir::Constant;

/// Memory address representation.
#[derive(Debug, Copy, Clone)]
pub(crate) enum Address {
    /// Base register with an immediate offset.
    Offset { base: Reg, offset: u32 },
    /// Address to identify a constant.
    Const(Constant),
}

impl Address {
    /// Create an offset.
    pub fn offset(base: Reg, offset: u32) -> Self {
        Self::Offset { base, offset }
    }

    /// Create an address for a constant.
    pub fn constant(data: Constant) -> Self {
        Self::Const(data)
    }

    /// Check if the address is a made made of a base and offset.
    pub fn is_offset(&self) -> bool {
        match self {
            Self::Offset { .. } => true,
            _ => false,
        }
    }
}

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
wasmtime-29.0.0 ./ext/cargo-vendor/winch-codegen-29.0.0/src/isa/x64/address.rs
wasmtime-28.0.0 ./ext/cargo-vendor/winch-codegen-28.0.0/src/isa/x64/address.rs
wasmtime-27.0.0 ./ext/cargo-vendor/winch-codegen-27.0.0/src/isa/x64/address.rs
wasmtime-26.0.0 ./ext/cargo-vendor/winch-codegen-26.0.0/src/isa/x64/address.rs
wasmtime-25.0.2 ./ext/cargo-vendor/winch-codegen-0.23.2/src/isa/x64/address.rs
wasmtime-25.0.1 ./ext/cargo-vendor/winch-codegen-0.23.1/src/isa/x64/address.rs
wasmtime-25.0.0 ./ext/cargo-vendor/winch-codegen-0.23.0/src/isa/x64/address.rs
wasmtime-24.0.0 ./ext/cargo-vendor/winch-codegen-0.22.0/src/isa/x64/address.rs
wasmtime-23.0.2 ./ext/cargo-vendor/winch-codegen-0.21.2/src/isa/x64/address.rs
wasmtime-22.0.0 ./ext/cargo-vendor/winch-codegen-0.20.0/src/isa/x64/address.rs
wasmtime-21.0.1 ./ext/cargo-vendor/winch-codegen-0.19.1/src/isa/x64/address.rs
wasmtime-20.0.2 ./ext/cargo-vendor/winch-codegen-0.18.2/src/isa/x64/address.rs
wasmtime-20.0.0 ./ext/cargo-vendor/winch-codegen-0.18.0/src/isa/x64/address.rs
wasmtime-18.0.3 ./ext/cargo-vendor/winch-codegen-0.16.3/src/isa/x64/address.rs
wasmtime-17.0.1 ./ext/cargo-vendor/winch-codegen-0.15.1/src/isa/x64/address.rs
wasmtime-17.0.0 ./ext/cargo-vendor/winch-codegen-0.15.0/src/isa/x64/address.rs
wasmtime-16.0.0 ./ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/address.rs
wasmtime-15.0.1 ./ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/address.rs
wasmtime-15.0.0 ./ext/cargo-vendor/winch-codegen-0.13.0/src/isa/x64/address.rs
wasmtime-14.0.4 ./ext/cargo-vendor/winch-codegen-0.12.4/src/isa/x64/address.rs