Expand description

Target configuration

Structs

This is the target that we will use for compiling the WebAssembly ModuleInfo, and then run it.
A target “triple”. Historically such things had three fields, though they’ve added additional fields over time.

Enums

The “architecture” field, which in some cases also specifies a specific subarchitecture.
The “binary format” field, which is usually omitted, and the binary format is implied by the other fields.
The calling convention, which specifies things like which registers are used for passing arguments, which registers are callee-saved, and so on.
The nomenclature is inspired by the cpuid crate. The list of supported features was initially retrieved from cranelift-native.
The target memory endianness.
The “environment” field, which specifies an ABI environment on top of the operating system. In many configurations, this field is omitted, and the environment is implied by the operating system.
The “operating system” field, which sometimes implies an environment, and sometimes isn’t an actual operating system.
The width of a pointer (in the default address space).
The “vendor” field, which in practice is little more than an arbitrary modifier.