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.