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,
};
}