Source/Packages

Accelerator.SM86.Operands

packages/hardware/architectures/nvidia-sm86/src/Accelerator/SM86/Operands.alpha

645 lines51 declarations53.6 KiBSHA-256 e735be07682e

def · lines 75–92

sm86RegisterRun

Full file
`count` consecutive registers from `register`, prepended; none from RZ
75def sm86RegisterRun =
76  (lambda unrestricted register : (family SM86Register) .
77    (lambda unrestricted count : Nat .
78      (lambda unrestricted rest : (family StdList Nat) .
79        (let unrestricted index = (sm86RegisterIndex register) in
80        (nat-eliminate
81          (lambda unrestricted current : Nat . (family StdList Nat))
82          rest
83          (lambda unrestricted named : Nat . (lambda unrestricted ignored : (family StdList Nat) .
84            (nat-eliminate
85              (lambda unrestricted current : Nat . (family StdList Nat))
86              rest
87              (lambda unrestricted predecessor : Nat . (lambda unrestricted induction : (family StdList Nat) .
88                (constructor StdList StdListCons Nat
89                  (nat-add index (nat-subtract (nat-subtract count 1) predecessor))
90                  induction)))
91              count)))
92          (nat-add (nat-less-than index sm86RegisterZero) (nat-less-than sm86RegisterZero index)))))))

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.