asm_fixed
nanofil
In Fil-C memory-safe inline assembly
An inline asm statement of one fixed-register instruction: asm_fixedM, Ins, Outs runs M (cpuid, xgetbv, rdtsc, rdtscp, or the operand-free lfence, sfence and pause) on w inputs in the registers M reads, defining w temporaries from the registers it writes (ir:asm_fixed_regs/3, asm-fixed.md).
Other inline asm is a blank-template barrier (its operands are evaluated, nothing else), a call to zsafety_error where filcc would refuse it at run time, or refused. The interpreter stops at unknownasmM, Xs, since only the machine knows the results; it is outside the core subset.
Linked from
- NFB guide (Argon): Bridging `Term.v` and `Syntax.v`: `IrTerm.v`, `Transport.v`, and `Nfb.v`
- NFB guide (Argon): Instruction header word
- NFB guide (Argon): Opcode map (`nfb_form/3`)
- NFB guide (Wonder): 11.2 Function bodies and instruction words
- NFB guide (Wonder): 11.3 Operands, constants and the small fields
- NFB guide (Wonder): 11.4 Ids, definitions and the `rebind` word
- NFB guide (Wonder): 12. The Prolog and Gallina sides
- NFB guide (Wonderful): 19. One table, written twice
- NFB guide (Wonderful): Dense ids, and the rebind word
- NFB guide (Wonderful): Layout rule
- NFB guide (Wonderful): Temporaries and phis
- Syntax.v: class
- Transport.v: dz
- core subset
- outcome
- the formal campaign: The claims, kept apart
- the guide: 13. Running it: interp.pl