74def rotaryTableSM86Program : (family SM86Program) =
75 -- R1 the stack pointer (the ABI's first word); R0 the position
76 (rotaryTableNext (constructor SM86InstructionBody SM86MoveConstant (rotaryTableRegister (byte 1)) (byte 0) rotaryTableStackPointer sm86SafeControl)
77 (rotaryTableNext (constructor SM86InstructionBody SM86SpecialToRegister (rotaryTableRegister (byte 0)) (constructor SM86SpecialRegister SM86CooperativeThreadArrayIdX) rotaryTableSet0)
78 (rotaryTableNext (constructor SM86InstructionBody SM86SpecialToRegister (rotaryTableRegister (byte 2)) (constructor SM86SpecialRegister SM86ThreadIdX) rotaryTableSet0)
79 (rotaryTableNext (constructor SM86InstructionBody SM86IntegerMultiplyAddConstant
80 (rotaryTableRegister (byte 0)) (rotaryTableRegister (byte 0)) (byte 0) rotaryTableZero (rotaryTableRegister (byte 2)) rotaryTableWait0)
81 -- the scalars
82 (rotaryTableNext (rotaryTableFloat (byte 5) 0)
83 (rotaryTableNext (rotaryTableFloat (byte 6) 1)
84 (rotaryTableNext (rotaryTableFloat (byte 7) 2)
85 (rotaryTableNext (rotaryTableFloat (byte 8) 3)
86 (rotaryTableNext (rotaryTableFloat (byte 9) 4)
87 (rotaryTableNext (rotaryTableFloat (byte 10) 5)
88 (rotaryTableNext (rotaryTableFloat (byte 3) 6)
89 -- a = p thetaHigh, and the rounding error of that product, exactly
90 (rotaryTableNext (constructor SM86InstructionBody SM86IntegerToFloat (rotaryTableRegister (byte 4)) (rotaryTableRegister (byte 0)) sm86SafeControl)
91 (rotaryTableNext (constructor SM86InstructionBody SM86FloatMultiply (rotaryTableRegister (byte 11)) (rotaryTableRegister (byte 4)) (rotaryTableRegister (byte 5)) sm86SafeControl)
92 (rotaryTableNext (rotaryTableNegate (byte 12) (byte 11))
93 (rotaryTableNext (rotaryTableFMA (byte 13) (byte 4) (byte 5) (byte 12))
94 -- the angle's low part: the product's error plus p thetaLow
95 (rotaryTableNext (rotaryTableFMA (byte 14) (byte 4) (byte 6) (byte 13))
96 -- k, the nearest whole number of turns in a
97 (rotaryTableNext (rotaryTableFMA (byte 15) (byte 11) (byte 7) (byte 10))
98 (rotaryTableNext (rotaryTableNegate (byte 17) (byte 10))
99 (rotaryTableNext (constructor SM86InstructionBody SM86FloatAdd (rotaryTableRegister (byte 16)) (rotaryTableRegister (byte 15)) (rotaryTableRegister (byte 17)) sm86SafeControl)
100 (rotaryTableNext (rotaryTableNegate (byte 18) (byte 16))
101 -- r = ((a - k twoPiHigh) - k twoPiLow) + the low part
102 (rotaryTableNext (rotaryTableFMA (byte 19) (byte 18) (byte 8) (byte 11))
103 (rotaryTableNext (rotaryTableFMA (byte 19) (byte 18) (byte 9) (byte 19))
104 (rotaryTableNext (constructor SM86InstructionBody SM86FloatAdd (rotaryTableRegister (byte 19)) (rotaryTableRegister (byte 19)) (rotaryTableRegister (byte 14)) sm86SafeControl)
105 -- in turns, then the cosine and the sine
106 (rotaryTableNext (constructor SM86InstructionBody SM86FloatMultiply (rotaryTableRegister (byte 20)) (rotaryTableRegister (byte 19)) (rotaryTableRegister (byte 7)) sm86SafeControl)
107 (rotaryTableNext (constructor SM86InstructionBody SM86MultiFunctionUnitApproximation (rotaryTableRegister (byte 21)) (rotaryTableRegister (byte 20)) (constructor SM86MultiFunction SM86Cosine) rotaryTableSet1)
108 (rotaryTableNext (constructor SM86InstructionBody SM86MultiFunctionUnitApproximation (rotaryTableRegister (byte 22)) (rotaryTableRegister (byte 20)) (constructor SM86MultiFunction SM86Sine) rotaryTableSet1)
109 -- the column entries: base + p stride
110 (rotaryTableNext (constructor SM86InstructionBody SM86IntegerMultiplyAddWideConstant
111 (rotaryTableRegister (byte 24)) (rotaryTableRegister (byte 0)) (rotaryTableRegister (byte 3)) (byte 0) rotaryTableCosine sm86SafeControl)
112 (rotaryTableNext (constructor SM86InstructionBody SM86IntegerMultiplyAddWideConstant
113 (rotaryTableRegister (byte 26)) (rotaryTableRegister (byte 0)) (rotaryTableRegister (byte 3)) (byte 0) rotaryTableSine sm86SafeControl)
114 (rotaryTableNext (constructor SM86InstructionBody SM86StoreGlobal (rotaryTableRegister (byte 24)) (rotaryTableRegister (byte 21)) rotaryTableZero rotaryTableWait1)
115 (rotaryTableNext (constructor SM86InstructionBody SM86StoreGlobal (rotaryTableRegister (byte 26)) (rotaryTableRegister (byte 22)) rotaryTableZero sm86SafeControl)
116 (rotaryTableNext (constructor SM86InstructionBody SM86Exit sm86SafeControl)
117 (constructor SM86Program SM86ProgramEnd))))))))))))))))))))))))))))))))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.