fn prepare_addr<FE>(
    memarg: &MemArg,
    access_size: u8,
    builder: &mut FunctionBuilder<'_>,
    state: &mut FuncTranslationState,
    environ: &mut FE,
) -> WasmResult<Reachability<(MemFlags, Value, Value)>>
where FE: FuncEnvironment + ?Sized,
Expand description

This function is a generalized helper for validating that a wasm-supplied heap address is in-bounds.

This function takes a litany of parameters and requires that the Wasm address to be verified is at the top of the stack in state. This will generate necessary IR to validate that the heap address is correctly in-bounds, and various parameters are returned describing the valid native heap address if execution reaches that point.

Returns None when the Wasm access will unconditionally trap.

Returns (flags, wasm_addr, native_addr).