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.