Source/Packages

Runtime.NativePhysicalNative

packages/execution/src/Runtime/NativePhysicalNative.alpha

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

def · lines 2812–2891

npRepeatScan

Full file
Count the body records from RAX up to the matching end into R11. RDX is the nesting depth inside the body: a begin deepens it, an end at depth zero is the match. Every record is validated by nativePhysicalNativeScanRecord before its tag or extent is used (RDI holds the extent, R8/R9 are its scratch), and the count stays below the records left in R13.
2812def npRepeatScan =
2813  (lambda unrestricted tail : (family X86NativeAssembly) .
2814    (nativePhysicalNativeLabel
2815      nativePhysicalNativeLabelRepeatScan
2816      (nativePhysicalNativeScanRecord
2817        npRAX
2818        npRDI
2819        (constructor X86NativeRegister64 X86NativeR8)
2820        (constructor X86NativeRegister64 X86NativeR9)
2821        (npCompare
2822          npRAX
2823          npR12
2824          (nativePhysicalNativeJumpCondition
2825            npBelow
2826            nativePhysicalNativeLabelRepeatScanNext
2827            (nativePhysicalNativeJump
2828              nativePhysicalNativeLabelFatalRecord
2829              (nativePhysicalNativeLabel
2830                nativePhysicalNativeLabelRepeatScanNext
2831                (npCompare
2832                  npR11
2833                  npR13
2834                  (nativePhysicalNativeJumpCondition
2835                    (constructor X86NativeCondition X86NativeConditionAbove)
2836                    nativePhysicalNativeLabelFatalRecord
2837                    (nativePhysicalNativeJumpCondition
2838                      npZero
2839                      nativePhysicalNativeLabelFatalRecord
2840                      (npLoad64
2841                        npRSI
2842                        npRAX
2843                        nativePhysicalNativeD0
2844                        (npCompareImmediate
2845                          npRSI
2846                          (nativePhysicalNativeI32Byte (byte 9))
2847                          (nativePhysicalNativeJumpCondition
2848                            npZero
2849                            b"repeat-scan-enter"
2850                            (npCompareImmediate
2851                              npRSI
2852                              (nativePhysicalNativeI32Byte (byte 10))
2853                              (nativePhysicalNativeJumpCondition
2854                                npZero
2855                                b"repeat-scan-end"
2856                                (npCompareImmediate
2857                                  npRSI
2858                                  (nativePhysicalNativeI32Byte (byte 22))
2859                                  (nativePhysicalNativeJumpCondition
2860                                    npZero
2861                                    b"repeat-scan-end"
2862                                    (nativePhysicalNativeJump
2863                                      b"repeat-scan-advance"
2864                                      (nativePhysicalNativeLabel
2865                                        b"repeat-scan-enter"
2866                                        (npAddImmediate
2867                                        npRDX
2868                                        (nativePhysicalNativeI32Byte (byte 1))
2869                                        (nativePhysicalNativeJump
2870                                        b"repeat-scan-advance"
2871                                        (nativePhysicalNativeLabel
2872                                        b"repeat-scan-end"
2873                                        (npTest
2874                                        npRDX
2875                                        (nativePhysicalNativeJumpCondition
2876                                        npZero
2877                                        nativePhysicalNativeLabelRepeatFound
2878                                        (npAddImmediate
2879                                        npRDX
2880                                        nativePhysicalNativeI32NegativeOne
2881                                        (nativePhysicalNativeLabel
2882                                        b"repeat-scan-advance"
2883                                        (npAddImmediate
2884                                        npR11
2885                                        (nativePhysicalNativeI32Byte (byte 1))
2886                                        (npAdd
2887                                        npRAX
2888                                        npRDI
2889                                        (nativePhysicalNativeJump
2890                                        nativePhysicalNativeLabelRepeatScan
2891                                        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.