struct Asm [src]

Trailing: Output for every outputs_len Input for every inputs_len clobber: NullTerminatedString // index into string_bytes (null terminated) for every clobbers_len.

Fields

src_node: Ast.Node.Offset
asm_source: NullTerminatedString
output_type_bits: u321 bit for each outputs_len: whether it uses -> T or not. 0b0 - operand is a pointer to where to store the output. 0b1 - operand is a type; asm expression has the output as the result. 0b0X is the first output, 0bX0 is the second, etc.

Members

Source

pub const Asm = struct { src_node: Ast.Node.Offset, // null-terminated string index asm_source: NullTerminatedString, /// 1 bit for each outputs_len: whether it uses `-> T` or not. /// 0b0 - operand is a pointer to where to store the output. /// 0b1 - operand is a type; asm expression has the output as the result. /// 0b0X is the first output, 0bX0 is the second, etc. output_type_bits: u32, pub const Output = struct { /// index into string_bytes (null terminated) name: NullTerminatedString, /// index into string_bytes (null terminated) constraint: NullTerminatedString, /// How to interpret this is determined by `output_type_bits`. operand: Ref, }; pub const Input = struct { /// index into string_bytes (null terminated) name: NullTerminatedString, /// index into string_bytes (null terminated) constraint: NullTerminatedString, operand: Ref, }; }