In stark contrast with every reasonable architecture, X86-32 does not pass any parameters in registers. Because of that we have to resort to reading arguments from stack without being able to use the stack slot machinery. (This wouldn't have been avoidable even by pinning a register because there is a trampoline in wasmtime with the C ABI that Cranelift needs to be able to call.)
This crate contains the core Cranelift code generator. It translates code from an intermediate representation into executable machine code.