Source/Packages

Runtime.NativeLaunchRecipeRoutine

packages/execution/src/Runtime/NativeLaunchRecipeRoutine.alpha

180 lines37 declarations9.6 KiBSHA-256 6fe564254c66

def · lines 32–32

lrRAX

Full file
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.