Source/Packages

Runtime.NativePhysicalNative

packages/execution/src/Runtime/NativePhysicalNative.alpha

3,420 lines207 declarations187.4 KiBSHA-256 9c16b0741974

def · lines 551–589

nativePhysicalNativeResolveSlot

Full file
Resolve the operand slot at rdi of the record at r14. A slot at or past 232 - [r14+56] is not stored and reads as the zero immediate. Scratches rax, r10 and r11, like the resolver it falls into.
551def nativePhysicalNativeResolveSlot =
552  (lambda unrestricted tail : (family X86NativeAssembly) .
553    (nativePhysicalNativeLabel
554      nativePhysicalNativeLabelResolveSlot
555      (nativePhysicalNativeEmit
556        (nativePhysicalNativeMove
557          (constructor X86NativeRegister64 X86NativeRDI)
558          (constructor X86NativeRegister64 X86NativeR10))
559        (nativePhysicalNativeEmit
560          (nativePhysicalNativeSubtract
561            (constructor X86NativeRegister64 X86NativeR14)
562            (constructor X86NativeRegister64 X86NativeR10))
563          (nativePhysicalNativeEmit
564            (nativePhysicalNativeMoveImmediate32
565              (constructor X86NativeRegister64 X86NativeR11)
566              (nativePhysicalNativeI32Byte (nat-to-byte nativePhysicalImageCommandFixedBytes)))
567            (nativePhysicalNativeEmit
568              (nativePhysicalNativeLoad64
569                (constructor X86NativeRegister64 X86NativeRAX)
570                (constructor X86NativeRegister64 X86NativeR14)
571                (nativePhysicalNativeDisplacementByte (byte 56)))
572              (nativePhysicalNativeEmit
573                (nativePhysicalNativeSubtract
574                  (constructor X86NativeRegister64 X86NativeRAX)
575                  (constructor X86NativeRegister64 X86NativeR11))
576                (nativePhysicalNativeEmit
577                  (nativePhysicalNativeCompare
578                    (constructor X86NativeRegister64 X86NativeR11)
579                    (constructor X86NativeRegister64 X86NativeR10))
580                  (nativePhysicalNativeJumpCondition
581                    (constructor X86NativeCondition X86NativeConditionBelow)
582                    nativePhysicalNativeLabelResolve
583                    (nativePhysicalNativeEmit
584                      (nativePhysicalNativeMoveImmediate32
585                        (constructor X86NativeRegister64 X86NativeRAX)
586                        (nativePhysicalNativeI32Byte (byte 0)))
587                      (nativePhysicalNativeEmit
588                        nativePhysicalNativeReturnInstruction
589                        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.