Source/Packages

Runtime.NativePhysicalNative

packages/execution/src/Runtime/NativePhysicalNative.alpha

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

def · lines 2657–2736

npRepeatPush

Full file
Frame zero is the inactive context. Push saves the parent iteration, count, first-body address and body-record count in private mapped scratch; pop restores it. Consequently loop-affine operands always use the innermost active iteration, and read zero again after the outermost repeat finishes. The frame bound comes from the command tree, not a fixed nesting capacity.
2657def npRepeatPush =
2658  (lambda unrestricted maximumDepth : Nat .
2659    (lambda unrestricted tail : (family X86NativeAssembly) .
2660      (nat-eliminate
2661        (lambda unrestricted current : Nat . (family X86NativeAssembly))
2662        (nativePhysicalNativeJump nativePhysicalNativeLabelFatalRecord tail)
2663        (lambda unrestricted predecessor : Nat .
2664          (lambda unrestricted ignored : (family X86NativeAssembly) .
2665            (npScratchInto
2666              npR10
2667              (npLoad64
2668                npR11
2669                npR10
2670                (x86NativeDisplacement32FromNatural nativePhysicalRepeatDepthAt)
2671                (npCompareImmediate
2672                  npR11
2673                  (x86NativeImmediate32FromNatural maximumDepth)
2674                  (nativePhysicalNativeJumpCondition
2675                    (constructor X86NativeCondition X86NativeConditionAbove)
2676                    nativePhysicalNativeLabelFatalRecord
2677                    (nativePhysicalNativeJumpCondition
2678                      npZero
2679                      nativePhysicalNativeLabelFatalRecord
2680                      (npMove
2681                        npRDI
2682                        npR11
2683                        (nativePhysicalNativeEmit
2684                          (constructor
2685                            X86NativeInstruction
2686                            X86NativeMultiplyImmediate64
2687                            npRDI
2688                            (x86NativeImmediate32FromNatural nativePhysicalRepeatFrameBytes))
2689                          (npAdd
2690                            npRDI
2691                            npR10
2692                            (npAddImmediate
2693                              npRDI
2694                              (x86NativeImmediate32FromNatural nativePhysicalRepeatFramesAt)
2695                              (npLoad64
2696                                npRAX
2697                                npR10
2698                                (x86NativeDisplacement32FromNatural (naturalMultiply 0 8))
2699                                (npStore64
2700                                  npRDI
2701                                  (x86NativeDisplacement32FromNatural (naturalMultiply 0 8))
2702                                  npRAX
2703                                  (npLoad64
2704                                    npRAX
2705                                    npR10
2706                                    (x86NativeDisplacement32FromNatural (naturalMultiply 1 8))
2707                                    (npStore64
2708                                      npRDI
2709                                      (x86NativeDisplacement32FromNatural (naturalMultiply 1 8))
2710                                      npRAX
2711                                      (npLoad64
2712                                        npRAX
2713                                        npR10
2714                                        (x86NativeDisplacement32FromNatural (naturalMultiply 2 8))
2715                                        (npStore64
2716                                        npRDI
2717                                        (x86NativeDisplacement32FromNatural (naturalMultiply 2 8))
2718                                        npRAX
2719                                        (npLoad64
2720                                        npRAX
2721                                        npR10
2722                                        (x86NativeDisplacement32FromNatural (naturalMultiply 3 8))
2723                                        (npStore64
2724                                        npRDI
2725                                        (x86NativeDisplacement32FromNatural (naturalMultiply 3 8))
2726                                        npRAX
2727                                        (npAddImmediate
2728                                        npR11
2729                                        (x86NativeImmediate32FromNatural 1)
2730                                        (npStore64
2731                                        npR10
2732                                        (x86NativeDisplacement32FromNatural
2733                                        nativePhysicalRepeatDepthAt)
2734                                        npR11
2735                                        tail)))))))))))))))))))))
2736        maximumDepth)))

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.