This is an internal crate used to generate WebAssembly instructions for blocks. It relies upon HyperQuark's internal types so cannot be used outside of HyperQuark.
The wasm![] macro produces a Vec<wasm_encoder::Instruction<'static>>. Inputs to the macro are (non-namespaced) wasm_encoder Instructions, or a 'special' instruction. Special instructions are currently:
@nanreduce(input_name)- checks the top value on the stack for NaN-ness (and replaces it with a zero if it is), only ifinput_name(must be an in-scopeIrType) could possibly beNaN. Assumes (rightly so) that the top item on the stack is anf64.@boxed(input_name)- boxes the top value on the stack ifinput_nameis a base type@isnan(input_name)- checks if the top value on the stack for NaN-ness, only ifinput_namecould possibly be NaN. Assumes the top item on the stack is anf64.