The shared host routine that expands a launch-table recipe into a mapped
arena at startup. The compiler emits one recipe per NVIDIA component
(program, QMD, pushbuffer, GPFIFO) from the schedule's repeat structure and
has already checked that the recipe expands to the exact table; this
routine is the same expansion in x86-64, bounded and fail-closed.
Recipe (little-endian):
"ALXR" u32 version=1 u64 outputExtent u32 opCount u32 zero
0x01 LITERAL u32 length bytes[length]
0x02 ZERO u32 length
0x03 REPEAT u32 count u32 unitLength u32 patchCount unit[unitLength]
patches[patchCount]{u32 offset u64 stride}
REPEAT copies the unit, then for each further copy duplicates the previous
copy and adds every patch's stride to the 64-bit word at its offset.
ABI (System V): rdi = recipe, rsi = recipe extent, rdx = output,
rcx = expected output extent. Returns rax = bytes written, or zero when the
recipe is malformed, exceeds a bound, or does not fill the expected extent
exactly. Uses only caller-saved registers and the red zone below rsp.
Red zone slots (below rsp): -8 output start, -16 unit pointer,
-24 unit length, -32 patch cursor, -40 patch count, -48 remaining copies,
-56 recipe cursor after the repeat, -64 patch base.
32def lrRAX : (family X86NativeRegister64) = (constructor X86NativeRegister64 X86NativeRAX)The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.