Native intrinsic reference
DO NOT COLLAPSE NAME SOURCES. The canonical v11.10.1 package document and the supplied 11.10.1 reissue delta use overlapping but not identical spellings. This page records both surfaces and labels their provenance instead of pretending they are one list.
Reference state§
PACKAGE dbyte-v11.10.1-windows-x64.zip ARTIFACT REISSUED 2026-08-24 SHA256 52e86e0fa0a34972ad60aa8de442583329e9deaee2a967142fc708f61b581c78 TARGET i686-dbyte-none LOWERING DByte native backend -> x86 machine code HOST BRIDGE NONE FOR NATIVE INTRINSICS TOTAL COUNT NOT PUBLISHED; supplied count arithmetic is inconsistent
11.10.1 reissue delta§
| Call name | Declared signature | Recorded lowering | Opcode bytes | dbytec.exe ASCII evidence |
|---|---|---|---|---|
native.volatile_load16 | int -> int | MOVZX r32, WORD [r] | 0F B7 | NAME PRESENT |
native.volatile_store16 | (int,int) -> void | MOV WORD [r], r16 | 66 89 | NAME PRESENT |
native.mem_copy | (int,int,int) -> void | REP MOVSB | F3 A4 | NAME PRESENT |
native.mem_set | (int,int,int) -> void | REP STOSB | F3 AA | NAME PRESENT |
native.mem_zero | (int,int) -> void | XOR EAX + REP STOSB | 31 C0 / F3 AA | NAME PRESENT |
native.cpu_cli | () -> void | CLI | FA | NAME PRESENT |
native.cpu_sti | () -> void | STI | FB | NAME PRESENT |
native.cpu_pause | () -> void | PAUSE | F3 90 | NAME PRESENT |
native.lidt | (int) -> void | LIDT [r] | 0F 01 /3 | NAME PRESENT |
native.read_eflags | () -> int | PUSHFD + POP EAX | 9C 58 | NAME PRESENT |
native.write_eflags | (int) -> void | PUSH EAX + POPFD | 50 9D | NAME PRESENT |
Signatures/opcode descriptions above come from the supplied v11.10.1 change list. ASCII-name presence is only name evidence inside the canonical compiler binary; it is not a substitute for executing a verifier.
Package-documented intrinsic namespace§
The canonical package docs/DBYTE_NATIVE.md documents this freestanding intrinsic surface:
| Name | Source | dbytec.exe ASCII evidence |
|---|---|---|
native.volatile_load8 | PACKAGE DOC | NAME PRESENT |
native.volatile_store8 | PACKAGE DOC | NAME PRESENT |
native.volatile_load16 | PACKAGE DOC | NAME PRESENT |
native.volatile_store16 | PACKAGE DOC | NAME PRESENT |
native.volatile_load32 | PACKAGE DOC | NAME PRESENT |
native.volatile_store32 | PACKAGE DOC | NAME PRESENT |
native.io_in8 | PACKAGE DOC | NAME PRESENT |
native.io_out8 | PACKAGE DOC | NAME PRESENT |
native.io_in16 | PACKAGE DOC | NAME PRESENT |
native.io_out16 | PACKAGE DOC | NAME PRESENT |
native.cpu_hlt | PACKAGE DOC | NAME PRESENT |
native.cpu_cli | PACKAGE DOC | NAME PRESENT |
native.cpu_sti | PACKAGE DOC | NAME PRESENT |
native.cpu_int3 | PACKAGE DOC | NAME PRESENT |
native.cpu_read_eflags | PACKAGE DOC | NAME PRESENT |
native.cpu_lgdt | PACKAGE DOC | NAME PRESENT |
native.cpu_lidt | PACKAGE DOC | NAME PRESENT |
native.cpu_reload_segments | PACKAGE DOC | NAME PRESENT |
Port alias lane§
| Name | Claim | dbytec.exe ASCII evidence |
|---|---|---|
port_in8 | alias of io_in8 | NAME PRESENT |
port_out8 | alias of io_out8 | NAME NOT FOUND |
port_out8 is listed by the supplied release summary, but the exact ASCII spelling was not found in the canonical dbytec.exe scanned for this manual build. Do not treat the alias as proven solely from this page. Compile a minimal source probe or inspect compiler source before making it part of an ABI contract.
Naming discrepancy§
PACKAGE DOCUMENT REISSUE DELTA native.cpu_lidt(...) native.lidt(...) native.cpu_read_eflags() native.read_eflags() [no cpu_write_eflags listed] native.write_eflags(...) BINARY NAME EVIDENCE native.cpu_lidt present native.lidt present native.cpu_read_eflags present native.read_eflags present native.write_eflags present native.cpu_write_eflags not found
This is deliberately not normalized. A compatibility alias, renamed builtin, stale document, and dead string are different facts. The compiler source/test contract must decide which names are canonical.
Original v11.0 intrinsic boundary§
native.volatile_load8(address) native.volatile_store8(address, value) native.volatile_load32(address) native.volatile_store32(address, value) native.io_out8(port, value) native.io_in8(port) native.cpu_hlt()
In v11.0, intrinsic arguments were statically required to be i32. Byte stores and output used the low 8 bits, byte loads and input zero-extended to i32, and port numbers used the low 16 bits. Calls lowered directly to x86 and were not exposed by hosted runtimes.
Caller responsibility§
- Intrinsic names do not imply memory safety, bounds checking, device ownership, or interrupt policy.
CLI/STI, IDT loading, EFLAGS restoration and raw I/O are machine-state operations. The supplied change list does not define a general safety wrapper around them.- The supplied release notes do not document a stable register-clobber/flags contract for every new 11.10.1 intrinsic. Do not invent one in downstream code.
- For persistent ABI use, verify generated bytes and runtime behavior, not only parser acceptance.
Recommended proof shape§
SOURCE PROBE -> compile with dbytec --target i686-dbyte-none -> inspect emitted object / final ELF -> disassemble after emission -> verify exact instruction sequence -> boot only if machine state mutation is required -> compare serial/debug evidence -> preserve SHA256 of source, object and ELF