MIR
A lightweight JIT compiler based on MIR
...Each local variable has a type which can be only a 64-bit integer, float, double, or long double. Each instruction has an opcode and operands. Operand can be a local variable (or a function argument), immediate, memory, label, or reference. The immediate operand can be a 64-bit integer, float, double, or long double value. There are conversion instructions for conversion between different 32- and 64-bit signed and unsigned values, float, double, and long double values. There are return instructions working on 32- and 64-bit integer values, float, double, and long double values.