Source/Packages

Runtime.NativePhysicalNative

packages/execution/src/Runtime/NativePhysicalNative.alpha

3,650 lines210 declarations198.6 KiBSHA-256 028b70105699

def · lines 508–523

nativePhysicalNativePayloadBase

Full file
Record layout (Runtime.NativePhysicalImagePlan, V4): a record stores its operand slots up to the last one that is not the zero immediate; header word 7 ([record+56]) holds the operand bytes it omits (at most 168), and its payload begins at 232 minus that. These helpers keep the record pointer in R14 and use one scratch register that is dead at the call site. destination := destination + 232 - [r14+56]
508def nativePhysicalNativePayloadBase =
509  (lambda unrestricted destination : (family X86NativeRegister64) .
510    (lambda unrestricted scratch : (family X86NativeRegister64) .
511      (lambda unrestricted tail : (family X86NativeAssembly) .
512        (nativePhysicalNativeEmit
513          (nativePhysicalNativeAddImmediate
514            destination
515            (nativePhysicalNativeI32Byte (nat-to-byte nativePhysicalImageCommandFixedBytes)))
516          (nativePhysicalNativeEmit
517            (nativePhysicalNativeLoad64
518              scratch
519              (constructor X86NativeRegister64 X86NativeR14)
520              (nativePhysicalNativeDisplacementByte (byte 56)))
521            (nativePhysicalNativeEmit
522              (nativePhysicalNativeSubtract scratch destination)
523              tail))))))

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.