8 A1
= abs a1
, a0
= ABS A0;
21 r4.
L = R2.h
+ r0.
L (s
);
22 r5.H
= R1.H
+ R1.
L (S
);
23 r6.
L = R6.
L + r5.
l (NS
);
26 .global add_sub_prescale_down
27 add_sub_prescale_down
:
28 r4.
l = r0 + r1 (RND20
);
29 R3.H
= r5 + r0 (rnd20
);
30 r1.
L = r7 - R5 (rND20
);
33 .global add_sub_prescale_up
35 r2.
L = R0 + R1 (rnd12
);
36 r7.H
= r7 + r6 (RND12
);
37 r5.
l = r3 - R2 (rNd12
);
38 r2.h
= R1 - R2 (Rnd12
);
54 .global divide_primitive
62 r6.
L = EXPADJ
(r5, r4.
l);
63 R5.
l = ExpAdj
(r0.h
, r1.
l);
64 R4.
L = expadj
(R3, R5.
L) (V
);
80 .global modify_decrement
90 .global modify_increment
106 r1.
L = r5.H
* r0.H
(s2rnd
);
107 r7.
l = r3.
l * r3.H
(FU
);
108 r4 = r2.H
* r5.H
(iSS2
);
109 r0 = r1.
l * r3.
l (is
);
112 r2.h
= r7.
l * r6.H
(M
, iu
);
114 R0.H
= r1.
L * r1.H
(M
);
115 r1 = r7.H
* r6.
L (M
, is
);
117 r3 = r6.H
* r0.H
(m
);
126 .global multiply_accumulate
128 a0
= r5.
l * R7.H
(w32
);
130 A0
+= R2.
L * r3.H
(FU
);
132 a0
-= r7.
l * r6.H
(Is
);
135 a1
= r1.
L * r0.H
(M
);
137 A1
= R7.H
* R6.
L (M
, W32
);
138 a1
+= r3.
l * r2.
l (fu
);
140 A1
-= r0.
L * R3.H
(is
);
144 .global multiply_accumulate_half
145 multiply_accumulate_half
:
146 r7.
l = (a0
= r6.H
* r5.
L);
147 r0.
L = (A0
= r1.h
* R2.
l) (tfu
);
148 R2.
L = (a0
+= r5.
L * r4.
L);
149 r3.
l = (A0
+= r7.H
* r6.h
) (T);
150 r0.
l = (a0
-= r3.h
* r2.h
);
151 r1.
l = (a0
-= r5.
L * r4.
L) (iH
);
153 r1.H
= (a1
= r1.
l * R0.H
);
154 r2.h
= (A1
= r0.H
* r3.
L) (M
, Iss2
);
155 R6.H
= (a1
+= r7.
l * r7.H
);
156 r7.h
= (a1
+= R2.
L * R3.
L) (S2rnd
);
157 r6.H
= (A1
-= R4.h
* r2.h
);
158 r5.h
= (a1
-= r3.H
* r7.
L) (M
, tFu
);
161 .global multiply_accumulate_data_reg
162 multiply_accumulate_data_reg
:
163 R0 = (A0
= R1.
L * R2.
L);
164 R2 = (A0
= r1.
l * r2.
l) (is
);
165 r4 = (a0
+= r7.h
* r6.
L);
166 r6 = (A0
+= R5.
L * r3.h
) (s2RND
);
167 R6 = (a0
-= r2.h
* r7.
l);
168 r4 = (A0
-= R0.
L * r6.H
) (FU
);
170 r7 = (a1
= r0.h
* r1.
l);
171 R5 = (A1
= r2.H
* r3.H
) (M
, fu
);
172 R3 = (A1
+= r7.
l * r5.
l);
173 r1 = (a1
+= r2.h
* r7.h
) (iss2
);
174 r3 = (A1
-= r0.
l * R0.H
);
175 R5 = (a1
-= R2.
l * R7.h
) (m
, is
);
176 r7 = (a1+
=r1.h
*r3.h
) (IU
);
201 A1
= a1
(S
), a0
= A0
(s
);
207 r0.
L = SIGNbits r7.H;
218 r5.
l = R6.H
- R7.h
(s
);
219 r0.H
= r3.
l - r3.h
(NS
);
222 .global subtract_immediate