milli.S revision 1.1.2.2 1 1.1.2.2 gehenna ; $NetBSD: milli.S,v 1.1.2.2 2002/06/20 16:02:25 gehenna Exp $
2 1.1.2.2 gehenna ;
3 1.1.2.2 gehenna ; $OpenBSD: milli.S,v 1.5 2001/03/29 04:08:20 mickey Exp $
4 1.1.2.2 gehenna ;
5 1.1.2.2 gehenna ; (c) Copyright 1986 HEWLETT-PACKARD COMPANY
6 1.1.2.2 gehenna ;
7 1.1.2.2 gehenna ; To anyone who acknowledges that this file is provided "AS IS"
8 1.1.2.2 gehenna ; without any express or implied warranty:
9 1.1.2.2 gehenna ; permission to use, copy, modify, and distribute this file
10 1.1.2.2 gehenna ; for any purpose is hereby granted without fee, provided that
11 1.1.2.2 gehenna ; the above copyright notice and this notice appears in all
12 1.1.2.2 gehenna ; copies, and that the name of Hewlett-Packard Company not be
13 1.1.2.2 gehenna ; used in advertising or publicity pertaining to distribution
14 1.1.2.2 gehenna ; of the software without specific, written prior permission.
15 1.1.2.2 gehenna ; Hewlett-Packard Company makes no representations about the
16 1.1.2.2 gehenna ; suitability of this software for any purpose.
17 1.1.2.2 gehenna ;
18 1.1.2.2 gehenna
19 1.1.2.2 gehenna ; Standard Hardware Register Definitions for Use with Assembler
20 1.1.2.2 gehenna ; version A.08.06
21 1.1.2.2 gehenna ; - fr16-31 added at Utah
22 1.1.2.2 gehenna ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23 1.1.2.2 gehenna ; Hardware General Registers
24 1.1.2.2 gehenna r0: .equ 0
25 1.1.2.2 gehenna
26 1.1.2.2 gehenna r1: .equ 1
27 1.1.2.2 gehenna
28 1.1.2.2 gehenna r2: .equ 2
29 1.1.2.2 gehenna
30 1.1.2.2 gehenna r3: .equ 3
31 1.1.2.2 gehenna
32 1.1.2.2 gehenna r4: .equ 4
33 1.1.2.2 gehenna
34 1.1.2.2 gehenna r5: .equ 5
35 1.1.2.2 gehenna
36 1.1.2.2 gehenna r6: .equ 6
37 1.1.2.2 gehenna
38 1.1.2.2 gehenna r7: .equ 7
39 1.1.2.2 gehenna
40 1.1.2.2 gehenna r8: .equ 8
41 1.1.2.2 gehenna
42 1.1.2.2 gehenna r9: .equ 9
43 1.1.2.2 gehenna
44 1.1.2.2 gehenna r10: .equ 10
45 1.1.2.2 gehenna
46 1.1.2.2 gehenna r11: .equ 11
47 1.1.2.2 gehenna
48 1.1.2.2 gehenna r12: .equ 12
49 1.1.2.2 gehenna
50 1.1.2.2 gehenna r13: .equ 13
51 1.1.2.2 gehenna
52 1.1.2.2 gehenna r14: .equ 14
53 1.1.2.2 gehenna
54 1.1.2.2 gehenna r15: .equ 15
55 1.1.2.2 gehenna
56 1.1.2.2 gehenna r16: .equ 16
57 1.1.2.2 gehenna
58 1.1.2.2 gehenna r17: .equ 17
59 1.1.2.2 gehenna
60 1.1.2.2 gehenna r18: .equ 18
61 1.1.2.2 gehenna
62 1.1.2.2 gehenna r19: .equ 19
63 1.1.2.2 gehenna
64 1.1.2.2 gehenna r20: .equ 20
65 1.1.2.2 gehenna
66 1.1.2.2 gehenna r21: .equ 21
67 1.1.2.2 gehenna
68 1.1.2.2 gehenna r22: .equ 22
69 1.1.2.2 gehenna
70 1.1.2.2 gehenna r23: .equ 23
71 1.1.2.2 gehenna
72 1.1.2.2 gehenna r24: .equ 24
73 1.1.2.2 gehenna
74 1.1.2.2 gehenna r25: .equ 25
75 1.1.2.2 gehenna
76 1.1.2.2 gehenna r26: .equ 26
77 1.1.2.2 gehenna
78 1.1.2.2 gehenna r27: .equ 27
79 1.1.2.2 gehenna
80 1.1.2.2 gehenna r28: .equ 28
81 1.1.2.2 gehenna
82 1.1.2.2 gehenna r29: .equ 29
83 1.1.2.2 gehenna
84 1.1.2.2 gehenna r30: .equ 30
85 1.1.2.2 gehenna
86 1.1.2.2 gehenna r31: .equ 31
87 1.1.2.2 gehenna
88 1.1.2.2 gehenna ; Hardware Space Registers
89 1.1.2.2 gehenna sr0: .equ 0
90 1.1.2.2 gehenna
91 1.1.2.2 gehenna sr1: .equ 1
92 1.1.2.2 gehenna
93 1.1.2.2 gehenna sr2: .equ 2
94 1.1.2.2 gehenna
95 1.1.2.2 gehenna sr3: .equ 3
96 1.1.2.2 gehenna
97 1.1.2.2 gehenna sr4: .equ 4
98 1.1.2.2 gehenna
99 1.1.2.2 gehenna sr5: .equ 5
100 1.1.2.2 gehenna
101 1.1.2.2 gehenna sr6: .equ 6
102 1.1.2.2 gehenna
103 1.1.2.2 gehenna sr7: .equ 7
104 1.1.2.2 gehenna
105 1.1.2.2 gehenna ; Hardware Floating Point Registers
106 1.1.2.2 gehenna fr0: .equ 0
107 1.1.2.2 gehenna
108 1.1.2.2 gehenna fr1: .equ 1
109 1.1.2.2 gehenna
110 1.1.2.2 gehenna fr2: .equ 2
111 1.1.2.2 gehenna
112 1.1.2.2 gehenna fr3: .equ 3
113 1.1.2.2 gehenna
114 1.1.2.2 gehenna fr4: .equ 4
115 1.1.2.2 gehenna
116 1.1.2.2 gehenna fr5: .equ 5
117 1.1.2.2 gehenna
118 1.1.2.2 gehenna fr6: .equ 6
119 1.1.2.2 gehenna
120 1.1.2.2 gehenna fr7: .equ 7
121 1.1.2.2 gehenna
122 1.1.2.2 gehenna fr8: .equ 8
123 1.1.2.2 gehenna
124 1.1.2.2 gehenna fr9: .equ 9
125 1.1.2.2 gehenna
126 1.1.2.2 gehenna fr10: .equ 10
127 1.1.2.2 gehenna
128 1.1.2.2 gehenna fr11: .equ 11
129 1.1.2.2 gehenna
130 1.1.2.2 gehenna fr12: .equ 12
131 1.1.2.2 gehenna
132 1.1.2.2 gehenna fr13: .equ 13
133 1.1.2.2 gehenna
134 1.1.2.2 gehenna fr14: .equ 14
135 1.1.2.2 gehenna
136 1.1.2.2 gehenna fr15: .equ 15
137 1.1.2.2 gehenna
138 1.1.2.2 gehenna fr16: .equ 16
139 1.1.2.2 gehenna
140 1.1.2.2 gehenna fr17: .equ 17
141 1.1.2.2 gehenna
142 1.1.2.2 gehenna fr18: .equ 18
143 1.1.2.2 gehenna
144 1.1.2.2 gehenna fr19: .equ 19
145 1.1.2.2 gehenna
146 1.1.2.2 gehenna fr20: .equ 20
147 1.1.2.2 gehenna
148 1.1.2.2 gehenna fr21: .equ 21
149 1.1.2.2 gehenna
150 1.1.2.2 gehenna fr22: .equ 22
151 1.1.2.2 gehenna
152 1.1.2.2 gehenna fr23: .equ 23
153 1.1.2.2 gehenna
154 1.1.2.2 gehenna fr24: .equ 24
155 1.1.2.2 gehenna
156 1.1.2.2 gehenna fr25: .equ 25
157 1.1.2.2 gehenna
158 1.1.2.2 gehenna fr26: .equ 26
159 1.1.2.2 gehenna
160 1.1.2.2 gehenna fr27: .equ 27
161 1.1.2.2 gehenna
162 1.1.2.2 gehenna fr28: .equ 28
163 1.1.2.2 gehenna
164 1.1.2.2 gehenna fr29: .equ 29
165 1.1.2.2 gehenna
166 1.1.2.2 gehenna fr30: .equ 30
167 1.1.2.2 gehenna
168 1.1.2.2 gehenna fr31: .equ 31
169 1.1.2.2 gehenna
170 1.1.2.2 gehenna ; Hardware Control Registers
171 1.1.2.2 gehenna cr0: .equ 0
172 1.1.2.2 gehenna
173 1.1.2.2 gehenna rctr: .equ 0 ; Recovery Counter Register
174 1.1.2.2 gehenna
175 1.1.2.2 gehenna cr8: .equ 8 ; Protection ID 1
176 1.1.2.2 gehenna
177 1.1.2.2 gehenna pidr1: .equ 8
178 1.1.2.2 gehenna
179 1.1.2.2 gehenna cr9: .equ 9 ; Protection ID 2
180 1.1.2.2 gehenna
181 1.1.2.2 gehenna pidr2: .equ 9
182 1.1.2.2 gehenna
183 1.1.2.2 gehenna cr10: .equ 10
184 1.1.2.2 gehenna
185 1.1.2.2 gehenna ccr: .equ 10 ; Coprocessor Confiquration Register
186 1.1.2.2 gehenna
187 1.1.2.2 gehenna cr11: .equ 11
188 1.1.2.2 gehenna
189 1.1.2.2 gehenna sar: .equ 11 ; Shift Amount Register
190 1.1.2.2 gehenna
191 1.1.2.2 gehenna cr12: .equ 12
192 1.1.2.2 gehenna
193 1.1.2.2 gehenna pidr3: .equ 12 ; Protection ID 3
194 1.1.2.2 gehenna
195 1.1.2.2 gehenna cr13: .equ 13
196 1.1.2.2 gehenna
197 1.1.2.2 gehenna pidr4: .equ 13 ; Protection ID 4
198 1.1.2.2 gehenna
199 1.1.2.2 gehenna cr14: .equ 14
200 1.1.2.2 gehenna
201 1.1.2.2 gehenna iva: .equ 14 ; Interrupt Vector Address
202 1.1.2.2 gehenna
203 1.1.2.2 gehenna cr15: .equ 15
204 1.1.2.2 gehenna
205 1.1.2.2 gehenna eiem: .equ 15 ; External Interrupt Enable Mask
206 1.1.2.2 gehenna
207 1.1.2.2 gehenna cr16: .equ 16
208 1.1.2.2 gehenna
209 1.1.2.2 gehenna itmr: .equ 16 ; Interval Timer
210 1.1.2.2 gehenna
211 1.1.2.2 gehenna cr17: .equ 17
212 1.1.2.2 gehenna
213 1.1.2.2 gehenna pcsq: .equ 17 ; Program Counter Space queue
214 1.1.2.2 gehenna
215 1.1.2.2 gehenna cr18: .equ 18
216 1.1.2.2 gehenna
217 1.1.2.2 gehenna pcoq: .equ 18 ; Program Counter Offset queue
218 1.1.2.2 gehenna
219 1.1.2.2 gehenna cr19: .equ 19
220 1.1.2.2 gehenna
221 1.1.2.2 gehenna iir: .equ 19 ; Interruption Instruction Register
222 1.1.2.2 gehenna
223 1.1.2.2 gehenna cr20: .equ 20
224 1.1.2.2 gehenna
225 1.1.2.2 gehenna isr: .equ 20 ; Interruption Space Register
226 1.1.2.2 gehenna
227 1.1.2.2 gehenna cr21: .equ 21
228 1.1.2.2 gehenna
229 1.1.2.2 gehenna ior: .equ 21 ; Interruption Offset Register
230 1.1.2.2 gehenna
231 1.1.2.2 gehenna cr22: .equ 22
232 1.1.2.2 gehenna
233 1.1.2.2 gehenna ipsw: .equ 22 ; Interrpution Processor Status Word
234 1.1.2.2 gehenna
235 1.1.2.2 gehenna cr23: .equ 23
236 1.1.2.2 gehenna
237 1.1.2.2 gehenna eirr: .equ 23 ; External Interrupt Request
238 1.1.2.2 gehenna
239 1.1.2.2 gehenna cr24: .equ 24
240 1.1.2.2 gehenna
241 1.1.2.2 gehenna ppda: .equ 24 ; Physcial Page Directory Address
242 1.1.2.2 gehenna
243 1.1.2.2 gehenna tr0: .equ 24 ; Temporary register 0
244 1.1.2.2 gehenna
245 1.1.2.2 gehenna cr25: .equ 25
246 1.1.2.2 gehenna
247 1.1.2.2 gehenna hta: .equ 25 ; Hash Table Address
248 1.1.2.2 gehenna
249 1.1.2.2 gehenna tr1: .equ 25 ; Temporary register 1
250 1.1.2.2 gehenna
251 1.1.2.2 gehenna cr26: .equ 26
252 1.1.2.2 gehenna
253 1.1.2.2 gehenna tr2: .equ 26 ; Temporary register 2
254 1.1.2.2 gehenna
255 1.1.2.2 gehenna cr27: .equ 27
256 1.1.2.2 gehenna
257 1.1.2.2 gehenna tr3: .equ 27 ; Temporary register 3
258 1.1.2.2 gehenna
259 1.1.2.2 gehenna cr28: .equ 28
260 1.1.2.2 gehenna
261 1.1.2.2 gehenna tr4: .equ 28 ; Temporary register 4
262 1.1.2.2 gehenna
263 1.1.2.2 gehenna cr29: .equ 29
264 1.1.2.2 gehenna
265 1.1.2.2 gehenna tr5: .equ 29 ; Temporary register 5
266 1.1.2.2 gehenna
267 1.1.2.2 gehenna cr30: .equ 30
268 1.1.2.2 gehenna
269 1.1.2.2 gehenna tr6: .equ 30 ; Temporary register 6
270 1.1.2.2 gehenna
271 1.1.2.2 gehenna cr31: .equ 31
272 1.1.2.2 gehenna
273 1.1.2.2 gehenna tr7: .equ 31 ; Temporary register 7
274 1.1.2.2 gehenna
275 1.1.2.2 gehenna ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
276 1.1.2.2 gehenna ; Procedure Call Convention ~
277 1.1.2.2 gehenna ; Register Definitions for Use with Assembler ~
278 1.1.2.2 gehenna ; version A.08.06 ~
279 1.1.2.2 gehenna ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
280 1.1.2.2 gehenna ; Software Architecture General Registers
281 1.1.2.2 gehenna rp: .equ r2 ; return pointer
282 1.1.2.2 gehenna
283 1.1.2.2 gehenna mrp: .equ r31 ; millicode return pointer
284 1.1.2.2 gehenna
285 1.1.2.2 gehenna ret0: .equ r28 ; return value
286 1.1.2.2 gehenna
287 1.1.2.2 gehenna ret1: .equ r29 ; return value (high part of double)
288 1.1.2.2 gehenna
289 1.1.2.2 gehenna sl: .equ r29 ; static link
290 1.1.2.2 gehenna
291 1.1.2.2 gehenna sp: .equ r30 ; stack pointer
292 1.1.2.2 gehenna
293 1.1.2.2 gehenna dp: .equ r27 ; data pointer
294 1.1.2.2 gehenna
295 1.1.2.2 gehenna arg0: .equ r26 ; argument
296 1.1.2.2 gehenna
297 1.1.2.2 gehenna arg1: .equ r25 ; argument or high part of double argument
298 1.1.2.2 gehenna
299 1.1.2.2 gehenna arg2: .equ r24 ; argument
300 1.1.2.2 gehenna
301 1.1.2.2 gehenna arg3: .equ r23 ; argument or high part of double argument
302 1.1.2.2 gehenna
303 1.1.2.2 gehenna ;_____________________________________________________________________________
304 1.1.2.2 gehenna ; Software Architecture Space Registers
305 1.1.2.2 gehenna ; sr0 ; return link form BLE
306 1.1.2.2 gehenna sret: .equ sr1 ; return value
307 1.1.2.2 gehenna
308 1.1.2.2 gehenna sarg: .equ sr1 ; argument
309 1.1.2.2 gehenna
310 1.1.2.2 gehenna ; sr4 ; PC SPACE tracker
311 1.1.2.2 gehenna ; sr5 ; process private data
312 1.1.2.2 gehenna ;_____________________________________________________________________________
313 1.1.2.2 gehenna ; Software Architecture Pseudo Registers
314 1.1.2.2 gehenna previous_sp: .equ 64 ; old stack pointer (locates previous frame)
315 1.1.2.2 gehenna
316 1.1.2.2 gehenna ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
317 1.1.2.2 gehenna ; Standard space and subspace definitions. version A.08.06
318 1.1.2.2 gehenna ; These are generally suitable for programs on HP_UX and HPE.
319 1.1.2.2 gehenna ; Statements commented out are used when building such things as operating
320 1.1.2.2 gehenna ; system kernels.
321 1.1.2.2 gehenna ;;;;;;;;;;;;;;;;
322 1.1.2.2 gehenna ; Additional code subspaces should have ALIGN=8 for an interspace BV
323 1.1.2.2 gehenna ; and should have SORT=24.
324 1.1.2.2 gehenna ;
325 1.1.2.2 gehenna ; For an incomplete executable (program bound to shared libraries),
326 1.1.2.2 gehenna ; sort keys $GLOBAL$ -1 and $GLOBAL$ -2 are reserved for the $DLT$
327 1.1.2.2 gehenna ; and $PLT$ subspaces respectively.
328 1.1.2.2 gehenna ;;;;;;;;;;;;;;;
329 1.1.2.2 gehenna
330 1.1.2.2 gehenna .text
331 1.1.2.2 gehenna .EXPORT $$remI,millicode
332 1.1.2.2 gehenna ; .IMPORT cerror
333 1.1.2.2 gehenna $$remI:
334 1.1.2.2 gehenna .PROC
335 1.1.2.2 gehenna .CALLINFO NO_CALLS
336 1.1.2.2 gehenna .ENTRY
337 1.1.2.2 gehenna addit,= 0,arg1,r0
338 1.1.2.2 gehenna add,>= r0,arg0,ret1
339 1.1.2.2 gehenna sub r0,ret1,ret1
340 1.1.2.2 gehenna sub r0,arg1,r1
341 1.1.2.2 gehenna ds r0,r1,r0
342 1.1.2.2 gehenna or r0,r0,r1
343 1.1.2.2 gehenna add ret1,ret1,ret1
344 1.1.2.2 gehenna ds r1,arg1,r1
345 1.1.2.2 gehenna addc ret1,ret1,ret1
346 1.1.2.2 gehenna ds r1,arg1,r1
347 1.1.2.2 gehenna addc ret1,ret1,ret1
348 1.1.2.2 gehenna ds r1,arg1,r1
349 1.1.2.2 gehenna addc ret1,ret1,ret1
350 1.1.2.2 gehenna ds r1,arg1,r1
351 1.1.2.2 gehenna addc ret1,ret1,ret1
352 1.1.2.2 gehenna ds r1,arg1,r1
353 1.1.2.2 gehenna addc ret1,ret1,ret1
354 1.1.2.2 gehenna ds r1,arg1,r1
355 1.1.2.2 gehenna addc ret1,ret1,ret1
356 1.1.2.2 gehenna ds r1,arg1,r1
357 1.1.2.2 gehenna addc ret1,ret1,ret1
358 1.1.2.2 gehenna ds r1,arg1,r1
359 1.1.2.2 gehenna addc ret1,ret1,ret1
360 1.1.2.2 gehenna ds r1,arg1,r1
361 1.1.2.2 gehenna addc ret1,ret1,ret1
362 1.1.2.2 gehenna ds r1,arg1,r1
363 1.1.2.2 gehenna addc ret1,ret1,ret1
364 1.1.2.2 gehenna ds r1,arg1,r1
365 1.1.2.2 gehenna addc ret1,ret1,ret1
366 1.1.2.2 gehenna ds r1,arg1,r1
367 1.1.2.2 gehenna addc ret1,ret1,ret1
368 1.1.2.2 gehenna ds r1,arg1,r1
369 1.1.2.2 gehenna addc ret1,ret1,ret1
370 1.1.2.2 gehenna ds r1,arg1,r1
371 1.1.2.2 gehenna addc ret1,ret1,ret1
372 1.1.2.2 gehenna ds r1,arg1,r1
373 1.1.2.2 gehenna addc ret1,ret1,ret1
374 1.1.2.2 gehenna ds r1,arg1,r1
375 1.1.2.2 gehenna addc ret1,ret1,ret1
376 1.1.2.2 gehenna ds r1,arg1,r1
377 1.1.2.2 gehenna addc ret1,ret1,ret1
378 1.1.2.2 gehenna ds r1,arg1,r1
379 1.1.2.2 gehenna addc ret1,ret1,ret1
380 1.1.2.2 gehenna ds r1,arg1,r1
381 1.1.2.2 gehenna addc ret1,ret1,ret1
382 1.1.2.2 gehenna ds r1,arg1,r1
383 1.1.2.2 gehenna addc ret1,ret1,ret1
384 1.1.2.2 gehenna ds r1,arg1,r1
385 1.1.2.2 gehenna addc ret1,ret1,ret1
386 1.1.2.2 gehenna ds r1,arg1,r1
387 1.1.2.2 gehenna addc ret1,ret1,ret1
388 1.1.2.2 gehenna ds r1,arg1,r1
389 1.1.2.2 gehenna addc ret1,ret1,ret1
390 1.1.2.2 gehenna ds r1,arg1,r1
391 1.1.2.2 gehenna addc ret1,ret1,ret1
392 1.1.2.2 gehenna ds r1,arg1,r1
393 1.1.2.2 gehenna addc ret1,ret1,ret1
394 1.1.2.2 gehenna ds r1,arg1,r1
395 1.1.2.2 gehenna addc ret1,ret1,ret1
396 1.1.2.2 gehenna ds r1,arg1,r1
397 1.1.2.2 gehenna addc ret1,ret1,ret1
398 1.1.2.2 gehenna ds r1,arg1,r1
399 1.1.2.2 gehenna addc ret1,ret1,ret1
400 1.1.2.2 gehenna ds r1,arg1,r1
401 1.1.2.2 gehenna addc ret1,ret1,ret1
402 1.1.2.2 gehenna ds r1,arg1,r1
403 1.1.2.2 gehenna addc ret1,ret1,ret1
404 1.1.2.2 gehenna ds r1,arg1,r1
405 1.1.2.2 gehenna addc ret1,ret1,ret1
406 1.1.2.2 gehenna ds r1,arg1,r1
407 1.1.2.2 gehenna addc ret1,ret1,ret1
408 1.1.2.2 gehenna movb,>=,n r1,ret1,remI300
409 1.1.2.2 gehenna add,< arg1,r0,r0
410 1.1.2.2 gehenna add,tr r1,arg1,ret1
411 1.1.2.2 gehenna sub r1,arg1,ret1
412 1.1.2.2 gehenna remI300: add,>= arg0,r0,r0
413 1.1.2.2 gehenna
414 1.1.2.2 gehenna sub r0,ret1,ret1
415 1.1.2.2 gehenna bv r0(r31)
416 1.1.2.2 gehenna nop
417 1.1.2.2 gehenna .EXIT
418 1.1.2.2 gehenna .PROCEND
419 1.1.2.2 gehenna
420 1.1.2.2 gehenna bit1: .equ 1
421 1.1.2.2 gehenna
422 1.1.2.2 gehenna bit30: .equ 30
423 1.1.2.2 gehenna bit31: .equ 31
424 1.1.2.2 gehenna
425 1.1.2.2 gehenna len2: .equ 2
426 1.1.2.2 gehenna
427 1.1.2.2 gehenna len4: .equ 4
428 1.1.2.2 gehenna
429 1.1.2.2 gehenna #if 0
430 1.1.2.2 gehenna $$dyncall:
431 1.1.2.2 gehenna .proc
432 1.1.2.2 gehenna .callinfo NO_CALLS
433 1.1.2.2 gehenna .export $$dyncall,MILLICODE
434 1.1.2.2 gehenna
435 1.1.2.2 gehenna bb,>=,n 22,bit30,noshlibs
436 1.1.2.2 gehenna
437 1.1.2.2 gehenna depi 0,bit31,len2,22
438 1.1.2.2 gehenna ldw 4(22),19
439 1.1.2.2 gehenna ldw 0(22),22
440 1.1.2.2 gehenna noshlibs:
441 1.1.2.2 gehenna ldsid (22),r1
442 1.1.2.2 gehenna mtsp r1,sr0
443 1.1.2.2 gehenna be 0(sr0,r22)
444 1.1.2.2 gehenna stw rp,-24(sp)
445 1.1.2.2 gehenna .procend
446 1.1.2.2 gehenna #endif
447 1.1.2.2 gehenna
448 1.1.2.2 gehenna $$sh_func_adrs:
449 1.1.2.2 gehenna .proc
450 1.1.2.2 gehenna .callinfo NO_CALLS
451 1.1.2.2 gehenna .export $$sh_func_adrs, millicode
452 1.1.2.2 gehenna ldo 0(r26),ret1
453 1.1.2.2 gehenna dep r0,30,1,r26
454 1.1.2.2 gehenna probew (r26),r31,r22
455 1.1.2.2 gehenna extru,= r22,31,1,r22
456 1.1.2.2 gehenna bv r0(r31)
457 1.1.2.2 gehenna ldws 0(r26),ret1
458 1.1.2.2 gehenna .procend
459 1.1.2.2 gehenna
460 1.1.2.2 gehenna temp: .EQU r1
461 1.1.2.2 gehenna
462 1.1.2.2 gehenna retreg: .EQU ret1 ; r29
463 1.1.2.2 gehenna
464 1.1.2.2 gehenna .export $$divU,millicode
465 1.1.2.2 gehenna .import $$divU_3,millicode
466 1.1.2.2 gehenna .import $$divU_5,millicode
467 1.1.2.2 gehenna .import $$divU_6,millicode
468 1.1.2.2 gehenna .import $$divU_7,millicode
469 1.1.2.2 gehenna .import $$divU_9,millicode
470 1.1.2.2 gehenna .import $$divU_10,millicode
471 1.1.2.2 gehenna .import $$divU_12,millicode
472 1.1.2.2 gehenna .import $$divU_14,millicode
473 1.1.2.2 gehenna .import $$divU_15,millicode
474 1.1.2.2 gehenna $$divU:
475 1.1.2.2 gehenna .proc
476 1.1.2.2 gehenna .callinfo NO_CALLS
477 1.1.2.2 gehenna ; The subtract is not nullified since it does no harm and can be used
478 1.1.2.2 gehenna ; by the two cases that branch back to "normal".
479 1.1.2.2 gehenna comib,>= 15,arg1,special_divisor
480 1.1.2.2 gehenna sub r0,arg1,temp ; clear carry, negate the divisor
481 1.1.2.2 gehenna ds r0,temp,r0 ; set V-bit to 1
482 1.1.2.2 gehenna normal:
483 1.1.2.2 gehenna add arg0,arg0,retreg ; shift msb bit into carry
484 1.1.2.2 gehenna ds r0,arg1,temp ; 1st divide step, if no carry
485 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
486 1.1.2.2 gehenna ds temp,arg1,temp ; 2nd divide step
487 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
488 1.1.2.2 gehenna ds temp,arg1,temp ; 3rd divide step
489 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
490 1.1.2.2 gehenna ds temp,arg1,temp ; 4th divide step
491 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
492 1.1.2.2 gehenna ds temp,arg1,temp ; 5th divide step
493 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
494 1.1.2.2 gehenna ds temp,arg1,temp ; 6th divide step
495 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
496 1.1.2.2 gehenna ds temp,arg1,temp ; 7th divide step
497 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
498 1.1.2.2 gehenna ds temp,arg1,temp ; 8th divide step
499 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
500 1.1.2.2 gehenna ds temp,arg1,temp ; 9th divide step
501 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
502 1.1.2.2 gehenna ds temp,arg1,temp ; 10th divide step
503 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
504 1.1.2.2 gehenna ds temp,arg1,temp ; 11th divide step
505 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
506 1.1.2.2 gehenna ds temp,arg1,temp ; 12th divide step
507 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
508 1.1.2.2 gehenna ds temp,arg1,temp ; 13th divide step
509 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
510 1.1.2.2 gehenna ds temp,arg1,temp ; 14th divide step
511 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
512 1.1.2.2 gehenna ds temp,arg1,temp ; 15th divide step
513 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
514 1.1.2.2 gehenna ds temp,arg1,temp ; 16th divide step
515 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
516 1.1.2.2 gehenna ds temp,arg1,temp ; 17th divide step
517 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
518 1.1.2.2 gehenna ds temp,arg1,temp ; 18th divide step
519 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
520 1.1.2.2 gehenna ds temp,arg1,temp ; 19th divide step
521 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
522 1.1.2.2 gehenna ds temp,arg1,temp ; 20th divide step
523 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
524 1.1.2.2 gehenna ds temp,arg1,temp ; 21st divide step
525 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
526 1.1.2.2 gehenna ds temp,arg1,temp ; 22nd divide step
527 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
528 1.1.2.2 gehenna ds temp,arg1,temp ; 23rd divide step
529 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
530 1.1.2.2 gehenna ds temp,arg1,temp ; 24th divide step
531 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
532 1.1.2.2 gehenna ds temp,arg1,temp ; 25th divide step
533 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
534 1.1.2.2 gehenna ds temp,arg1,temp ; 26th divide step
535 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
536 1.1.2.2 gehenna ds temp,arg1,temp ; 27th divide step
537 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
538 1.1.2.2 gehenna ds temp,arg1,temp ; 28th divide step
539 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
540 1.1.2.2 gehenna ds temp,arg1,temp ; 29th divide step
541 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
542 1.1.2.2 gehenna ds temp,arg1,temp ; 30th divide step
543 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
544 1.1.2.2 gehenna ds temp,arg1,temp ; 31st divide step
545 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
546 1.1.2.2 gehenna ds temp,arg1,temp ; 32nd divide step,
547 1.1.2.2 gehenna bv 0(r31)
548 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift last retreg bit into retreg
549 1.1.2.2 gehenna ;_____________________________________________________________________________
550 1.1.2.2 gehenna ; handle the cases where divisor is a small constant or has high bit on
551 1.1.2.2 gehenna special_divisor:
552 1.1.2.2 gehenna blr arg1,r0
553 1.1.2.2 gehenna comib,>,n 0,arg1,big_divisor ; nullify previous instruction
554 1.1.2.2 gehenna zero_divisor: ; this label is here to provide external visibility
555 1.1.2.2 gehenna
556 1.1.2.2 gehenna addit,= 0,arg1,0 ; trap for zero dvr
557 1.1.2.2 gehenna nop
558 1.1.2.2 gehenna bv 0(r31) ; divisor == 1
559 1.1.2.2 gehenna copy arg0,retreg
560 1.1.2.2 gehenna bv 0(r31) ; divisor == 2
561 1.1.2.2 gehenna extru arg0,30,31,retreg
562 1.1.2.2 gehenna b,n $$divU_3 ; divisor == 3
563 1.1.2.2 gehenna nop
564 1.1.2.2 gehenna bv 0(r31) ; divisor == 4
565 1.1.2.2 gehenna extru arg0,29,30,retreg
566 1.1.2.2 gehenna b,n $$divU_5 ; divisor == 5
567 1.1.2.2 gehenna nop
568 1.1.2.2 gehenna b,n $$divU_6 ; divisor == 6
569 1.1.2.2 gehenna nop
570 1.1.2.2 gehenna b,n $$divU_7 ; divisor == 7
571 1.1.2.2 gehenna nop
572 1.1.2.2 gehenna bv 0(r31) ; divisor == 8
573 1.1.2.2 gehenna extru arg0,28,29,retreg
574 1.1.2.2 gehenna b,n $$divU_9 ; divisor == 9
575 1.1.2.2 gehenna nop
576 1.1.2.2 gehenna b,n $$divU_10 ; divisor == 10
577 1.1.2.2 gehenna nop
578 1.1.2.2 gehenna b normal ; divisor == 11
579 1.1.2.2 gehenna ds r0,temp,r0 ; set V-bit to 1
580 1.1.2.2 gehenna b,n $$divU_12 ; divisor == 12
581 1.1.2.2 gehenna nop
582 1.1.2.2 gehenna b normal ; divisor == 13
583 1.1.2.2 gehenna ds r0,temp,r0 ; set V-bit to 1
584 1.1.2.2 gehenna b,n $$divU_14 ; divisor == 14
585 1.1.2.2 gehenna nop
586 1.1.2.2 gehenna b,n $$divU_15 ; divisor == 15
587 1.1.2.2 gehenna nop
588 1.1.2.2 gehenna ;_____________________________________________________________________________
589 1.1.2.2 gehenna ; Handle the case where the high bit is on in the divisor.
590 1.1.2.2 gehenna ; Compute: if( dividend>=divisor) quotient=1; else quotient=0;
591 1.1.2.2 gehenna ; Note: dividend>==divisor iff dividend-divisor does not borrow
592 1.1.2.2 gehenna ; and not borrow iff carry
593 1.1.2.2 gehenna big_divisor:
594 1.1.2.2 gehenna sub arg0,arg1,r0
595 1.1.2.2 gehenna bv 0(r31)
596 1.1.2.2 gehenna addc r0,r0,retreg
597 1.1.2.2 gehenna .procend
598 1.1.2.2 gehenna .end
599 1.1.2.2 gehenna
600 1.1.2.2 gehenna t2: .EQU r1
601 1.1.2.2 gehenna
602 1.1.2.2 gehenna ; x2 .EQU arg0 ; r26
603 1.1.2.2 gehenna t1: .EQU arg1 ; r25
604 1.1.2.2 gehenna
605 1.1.2.2 gehenna ; x1 .EQU ret1 ; r29
606 1.1.2.2 gehenna ;_____________________________________________________________________________
607 1.1.2.2 gehenna
608 1.1.2.2 gehenna $$divide_by_constant:
609 1.1.2.2 gehenna .PROC
610 1.1.2.2 gehenna .CALLINFO NO_CALLS
611 1.1.2.2 gehenna .export $$divide_by_constant,millicode
612 1.1.2.2 gehenna ; Provides a "nice" label for the code covered by the unwind descriptor
613 1.1.2.2 gehenna ; for things like gprof.
614 1.1.2.2 gehenna
615 1.1.2.2 gehenna $$divI_2:
616 1.1.2.2 gehenna .EXPORT $$divI_2,MILLICODE
617 1.1.2.2 gehenna COMCLR,>= arg0,0,0
618 1.1.2.2 gehenna ADDI 1,arg0,arg0
619 1.1.2.2 gehenna bv 0(r31)
620 1.1.2.2 gehenna EXTRS arg0,30,31,ret1
621 1.1.2.2 gehenna
622 1.1.2.2 gehenna $$divI_4:
623 1.1.2.2 gehenna .EXPORT $$divI_4,MILLICODE
624 1.1.2.2 gehenna COMCLR,>= arg0,0,0
625 1.1.2.2 gehenna ADDI 3,arg0,arg0
626 1.1.2.2 gehenna bv 0(r31)
627 1.1.2.2 gehenna EXTRS arg0,29,30,ret1
628 1.1.2.2 gehenna
629 1.1.2.2 gehenna $$divI_8:
630 1.1.2.2 gehenna .EXPORT $$divI_8,MILLICODE
631 1.1.2.2 gehenna COMCLR,>= arg0,0,0
632 1.1.2.2 gehenna ADDI 7,arg0,arg0
633 1.1.2.2 gehenna bv 0(r31)
634 1.1.2.2 gehenna EXTRS arg0,28,29,ret1
635 1.1.2.2 gehenna
636 1.1.2.2 gehenna $$divI_16:
637 1.1.2.2 gehenna .EXPORT $$divI_16,MILLICODE
638 1.1.2.2 gehenna COMCLR,>= arg0,0,0
639 1.1.2.2 gehenna ADDI 15,arg0,arg0
640 1.1.2.2 gehenna bv 0(r31)
641 1.1.2.2 gehenna EXTRS arg0,27,28,ret1
642 1.1.2.2 gehenna
643 1.1.2.2 gehenna $$divI_3:
644 1.1.2.2 gehenna .EXPORT $$divI_3,MILLICODE
645 1.1.2.2 gehenna COMB,<,N arg0,0,$neg3
646 1.1.2.2 gehenna
647 1.1.2.2 gehenna ADDI 1,arg0,arg0
648 1.1.2.2 gehenna EXTRU arg0,1,2,ret1
649 1.1.2.2 gehenna SH2ADD arg0,arg0,arg0
650 1.1.2.2 gehenna B $pos
651 1.1.2.2 gehenna ADDC ret1,0,ret1
652 1.1.2.2 gehenna
653 1.1.2.2 gehenna $neg3:
654 1.1.2.2 gehenna SUBI 1,arg0,arg0
655 1.1.2.2 gehenna EXTRU arg0,1,2,ret1
656 1.1.2.2 gehenna SH2ADD arg0,arg0,arg0
657 1.1.2.2 gehenna B $neg
658 1.1.2.2 gehenna ADDC ret1,0,ret1
659 1.1.2.2 gehenna
660 1.1.2.2 gehenna $$divU_3:
661 1.1.2.2 gehenna .EXPORT $$divU_3,MILLICODE
662 1.1.2.2 gehenna ADDI 1,arg0,arg0
663 1.1.2.2 gehenna ADDC 0,0,ret1
664 1.1.2.2 gehenna SHD ret1,arg0,30,t1
665 1.1.2.2 gehenna SH2ADD arg0,arg0,arg0
666 1.1.2.2 gehenna B $pos
667 1.1.2.2 gehenna ADDC ret1,t1,ret1
668 1.1.2.2 gehenna
669 1.1.2.2 gehenna $$divI_5:
670 1.1.2.2 gehenna .EXPORT $$divI_5,MILLICODE
671 1.1.2.2 gehenna COMB,<,N arg0,0,$neg5
672 1.1.2.2 gehenna ADDI 3,arg0,t1
673 1.1.2.2 gehenna SH1ADD arg0,t1,arg0
674 1.1.2.2 gehenna B $pos
675 1.1.2.2 gehenna ADDC 0,0,ret1
676 1.1.2.2 gehenna
677 1.1.2.2 gehenna $neg5:
678 1.1.2.2 gehenna SUB 0,arg0,arg0
679 1.1.2.2 gehenna ADDI 1,arg0,arg0
680 1.1.2.2 gehenna SHD 0,arg0,31,ret1
681 1.1.2.2 gehenna SH1ADD arg0,arg0,arg0
682 1.1.2.2 gehenna B $neg
683 1.1.2.2 gehenna ADDC ret1,0,ret1
684 1.1.2.2 gehenna
685 1.1.2.2 gehenna $$divU_5:
686 1.1.2.2 gehenna .EXPORT $$divU_5,MILLICODE
687 1.1.2.2 gehenna ADDI 1,arg0,arg0
688 1.1.2.2 gehenna ADDC 0,0,ret1
689 1.1.2.2 gehenna SHD ret1,arg0,31,t1
690 1.1.2.2 gehenna SH1ADD arg0,arg0,arg0
691 1.1.2.2 gehenna B $pos
692 1.1.2.2 gehenna ADDC t1,ret1,ret1
693 1.1.2.2 gehenna
694 1.1.2.2 gehenna $$divI_6:
695 1.1.2.2 gehenna .EXPORT $$divI_6,MILLICODE
696 1.1.2.2 gehenna COMB,<,N arg0,0,$neg6
697 1.1.2.2 gehenna EXTRU arg0,30,31,arg0
698 1.1.2.2 gehenna ADDI 5,arg0,t1
699 1.1.2.2 gehenna SH2ADD arg0,t1,arg0
700 1.1.2.2 gehenna B $pos
701 1.1.2.2 gehenna ADDC 0,0,ret1
702 1.1.2.2 gehenna
703 1.1.2.2 gehenna $neg6:
704 1.1.2.2 gehenna SUBI 2,arg0,arg0
705 1.1.2.2 gehenna EXTRU arg0,30,31,arg0
706 1.1.2.2 gehenna SHD 0,arg0,30,ret1
707 1.1.2.2 gehenna SH2ADD arg0,arg0,arg0
708 1.1.2.2 gehenna B $neg
709 1.1.2.2 gehenna ADDC ret1,0,ret1
710 1.1.2.2 gehenna
711 1.1.2.2 gehenna $$divU_6:
712 1.1.2.2 gehenna .EXPORT $$divU_6,MILLICODE
713 1.1.2.2 gehenna EXTRU arg0,30,31,arg0
714 1.1.2.2 gehenna ADDI 1,arg0,arg0
715 1.1.2.2 gehenna SHD 0,arg0,30,ret1
716 1.1.2.2 gehenna SH2ADD arg0,arg0,arg0
717 1.1.2.2 gehenna B $pos
718 1.1.2.2 gehenna ADDC ret1,0,ret1
719 1.1.2.2 gehenna
720 1.1.2.2 gehenna $$divU_10:
721 1.1.2.2 gehenna .EXPORT $$divU_10,MILLICODE
722 1.1.2.2 gehenna EXTRU arg0,30,31,arg0
723 1.1.2.2 gehenna ADDI 3,arg0,t1
724 1.1.2.2 gehenna SH1ADD arg0,t1,arg0
725 1.1.2.2 gehenna ADDC 0,0,ret1
726 1.1.2.2 gehenna $pos:
727 1.1.2.2 gehenna SHD ret1,arg0,28,t1
728 1.1.2.2 gehenna SHD arg0,0,28,t2
729 1.1.2.2 gehenna ADD arg0,t2,arg0
730 1.1.2.2 gehenna ADDC ret1,t1,ret1
731 1.1.2.2 gehenna $pos_for_17:
732 1.1.2.2 gehenna SHD ret1,arg0,24,t1
733 1.1.2.2 gehenna SHD arg0,0,24,t2
734 1.1.2.2 gehenna ADD arg0,t2,arg0
735 1.1.2.2 gehenna ADDC ret1,t1,ret1
736 1.1.2.2 gehenna
737 1.1.2.2 gehenna SHD ret1,arg0,16,t1
738 1.1.2.2 gehenna SHD arg0,0,16,t2
739 1.1.2.2 gehenna ADD arg0,t2,arg0
740 1.1.2.2 gehenna bv 0(r31)
741 1.1.2.2 gehenna ADDC ret1,t1,ret1
742 1.1.2.2 gehenna
743 1.1.2.2 gehenna $$divI_10:
744 1.1.2.2 gehenna .EXPORT $$divI_10,MILLICODE
745 1.1.2.2 gehenna COMB,< arg0,0,$neg10
746 1.1.2.2 gehenna COPY 0,ret1
747 1.1.2.2 gehenna EXTRU arg0,30,31,arg0
748 1.1.2.2 gehenna ADDIB,TR 1,arg0,$pos
749 1.1.2.2 gehenna SH1ADD arg0,arg0,arg0
750 1.1.2.2 gehenna
751 1.1.2.2 gehenna $neg10:
752 1.1.2.2 gehenna SUBI 2,arg0,arg0
753 1.1.2.2 gehenna EXTRU arg0,30,31,arg0
754 1.1.2.2 gehenna SH1ADD arg0,arg0,arg0
755 1.1.2.2 gehenna $neg:
756 1.1.2.2 gehenna SHD ret1,arg0,28,t1
757 1.1.2.2 gehenna SHD arg0,0,28,t2
758 1.1.2.2 gehenna ADD arg0,t2,arg0
759 1.1.2.2 gehenna ADDC ret1,t1,ret1
760 1.1.2.2 gehenna $neg_for_17:
761 1.1.2.2 gehenna SHD ret1,arg0,24,t1
762 1.1.2.2 gehenna SHD arg0,0,24,t2
763 1.1.2.2 gehenna ADD arg0,t2,arg0
764 1.1.2.2 gehenna ADDC ret1,t1,ret1
765 1.1.2.2 gehenna
766 1.1.2.2 gehenna SHD ret1,arg0,16,t1
767 1.1.2.2 gehenna SHD arg0,0,16,t2
768 1.1.2.2 gehenna ADD arg0,t2,arg0
769 1.1.2.2 gehenna ADDC ret1,t1,ret1
770 1.1.2.2 gehenna bv 0(r31)
771 1.1.2.2 gehenna SUB 0,ret1,ret1
772 1.1.2.2 gehenna
773 1.1.2.2 gehenna $$divI_12:
774 1.1.2.2 gehenna .EXPORT $$divI_12,MILLICODE
775 1.1.2.2 gehenna COMB,< arg0,0,$neg12
776 1.1.2.2 gehenna COPY 0,ret1
777 1.1.2.2 gehenna EXTRU arg0,29,30,arg0
778 1.1.2.2 gehenna ADDIB,TR 1,arg0,$pos
779 1.1.2.2 gehenna SH2ADD arg0,arg0,arg0
780 1.1.2.2 gehenna
781 1.1.2.2 gehenna $neg12:
782 1.1.2.2 gehenna SUBI 4,arg0,arg0
783 1.1.2.2 gehenna EXTRU arg0,29,30,arg0
784 1.1.2.2 gehenna B $neg
785 1.1.2.2 gehenna SH2ADD arg0,arg0,arg0
786 1.1.2.2 gehenna
787 1.1.2.2 gehenna $$divU_12:
788 1.1.2.2 gehenna .EXPORT $$divU_12,MILLICODE
789 1.1.2.2 gehenna EXTRU arg0,29,30,arg0
790 1.1.2.2 gehenna ADDI 5,arg0,t1
791 1.1.2.2 gehenna SH2ADD arg0,t1,arg0
792 1.1.2.2 gehenna B $pos
793 1.1.2.2 gehenna ADDC 0,0,ret1
794 1.1.2.2 gehenna
795 1.1.2.2 gehenna $$divI_15:
796 1.1.2.2 gehenna .EXPORT $$divI_15,MILLICODE
797 1.1.2.2 gehenna COMB,< arg0,0,$neg15
798 1.1.2.2 gehenna COPY 0,ret1
799 1.1.2.2 gehenna ADDIB,TR 1,arg0,$pos+4
800 1.1.2.2 gehenna SHD ret1,arg0,28,t1
801 1.1.2.2 gehenna
802 1.1.2.2 gehenna $neg15:
803 1.1.2.2 gehenna B $neg
804 1.1.2.2 gehenna SUBI 1,arg0,arg0
805 1.1.2.2 gehenna
806 1.1.2.2 gehenna $$divU_15:
807 1.1.2.2 gehenna .EXPORT $$divU_15,MILLICODE
808 1.1.2.2 gehenna ADDI 1,arg0,arg0
809 1.1.2.2 gehenna B $pos
810 1.1.2.2 gehenna ADDC 0,0,ret1
811 1.1.2.2 gehenna
812 1.1.2.2 gehenna $$divI_17:
813 1.1.2.2 gehenna .EXPORT $$divI_17,MILLICODE
814 1.1.2.2 gehenna COMB,<,N arg0,0,$neg17
815 1.1.2.2 gehenna ADDI 1,arg0,arg0
816 1.1.2.2 gehenna SHD 0,arg0,28,t1
817 1.1.2.2 gehenna SHD arg0,0,28,t2
818 1.1.2.2 gehenna SUB t2,arg0,arg0
819 1.1.2.2 gehenna B $pos_for_17
820 1.1.2.2 gehenna SUBB t1,0,ret1
821 1.1.2.2 gehenna
822 1.1.2.2 gehenna $neg17:
823 1.1.2.2 gehenna SUBI 1,arg0,arg0
824 1.1.2.2 gehenna SHD 0,arg0,28,t1
825 1.1.2.2 gehenna SHD arg0,0,28,t2
826 1.1.2.2 gehenna SUB t2,arg0,arg0
827 1.1.2.2 gehenna B $neg_for_17
828 1.1.2.2 gehenna SUBB t1,0,ret1
829 1.1.2.2 gehenna
830 1.1.2.2 gehenna $$divU_17:
831 1.1.2.2 gehenna .EXPORT $$divU_17,MILLICODE
832 1.1.2.2 gehenna ADDI 1,arg0,arg0
833 1.1.2.2 gehenna ADDC 0,0,ret1
834 1.1.2.2 gehenna SHD ret1,arg0,28,t1
835 1.1.2.2 gehenna $u17:
836 1.1.2.2 gehenna SHD arg0,0,28,t2
837 1.1.2.2 gehenna SUB t2,arg0,arg0
838 1.1.2.2 gehenna B $pos_for_17
839 1.1.2.2 gehenna SUBB t1,ret1,ret1
840 1.1.2.2 gehenna
841 1.1.2.2 gehenna $$divI_7:
842 1.1.2.2 gehenna .EXPORT $$divI_7,MILLICODE
843 1.1.2.2 gehenna COMB,<,N arg0,0,$neg7
844 1.1.2.2 gehenna $7:
845 1.1.2.2 gehenna ADDI 1,arg0,arg0
846 1.1.2.2 gehenna SHD 0,arg0,29,ret1
847 1.1.2.2 gehenna SH3ADD arg0,arg0,arg0
848 1.1.2.2 gehenna ADDC ret1,0,ret1
849 1.1.2.2 gehenna $pos7:
850 1.1.2.2 gehenna SHD ret1,arg0,26,t1
851 1.1.2.2 gehenna SHD arg0,0,26,t2
852 1.1.2.2 gehenna ADD arg0,t2,arg0
853 1.1.2.2 gehenna ADDC ret1,t1,ret1
854 1.1.2.2 gehenna
855 1.1.2.2 gehenna SHD ret1,arg0,20,t1
856 1.1.2.2 gehenna SHD arg0,0,20,t2
857 1.1.2.2 gehenna ADD arg0,t2,arg0
858 1.1.2.2 gehenna ADDC ret1,t1,t1
859 1.1.2.2 gehenna
860 1.1.2.2 gehenna COPY 0,ret1
861 1.1.2.2 gehenna SHD,= t1,arg0,24,t1
862 1.1.2.2 gehenna $1:
863 1.1.2.2 gehenna ADDB,TR t1,ret1,$2
864 1.1.2.2 gehenna EXTRU arg0,31,24,arg0
865 1.1.2.2 gehenna
866 1.1.2.2 gehenna bv,n 0(r31)
867 1.1.2.2 gehenna
868 1.1.2.2 gehenna $2:
869 1.1.2.2 gehenna ADDB,TR t1,arg0,$1
870 1.1.2.2 gehenna EXTRU,= arg0,7,8,t1
871 1.1.2.2 gehenna
872 1.1.2.2 gehenna $neg7:
873 1.1.2.2 gehenna SUBI 1,arg0,arg0
874 1.1.2.2 gehenna $8:
875 1.1.2.2 gehenna SHD 0,arg0,29,ret1
876 1.1.2.2 gehenna SH3ADD arg0,arg0,arg0
877 1.1.2.2 gehenna ADDC ret1,0,ret1
878 1.1.2.2 gehenna
879 1.1.2.2 gehenna $neg7_shift:
880 1.1.2.2 gehenna SHD ret1,arg0,26,t1
881 1.1.2.2 gehenna SHD arg0,0,26,t2
882 1.1.2.2 gehenna ADD arg0,t2,arg0
883 1.1.2.2 gehenna ADDC ret1,t1,ret1
884 1.1.2.2 gehenna
885 1.1.2.2 gehenna SHD ret1,arg0,20,t1
886 1.1.2.2 gehenna SHD arg0,0,20,t2
887 1.1.2.2 gehenna ADD arg0,t2,arg0
888 1.1.2.2 gehenna ADDC ret1,t1,t1
889 1.1.2.2 gehenna
890 1.1.2.2 gehenna COPY 0,ret1
891 1.1.2.2 gehenna SHD,= t1,arg0,24,t1
892 1.1.2.2 gehenna $3:
893 1.1.2.2 gehenna ADDB,TR t1,ret1,$4
894 1.1.2.2 gehenna EXTRU arg0,31,24,arg0
895 1.1.2.2 gehenna
896 1.1.2.2 gehenna bv 0(r31)
897 1.1.2.2 gehenna SUB 0,ret1,ret1
898 1.1.2.2 gehenna
899 1.1.2.2 gehenna $4:
900 1.1.2.2 gehenna ADDB,TR t1,arg0,$3
901 1.1.2.2 gehenna EXTRU,= arg0,7,8,t1
902 1.1.2.2 gehenna
903 1.1.2.2 gehenna $$divU_7:
904 1.1.2.2 gehenna .EXPORT $$divU_7,MILLICODE
905 1.1.2.2 gehenna ADDI 1,arg0,arg0
906 1.1.2.2 gehenna ADDC 0,0,ret1
907 1.1.2.2 gehenna SHD ret1,arg0,29,t1
908 1.1.2.2 gehenna SH3ADD arg0,arg0,arg0
909 1.1.2.2 gehenna B $pos7
910 1.1.2.2 gehenna ADDC t1,ret1,ret1
911 1.1.2.2 gehenna
912 1.1.2.2 gehenna $$divI_9:
913 1.1.2.2 gehenna .EXPORT $$divI_9,MILLICODE
914 1.1.2.2 gehenna COMB,<,N arg0,0,$neg9
915 1.1.2.2 gehenna ADDI 1,arg0,arg0
916 1.1.2.2 gehenna SHD 0,arg0,29,t1
917 1.1.2.2 gehenna SHD arg0,0,29,t2
918 1.1.2.2 gehenna SUB t2,arg0,arg0
919 1.1.2.2 gehenna B $pos7
920 1.1.2.2 gehenna SUBB t1,0,ret1
921 1.1.2.2 gehenna
922 1.1.2.2 gehenna $neg9:
923 1.1.2.2 gehenna SUBI 1,arg0,arg0
924 1.1.2.2 gehenna SHD 0,arg0,29,t1
925 1.1.2.2 gehenna SHD arg0,0,29,t2
926 1.1.2.2 gehenna SUB t2,arg0,arg0
927 1.1.2.2 gehenna B $neg7_shift
928 1.1.2.2 gehenna SUBB t1,0,ret1
929 1.1.2.2 gehenna
930 1.1.2.2 gehenna $$divU_9:
931 1.1.2.2 gehenna .EXPORT $$divU_9,MILLICODE
932 1.1.2.2 gehenna ADDI 1,arg0,arg0
933 1.1.2.2 gehenna ADDC 0,0,ret1
934 1.1.2.2 gehenna SHD ret1,arg0,29,t1
935 1.1.2.2 gehenna SHD arg0,0,29,t2
936 1.1.2.2 gehenna SUB t2,arg0,arg0
937 1.1.2.2 gehenna B $pos7
938 1.1.2.2 gehenna SUBB t1,ret1,ret1
939 1.1.2.2 gehenna
940 1.1.2.2 gehenna $$divI_14:
941 1.1.2.2 gehenna .EXPORT $$divI_14,MILLICODE
942 1.1.2.2 gehenna COMB,<,N arg0,0,$neg14
943 1.1.2.2 gehenna $$divU_14:
944 1.1.2.2 gehenna .EXPORT $$divU_14,MILLICODE
945 1.1.2.2 gehenna B $7
946 1.1.2.2 gehenna EXTRU arg0,30,31,arg0
947 1.1.2.2 gehenna
948 1.1.2.2 gehenna $neg14:
949 1.1.2.2 gehenna SUBI 2,arg0,arg0
950 1.1.2.2 gehenna B $8
951 1.1.2.2 gehenna EXTRU arg0,30,31,arg0
952 1.1.2.2 gehenna
953 1.1.2.2 gehenna .PROCEND
954 1.1.2.2 gehenna .END
955 1.1.2.2 gehenna
956 1.1.2.2 gehenna rmndr: .EQU ret1 ; r29
957 1.1.2.2 gehenna
958 1.1.2.2 gehenna .export $$remU,millicode
959 1.1.2.2 gehenna $$remU:
960 1.1.2.2 gehenna .proc
961 1.1.2.2 gehenna .callinfo NO_CALLS
962 1.1.2.2 gehenna .entry
963 1.1.2.2 gehenna
964 1.1.2.2 gehenna comib,>=,n 0,arg1,special_case
965 1.1.2.2 gehenna sub r0,arg1,rmndr ; clear carry, negate the divisor
966 1.1.2.2 gehenna ds r0,rmndr,r0 ; set V-bit to 1
967 1.1.2.2 gehenna add arg0,arg0,temp ; shift msb bit into carry
968 1.1.2.2 gehenna ds r0,arg1,rmndr ; 1st divide step, if no carry
969 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
970 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 2nd divide step
971 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
972 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 3rd divide step
973 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
974 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 4th divide step
975 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
976 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 5th divide step
977 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
978 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 6th divide step
979 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
980 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 7th divide step
981 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
982 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 8th divide step
983 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
984 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 9th divide step
985 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
986 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 10th divide step
987 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
988 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 11th divide step
989 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
990 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 12th divide step
991 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
992 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 13th divide step
993 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
994 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 14th divide step
995 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
996 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 15th divide step
997 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
998 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 16th divide step
999 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1000 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 17th divide step
1001 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1002 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 18th divide step
1003 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1004 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 19th divide step
1005 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1006 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 20th divide step
1007 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1008 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 21st divide step
1009 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1010 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 22nd divide step
1011 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1012 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 23rd divide step
1013 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1014 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 24th divide step
1015 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1016 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 25th divide step
1017 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1018 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 26th divide step
1019 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1020 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 27th divide step
1021 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1022 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 28th divide step
1023 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1024 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 29th divide step
1025 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1026 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 30th divide step
1027 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1028 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 31st divide step
1029 1.1.2.2 gehenna addc temp,temp,temp ; shift temp with/into carry
1030 1.1.2.2 gehenna ds rmndr,arg1,rmndr ; 32nd divide step,
1031 1.1.2.2 gehenna comiclr,<= 0,rmndr,r0
1032 1.1.2.2 gehenna add rmndr,arg1,rmndr ; correction
1033 1.1.2.2 gehenna ; .exit
1034 1.1.2.2 gehenna bv,n 0(r31)
1035 1.1.2.2 gehenna nop
1036 1.1.2.2 gehenna ; Putting >= on the last DS and deleting COMICLR does not work!
1037 1.1.2.2 gehenna ;_____________________________________________________________________________
1038 1.1.2.2 gehenna special_case:
1039 1.1.2.2 gehenna addit,= 0,arg1,r0 ; trap on div by zero
1040 1.1.2.2 gehenna sub,>>= arg0,arg1,rmndr
1041 1.1.2.2 gehenna copy arg0,rmndr
1042 1.1.2.2 gehenna .exit
1043 1.1.2.2 gehenna bv,n 0(r31)
1044 1.1.2.2 gehenna nop
1045 1.1.2.2 gehenna .procend
1046 1.1.2.2 gehenna .end
1047 1.1.2.2 gehenna
1048 1.1.2.2 gehenna ; Use bv 0(r31) and bv,n 0(r31) instead.
1049 1.1.2.2 gehenna ; #define return bv 0(%mrp)
1050 1.1.2.2 gehenna ; #define return_n bv,n 0(%mrp)
1051 1.1.2.2 gehenna
1052 1.1.2.2 gehenna .align 16
1053 1.1.2.2 gehenna $$mulI:
1054 1.1.2.2 gehenna
1055 1.1.2.2 gehenna .proc
1056 1.1.2.2 gehenna .callinfo NO_CALLS
1057 1.1.2.2 gehenna .export $$mulI, millicode
1058 1.1.2.2 gehenna combt,<<= %r25,%r26,l4 ; swap args if unsigned %r25>%r26
1059 1.1.2.2 gehenna copy 0,%r29 ; zero out the result
1060 1.1.2.2 gehenna xor %r26,%r25,%r26 ; swap %r26 & %r25 using the
1061 1.1.2.2 gehenna xor %r26,%r25,%r25 ; old xor trick
1062 1.1.2.2 gehenna xor %r26,%r25,%r26
1063 1.1.2.2 gehenna l4: combt,<= 0,%r26,l3 ; if %r26>=0 then proceed like unsigned
1064 1.1.2.2 gehenna
1065 1.1.2.2 gehenna zdep %r25,30,8,%r1 ; %r1 = (%r25&0xff)<<1 *********
1066 1.1.2.2 gehenna sub,> 0,%r25,%r1 ; otherwise negate both and
1067 1.1.2.2 gehenna combt,<=,n %r26,%r1,l2 ; swap back if |%r26|<|%r25|
1068 1.1.2.2 gehenna sub 0,%r26,%r25
1069 1.1.2.2 gehenna movb,tr,n %r1,%r26,l2 ; 10th inst.
1070 1.1.2.2 gehenna
1071 1.1.2.2 gehenna l0: add %r29,%r1,%r29 ; add in this partial product
1072 1.1.2.2 gehenna
1073 1.1.2.2 gehenna l1: zdep %r26,23,24,%r26 ; %r26 <<= 8 ******************
1074 1.1.2.2 gehenna
1075 1.1.2.2 gehenna l2: zdep %r25,30,8,%r1 ; %r1 = (%r25&0xff)<<1 *********
1076 1.1.2.2 gehenna
1077 1.1.2.2 gehenna l3: blr %r1,0 ; case on these 8 bits ******
1078 1.1.2.2 gehenna
1079 1.1.2.2 gehenna extru %r25,23,24,%r25 ; %r25 >>= 8 ******************
1080 1.1.2.2 gehenna
1081 1.1.2.2 gehenna ;16 insts before this.
1082 1.1.2.2 gehenna ; %r26 <<= 8 **************************
1083 1.1.2.2 gehenna x0: comb,<> %r25,0,l2 ! zdep %r26,23,24,%r26 ! bv,n 0(r31) ! nop
1084 1.1.2.2 gehenna
1085 1.1.2.2 gehenna x1: comb,<> %r25,0,l1 ! add %r29,%r26,%r29 ! bv,n 0(r31) ! nop
1086 1.1.2.2 gehenna
1087 1.1.2.2 gehenna x2: comb,<> %r25,0,l1 ! sh1add %r26,%r29,%r29 ! bv,n 0(r31) ! nop
1088 1.1.2.2 gehenna
1089 1.1.2.2 gehenna x3: comb,<> %r25,0,l0 ! sh1add %r26,%r26,%r1 ! bv 0(r31) ! add %r29,%r1,%r29
1090 1.1.2.2 gehenna
1091 1.1.2.2 gehenna x4: comb,<> %r25,0,l1 ! sh2add %r26,%r29,%r29 ! bv,n 0(r31) ! nop
1092 1.1.2.2 gehenna
1093 1.1.2.2 gehenna x5: comb,<> %r25,0,l0 ! sh2add %r26,%r26,%r1 ! bv 0(r31) ! add %r29,%r1,%r29
1094 1.1.2.2 gehenna
1095 1.1.2.2 gehenna x6: sh1add %r26,%r26,%r1 ! comb,<> %r25,0,l1 ! sh1add %r1,%r29,%r29 ! bv,n 0(r31)
1096 1.1.2.2 gehenna
1097 1.1.2.2 gehenna x7: sh1add %r26,%r26,%r1 ! comb,<> %r25,0,l0 ! sh2add %r26,%r29,%r29 ! b,n ret_t0
1098 1.1.2.2 gehenna
1099 1.1.2.2 gehenna x8: comb,<> %r25,0,l1 ! sh3add %r26,%r29,%r29 ! bv,n 0(r31) ! nop
1100 1.1.2.2 gehenna
1101 1.1.2.2 gehenna x9: comb,<> %r25,0,l0 ! sh3add %r26,%r26,%r1 ! bv 0(r31) ! add %r29,%r1,%r29
1102 1.1.2.2 gehenna
1103 1.1.2.2 gehenna x10: sh2add %r26,%r26,%r1 ! comb,<> %r25,0,l1 ! sh1add %r1,%r29,%r29 ! bv,n 0(r31)
1104 1.1.2.2 gehenna
1105 1.1.2.2 gehenna x11: sh1add %r26,%r26,%r1 ! comb,<> %r25,0,l0 ! sh3add %r26,%r29,%r29 ! b,n ret_t0
1106 1.1.2.2 gehenna
1107 1.1.2.2 gehenna x12: sh1add %r26,%r26,%r1 ! comb,<> %r25,0,l1 ! sh2add %r1,%r29,%r29 ! bv,n 0(r31)
1108 1.1.2.2 gehenna
1109 1.1.2.2 gehenna x13: sh2add %r26,%r26,%r1 ! comb,<> %r25,0,l0 ! sh3add %r26,%r29,%r29 ! b,n ret_t0
1110 1.1.2.2 gehenna
1111 1.1.2.2 gehenna x14: sh1add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1112 1.1.2.2 gehenna
1113 1.1.2.2 gehenna x15: sh2add %r26,%r26,%r1 ! comb,<> %r25,0,l0 ! sh1add %r1,%r1,%r1 ! b,n ret_t0
1114 1.1.2.2 gehenna
1115 1.1.2.2 gehenna x16: zdep %r26,27,28,%r1 ! comb,<> %r25,0,l1 ! add %r29,%r1,%r29 ! bv,n 0(r31)
1116 1.1.2.2 gehenna
1117 1.1.2.2 gehenna x17: sh3add %r26,%r26,%r1 ! comb,<> %r25,0,l0 ! sh3add %r26,%r1,%r1 ! b,n ret_t0
1118 1.1.2.2 gehenna
1119 1.1.2.2 gehenna x18: sh3add %r26,%r26,%r1 ! comb,<> %r25,0,l1 ! sh1add %r1,%r29,%r29 ! bv,n 0(r31)
1120 1.1.2.2 gehenna
1121 1.1.2.2 gehenna x19: sh3add %r26,%r26,%r1 ! comb,<> %r25,0,l0 ! sh1add %r1,%r26,%r1 ! b,n ret_t0
1122 1.1.2.2 gehenna
1123 1.1.2.2 gehenna x20: sh2add %r26,%r26,%r1 ! comb,<> %r25,0,l1 ! sh2add %r1,%r29,%r29 ! bv,n 0(r31)
1124 1.1.2.2 gehenna
1125 1.1.2.2 gehenna x21: sh2add %r26,%r26,%r1 ! comb,<> %r25,0,l0 ! sh2add %r1,%r26,%r1 ! b,n ret_t0
1126 1.1.2.2 gehenna
1127 1.1.2.2 gehenna x22: sh2add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1128 1.1.2.2 gehenna
1129 1.1.2.2 gehenna x23: sh2add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_t0 ! sh1add %r1,%r26,%r1
1130 1.1.2.2 gehenna
1131 1.1.2.2 gehenna x24: sh1add %r26,%r26,%r1 ! comb,<> %r25,0,l1 ! sh3add %r1,%r29,%r29 ! bv,n 0(r31)
1132 1.1.2.2 gehenna
1133 1.1.2.2 gehenna x25: sh2add %r26,%r26,%r1 ! comb,<> %r25,0,l0 ! sh2add %r1,%r1,%r1 ! b,n ret_t0
1134 1.1.2.2 gehenna
1135 1.1.2.2 gehenna x26: sh1add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1136 1.1.2.2 gehenna
1137 1.1.2.2 gehenna x27: sh1add %r26,%r26,%r1 ! comb,<> %r25,0,l0 ! sh3add %r1,%r1,%r1 ! b,n ret_t0
1138 1.1.2.2 gehenna
1139 1.1.2.2 gehenna x28: sh1add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1140 1.1.2.2 gehenna
1141 1.1.2.2 gehenna x29: sh1add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_t0 ! sh2add %r1,%r26,%r1
1142 1.1.2.2 gehenna
1143 1.1.2.2 gehenna x30: sh2add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1144 1.1.2.2 gehenna
1145 1.1.2.2 gehenna x31: zdep %r26,26,27,%r1 ! comb,<> %r25,0,l0 ! sub %r1,%r26,%r1 ! b,n ret_t0
1146 1.1.2.2 gehenna
1147 1.1.2.2 gehenna x32: zdep %r26,26,27,%r1 ! comb,<> %r25,0,l1 ! add %r29,%r1,%r29 ! bv,n 0(r31)
1148 1.1.2.2 gehenna
1149 1.1.2.2 gehenna x33: sh3add %r26,0,%r1 ! comb,<> %r25,0,l0 ! sh2add %r1,%r26,%r1 ! b,n ret_t0
1150 1.1.2.2 gehenna
1151 1.1.2.2 gehenna x34: zdep %r26,27,28,%r1 ! add %r1,%r26,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1152 1.1.2.2 gehenna
1153 1.1.2.2 gehenna x35: sh3add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_t0 ! sh3add %r26,%r1,%r1
1154 1.1.2.2 gehenna
1155 1.1.2.2 gehenna x36: sh3add %r26,%r26,%r1 ! comb,<> %r25,0,l1 ! sh2add %r1,%r29,%r29 ! bv,n 0(r31)
1156 1.1.2.2 gehenna
1157 1.1.2.2 gehenna x37: sh3add %r26,%r26,%r1 ! comb,<> %r25,0,l0 ! sh2add %r1,%r26,%r1 ! b,n ret_t0
1158 1.1.2.2 gehenna
1159 1.1.2.2 gehenna x38: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1160 1.1.2.2 gehenna
1161 1.1.2.2 gehenna x39: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_t0 ! sh1add %r1,%r26,%r1
1162 1.1.2.2 gehenna
1163 1.1.2.2 gehenna x40: sh2add %r26,%r26,%r1 ! comb,<> %r25,0,l1 ! sh3add %r1,%r29,%r29 ! bv,n 0(r31)
1164 1.1.2.2 gehenna
1165 1.1.2.2 gehenna x41: sh2add %r26,%r26,%r1 ! comb,<> %r25,0,l0 ! sh3add %r1,%r26,%r1 ! b,n ret_t0
1166 1.1.2.2 gehenna
1167 1.1.2.2 gehenna x42: sh2add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1168 1.1.2.2 gehenna
1169 1.1.2.2 gehenna x43: sh2add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_t0 ! sh1add %r1,%r26,%r1
1170 1.1.2.2 gehenna
1171 1.1.2.2 gehenna x44: sh2add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1172 1.1.2.2 gehenna
1173 1.1.2.2 gehenna x45: sh3add %r26,%r26,%r1 ! comb,<> %r25,0,l0 ! sh2add %r1,%r1,%r1 ! b,n ret_t0
1174 1.1.2.2 gehenna
1175 1.1.2.2 gehenna x46: sh3add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_t0 ! add %r1,%r26,%r1
1176 1.1.2.2 gehenna
1177 1.1.2.2 gehenna x47: sh3add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_t0 ! sh1add %r26,%r1,%r1
1178 1.1.2.2 gehenna
1179 1.1.2.2 gehenna x48: sh1add %r26,%r26,%r1 ! comb,<> %r25,0,l0 ! zdep %r1,27,28,%r1 ! b,n ret_t0
1180 1.1.2.2 gehenna
1181 1.1.2.2 gehenna x49: sh3add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_t0 ! sh2add %r26,%r1,%r1
1182 1.1.2.2 gehenna
1183 1.1.2.2 gehenna x50: sh2add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1184 1.1.2.2 gehenna
1185 1.1.2.2 gehenna x51: sh3add %r26,%r26,%r1 ! sh3add %r26,%r1,%r1 ! b e_t0 ! sh1add %r1,%r1,%r1
1186 1.1.2.2 gehenna
1187 1.1.2.2 gehenna x52: sh1add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1188 1.1.2.2 gehenna
1189 1.1.2.2 gehenna x53: sh1add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_t0 ! sh2add %r1,%r26,%r1
1190 1.1.2.2 gehenna
1191 1.1.2.2 gehenna x54: sh3add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1192 1.1.2.2 gehenna
1193 1.1.2.2 gehenna x55: sh3add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_t0 ! sh1add %r1,%r26,%r1
1194 1.1.2.2 gehenna
1195 1.1.2.2 gehenna x56: sh1add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_shift ! sh3add %r1,%r29,%r29
1196 1.1.2.2 gehenna
1197 1.1.2.2 gehenna x57: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_t0 ! sh1add %r1,%r1,%r1
1198 1.1.2.2 gehenna
1199 1.1.2.2 gehenna x58: sh1add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_2t0 ! sh2add %r1,%r26,%r1
1200 1.1.2.2 gehenna
1201 1.1.2.2 gehenna x59: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_t02a0 ! sh1add %r1,%r1,%r1
1202 1.1.2.2 gehenna
1203 1.1.2.2 gehenna x60: sh2add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1204 1.1.2.2 gehenna
1205 1.1.2.2 gehenna x61: sh2add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_t0 ! sh2add %r1,%r26,%r1
1206 1.1.2.2 gehenna
1207 1.1.2.2 gehenna x62: zdep %r26,26,27,%r1 ! sub %r1,%r26,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1208 1.1.2.2 gehenna
1209 1.1.2.2 gehenna x63: zdep %r26,25,26,%r1 ! comb,<> %r25,0,l0 ! sub %r1,%r26,%r1 ! b,n ret_t0
1210 1.1.2.2 gehenna
1211 1.1.2.2 gehenna x64: zdep %r26,25,26,%r1 ! comb,<> %r25,0,l1 ! add %r29,%r1,%r29 ! bv,n 0(r31)
1212 1.1.2.2 gehenna
1213 1.1.2.2 gehenna x65: sh3add %r26,0,%r1 ! comb,<> %r25,0,l0 ! sh3add %r1,%r26,%r1 ! b,n ret_t0
1214 1.1.2.2 gehenna
1215 1.1.2.2 gehenna x66: zdep %r26,26,27,%r1 ! add %r1,%r26,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1216 1.1.2.2 gehenna
1217 1.1.2.2 gehenna x67: sh3add %r26,0,%r1 ! sh2add %r1,%r26,%r1 ! b e_t0 ! sh1add %r1,%r26,%r1
1218 1.1.2.2 gehenna
1219 1.1.2.2 gehenna x68: sh3add %r26,0,%r1 ! sh1add %r1,%r26,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1220 1.1.2.2 gehenna
1221 1.1.2.2 gehenna x69: sh3add %r26,0,%r1 ! sh1add %r1,%r26,%r1 ! b e_t0 ! sh2add %r1,%r26,%r1
1222 1.1.2.2 gehenna
1223 1.1.2.2 gehenna x70: zdep %r26,25,26,%r1 ! sh2add %r26,%r1,%r1 ! b e_t0 ! sh1add %r26,%r1,%r1
1224 1.1.2.2 gehenna
1225 1.1.2.2 gehenna x71: sh3add %r26,%r26,%r1 ! sh3add %r1,0,%r1 ! b e_t0 ! sub %r1,%r26,%r1
1226 1.1.2.2 gehenna
1227 1.1.2.2 gehenna x72: sh3add %r26,%r26,%r1 ! comb,<> %r25,0,l1 ! sh3add %r1,%r29,%r29 ! bv,n 0(r31)
1228 1.1.2.2 gehenna
1229 1.1.2.2 gehenna x73: sh3add %r26,%r26,%r1 ! sh3add %r1,%r26,%r1 ! b e_shift ! add %r29,%r1,%r29
1230 1.1.2.2 gehenna
1231 1.1.2.2 gehenna x74: sh3add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1232 1.1.2.2 gehenna
1233 1.1.2.2 gehenna x75: sh3add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_t0 ! sh1add %r1,%r26,%r1
1234 1.1.2.2 gehenna
1235 1.1.2.2 gehenna x76: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1236 1.1.2.2 gehenna
1237 1.1.2.2 gehenna x77: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_t0 ! sh2add %r1,%r26,%r1
1238 1.1.2.2 gehenna
1239 1.1.2.2 gehenna x78: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_2t0 ! sh1add %r1,%r26,%r1
1240 1.1.2.2 gehenna
1241 1.1.2.2 gehenna x79: zdep %r26,27,28,%r1 ! sh2add %r1,%r1,%r1 ! b e_t0 ! sub %r1,%r26,%r1
1242 1.1.2.2 gehenna
1243 1.1.2.2 gehenna x80: zdep %r26,27,28,%r1 ! sh2add %r1,%r1,%r1 ! b e_shift ! add %r29,%r1,%r29
1244 1.1.2.2 gehenna
1245 1.1.2.2 gehenna x81: sh3add %r26,%r26,%r1 ! sh3add %r1,%r1,%r1 ! b e_shift ! add %r29,%r1,%r29
1246 1.1.2.2 gehenna
1247 1.1.2.2 gehenna x82: sh2add %r26,%r26,%r1 ! sh3add %r1,%r26,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1248 1.1.2.2 gehenna
1249 1.1.2.2 gehenna x83: sh2add %r26,%r26,%r1 ! sh3add %r1,%r26,%r1 ! b e_t0 ! sh1add %r1,%r26,%r1
1250 1.1.2.2 gehenna
1251 1.1.2.2 gehenna x84: sh2add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1252 1.1.2.2 gehenna
1253 1.1.2.2 gehenna x85: sh3add %r26,0,%r1 ! sh1add %r1,%r26,%r1 ! b e_t0 ! sh2add %r1,%r1,%r1
1254 1.1.2.2 gehenna
1255 1.1.2.2 gehenna x86: sh2add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_2t0 ! sh1add %r1,%r26,%r1
1256 1.1.2.2 gehenna
1257 1.1.2.2 gehenna x87: sh3add %r26,%r26,%r1 ! sh3add %r1,%r1,%r1 ! b e_t02a0 ! sh2add %r26,%r1,%r1
1258 1.1.2.2 gehenna
1259 1.1.2.2 gehenna x88: sh2add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_shift ! sh3add %r1,%r29,%r29
1260 1.1.2.2 gehenna
1261 1.1.2.2 gehenna x89: sh2add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_t0 ! sh3add %r1,%r26,%r1
1262 1.1.2.2 gehenna
1263 1.1.2.2 gehenna x90: sh3add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1264 1.1.2.2 gehenna
1265 1.1.2.2 gehenna x91: sh3add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_t0 ! sh1add %r1,%r26,%r1
1266 1.1.2.2 gehenna
1267 1.1.2.2 gehenna x92: sh2add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_4t0 ! sh1add %r1,%r26,%r1
1268 1.1.2.2 gehenna
1269 1.1.2.2 gehenna x93: zdep %r26,26,27,%r1 ! sub %r1,%r26,%r1 ! b e_t0 ! sh1add %r1,%r1,%r1
1270 1.1.2.2 gehenna
1271 1.1.2.2 gehenna x94: sh3add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_2t0 ! sh1add %r26,%r1,%r1
1272 1.1.2.2 gehenna
1273 1.1.2.2 gehenna x95: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_t0 ! sh2add %r1,%r1,%r1
1274 1.1.2.2 gehenna
1275 1.1.2.2 gehenna x96: sh3add %r26,0,%r1 ! sh1add %r1,%r1,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1276 1.1.2.2 gehenna
1277 1.1.2.2 gehenna x97: sh3add %r26,0,%r1 ! sh1add %r1,%r1,%r1 ! b e_t0 ! sh2add %r1,%r26,%r1
1278 1.1.2.2 gehenna
1279 1.1.2.2 gehenna x98: zdep %r26,26,27,%r1 ! sh1add %r1,%r1,%r1 ! b e_t0 ! sh1add %r26,%r1,%r1
1280 1.1.2.2 gehenna
1281 1.1.2.2 gehenna x99: sh3add %r26,0,%r1 ! sh2add %r1,%r26,%r1 ! b e_t0 ! sh1add %r1,%r1,%r1
1282 1.1.2.2 gehenna
1283 1.1.2.2 gehenna x100: sh2add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1284 1.1.2.2 gehenna
1285 1.1.2.2 gehenna x101: sh2add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_t0 ! sh2add %r1,%r26,%r1
1286 1.1.2.2 gehenna
1287 1.1.2.2 gehenna x102: zdep %r26,26,27,%r1 ! sh1add %r26,%r1,%r1 ! b e_t0 ! sh1add %r1,%r1,%r1
1288 1.1.2.2 gehenna
1289 1.1.2.2 gehenna x103: sh2add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_t02a0 ! sh2add %r1,%r26,%r1
1290 1.1.2.2 gehenna
1291 1.1.2.2 gehenna x104: sh1add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_shift ! sh3add %r1,%r29,%r29
1292 1.1.2.2 gehenna
1293 1.1.2.2 gehenna x105: sh2add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_t0 ! sh2add %r1,%r1,%r1
1294 1.1.2.2 gehenna
1295 1.1.2.2 gehenna x106: sh1add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_2t0 ! sh2add %r1,%r26,%r1
1296 1.1.2.2 gehenna
1297 1.1.2.2 gehenna x107: sh3add %r26,%r26,%r1 ! sh2add %r26,%r1,%r1 ! b e_t02a0 ! sh3add %r1,%r26,%r1
1298 1.1.2.2 gehenna
1299 1.1.2.2 gehenna x108: sh3add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1300 1.1.2.2 gehenna
1301 1.1.2.2 gehenna x109: sh3add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_t0 ! sh2add %r1,%r26,%r1
1302 1.1.2.2 gehenna
1303 1.1.2.2 gehenna x110: sh3add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_2t0 ! sh1add %r1,%r26,%r1
1304 1.1.2.2 gehenna
1305 1.1.2.2 gehenna x111: sh3add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_t0 ! sh1add %r1,%r1,%r1
1306 1.1.2.2 gehenna
1307 1.1.2.2 gehenna x112: sh1add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_t0 ! zdep %r1,27,28,%r1
1308 1.1.2.2 gehenna
1309 1.1.2.2 gehenna x113: sh3add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_t02a0 ! sh1add %r1,%r1,%r1
1310 1.1.2.2 gehenna
1311 1.1.2.2 gehenna x114: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_2t0 ! sh1add %r1,%r1,%r1
1312 1.1.2.2 gehenna
1313 1.1.2.2 gehenna x115: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_2t0a0 ! sh1add %r1,%r1,%r1
1314 1.1.2.2 gehenna
1315 1.1.2.2 gehenna x116: sh1add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_4t0 ! sh2add %r1,%r26,%r1
1316 1.1.2.2 gehenna
1317 1.1.2.2 gehenna x117: sh1add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_t0 ! sh3add %r1,%r1,%r1
1318 1.1.2.2 gehenna
1319 1.1.2.2 gehenna x118: sh1add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_t0a0 ! sh3add %r1,%r1,%r1
1320 1.1.2.2 gehenna
1321 1.1.2.2 gehenna x119: sh1add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_t02a0 ! sh3add %r1,%r1,%r1
1322 1.1.2.2 gehenna
1323 1.1.2.2 gehenna x120: sh2add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_shift ! sh3add %r1,%r29,%r29
1324 1.1.2.2 gehenna
1325 1.1.2.2 gehenna x121: sh2add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_t0 ! sh3add %r1,%r26,%r1
1326 1.1.2.2 gehenna
1327 1.1.2.2 gehenna x122: sh2add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_2t0 ! sh2add %r1,%r26,%r1
1328 1.1.2.2 gehenna
1329 1.1.2.2 gehenna x123: sh2add %r26,%r26,%r1 ! sh3add %r1,%r26,%r1 ! b e_t0 ! sh1add %r1,%r1,%r1
1330 1.1.2.2 gehenna
1331 1.1.2.2 gehenna x124: zdep %r26,26,27,%r1 ! sub %r1,%r26,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1332 1.1.2.2 gehenna
1333 1.1.2.2 gehenna x125: sh2add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_t0 ! sh2add %r1,%r1,%r1
1334 1.1.2.2 gehenna
1335 1.1.2.2 gehenna x126: zdep %r26,25,26,%r1 ! sub %r1,%r26,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1336 1.1.2.2 gehenna
1337 1.1.2.2 gehenna x127: zdep %r26,24,25,%r1 ! comb,<> %r25,0,l0 ! sub %r1,%r26,%r1 ! b,n ret_t0
1338 1.1.2.2 gehenna
1339 1.1.2.2 gehenna x128: zdep %r26,24,25,%r1 ! comb,<> %r25,0,l1 ! add %r29,%r1,%r29 ! bv,n 0(r31)
1340 1.1.2.2 gehenna
1341 1.1.2.2 gehenna x129: zdep %r26,24,25,%r1 ! comb,<> %r25,0,l0 ! add %r1,%r26,%r1 ! b,n ret_t0
1342 1.1.2.2 gehenna
1343 1.1.2.2 gehenna x130: zdep %r26,25,26,%r1 ! add %r1,%r26,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1344 1.1.2.2 gehenna
1345 1.1.2.2 gehenna x131: sh3add %r26,0,%r1 ! sh3add %r1,%r26,%r1 ! b e_t0 ! sh1add %r1,%r26,%r1
1346 1.1.2.2 gehenna
1347 1.1.2.2 gehenna x132: sh3add %r26,0,%r1 ! sh2add %r1,%r26,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1348 1.1.2.2 gehenna
1349 1.1.2.2 gehenna x133: sh3add %r26,0,%r1 ! sh2add %r1,%r26,%r1 ! b e_t0 ! sh2add %r1,%r26,%r1
1350 1.1.2.2 gehenna
1351 1.1.2.2 gehenna x134: sh3add %r26,0,%r1 ! sh2add %r1,%r26,%r1 ! b e_2t0 ! sh1add %r1,%r26,%r1
1352 1.1.2.2 gehenna
1353 1.1.2.2 gehenna x135: sh3add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_t0 ! sh1add %r1,%r1,%r1
1354 1.1.2.2 gehenna
1355 1.1.2.2 gehenna x136: sh3add %r26,0,%r1 ! sh1add %r1,%r26,%r1 ! b e_shift ! sh3add %r1,%r29,%r29
1356 1.1.2.2 gehenna
1357 1.1.2.2 gehenna x137: sh3add %r26,0,%r1 ! sh1add %r1,%r26,%r1 ! b e_t0 ! sh3add %r1,%r26,%r1
1358 1.1.2.2 gehenna
1359 1.1.2.2 gehenna x138: sh3add %r26,0,%r1 ! sh1add %r1,%r26,%r1 ! b e_2t0 ! sh2add %r1,%r26,%r1
1360 1.1.2.2 gehenna
1361 1.1.2.2 gehenna x139: sh3add %r26,0,%r1 ! sh1add %r1,%r26,%r1 ! b e_2t0a0 ! sh2add %r1,%r26,%r1
1362 1.1.2.2 gehenna
1363 1.1.2.2 gehenna x140: sh1add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_4t0 ! sh2add %r1,%r1,%r1
1364 1.1.2.2 gehenna
1365 1.1.2.2 gehenna x141: sh3add %r26,0,%r1 ! sh1add %r1,%r26,%r1 ! b e_4t0a0 ! sh1add %r1,%r26,%r1
1366 1.1.2.2 gehenna
1367 1.1.2.2 gehenna x142: sh3add %r26,%r26,%r1 ! sh3add %r1,0,%r1 ! b e_2t0 ! sub %r1,%r26,%r1
1368 1.1.2.2 gehenna
1369 1.1.2.2 gehenna x143: zdep %r26,27,28,%r1 ! sh3add %r1,%r1,%r1 ! b e_t0 ! sub %r1,%r26,%r1
1370 1.1.2.2 gehenna
1371 1.1.2.2 gehenna x144: sh3add %r26,%r26,%r1 ! sh3add %r1,0,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1372 1.1.2.2 gehenna
1373 1.1.2.2 gehenna x145: sh3add %r26,%r26,%r1 ! sh3add %r1,0,%r1 ! b e_t0 ! sh1add %r1,%r26,%r1
1374 1.1.2.2 gehenna
1375 1.1.2.2 gehenna x146: sh3add %r26,%r26,%r1 ! sh3add %r1,%r26,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1376 1.1.2.2 gehenna
1377 1.1.2.2 gehenna x147: sh3add %r26,%r26,%r1 ! sh3add %r1,%r26,%r1 ! b e_t0 ! sh1add %r1,%r26,%r1
1378 1.1.2.2 gehenna
1379 1.1.2.2 gehenna x148: sh3add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1380 1.1.2.2 gehenna
1381 1.1.2.2 gehenna x149: sh3add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_t0 ! sh2add %r1,%r26,%r1
1382 1.1.2.2 gehenna
1383 1.1.2.2 gehenna x150: sh3add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_2t0 ! sh1add %r1,%r26,%r1
1384 1.1.2.2 gehenna
1385 1.1.2.2 gehenna x151: sh3add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_2t0a0 ! sh1add %r1,%r26,%r1
1386 1.1.2.2 gehenna
1387 1.1.2.2 gehenna x152: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_shift ! sh3add %r1,%r29,%r29
1388 1.1.2.2 gehenna
1389 1.1.2.2 gehenna x153: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_t0 ! sh3add %r1,%r26,%r1
1390 1.1.2.2 gehenna
1391 1.1.2.2 gehenna x154: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_2t0 ! sh2add %r1,%r26,%r1
1392 1.1.2.2 gehenna
1393 1.1.2.2 gehenna x155: zdep %r26,26,27,%r1 ! sub %r1,%r26,%r1 ! b e_t0 ! sh2add %r1,%r1,%r1
1394 1.1.2.2 gehenna
1395 1.1.2.2 gehenna x156: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_4t0 ! sh1add %r1,%r26,%r1
1396 1.1.2.2 gehenna
1397 1.1.2.2 gehenna x157: zdep %r26,26,27,%r1 ! sub %r1,%r26,%r1 ! b e_t02a0 ! sh2add %r1,%r1,%r1
1398 1.1.2.2 gehenna
1399 1.1.2.2 gehenna x158: zdep %r26,27,28,%r1 ! sh2add %r1,%r1,%r1 ! b e_2t0 ! sub %r1,%r26,%r1
1400 1.1.2.2 gehenna
1401 1.1.2.2 gehenna x159: zdep %r26,26,27,%r1 ! sh2add %r1,%r1,%r1 ! b e_t0 ! sub %r1,%r26,%r1
1402 1.1.2.2 gehenna
1403 1.1.2.2 gehenna x160: sh2add %r26,%r26,%r1 ! sh2add %r1,0,%r1 ! b e_shift ! sh3add %r1,%r29,%r29
1404 1.1.2.2 gehenna
1405 1.1.2.2 gehenna x161: sh3add %r26,0,%r1 ! sh2add %r1,%r1,%r1 ! b e_t0 ! sh2add %r1,%r26,%r1
1406 1.1.2.2 gehenna
1407 1.1.2.2 gehenna x162: sh3add %r26,%r26,%r1 ! sh3add %r1,%r1,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1408 1.1.2.2 gehenna
1409 1.1.2.2 gehenna x163: sh3add %r26,%r26,%r1 ! sh3add %r1,%r1,%r1 ! b e_t0 ! sh1add %r1,%r26,%r1
1410 1.1.2.2 gehenna
1411 1.1.2.2 gehenna x164: sh2add %r26,%r26,%r1 ! sh3add %r1,%r26,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1412 1.1.2.2 gehenna
1413 1.1.2.2 gehenna x165: sh3add %r26,0,%r1 ! sh2add %r1,%r26,%r1 ! b e_t0 ! sh2add %r1,%r1,%r1
1414 1.1.2.2 gehenna
1415 1.1.2.2 gehenna x166: sh2add %r26,%r26,%r1 ! sh3add %r1,%r26,%r1 ! b e_2t0 ! sh1add %r1,%r26,%r1
1416 1.1.2.2 gehenna
1417 1.1.2.2 gehenna x167: sh2add %r26,%r26,%r1 ! sh3add %r1,%r26,%r1 ! b e_2t0a0 ! sh1add %r1,%r26,%r1
1418 1.1.2.2 gehenna
1419 1.1.2.2 gehenna x168: sh2add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_shift ! sh3add %r1,%r29,%r29
1420 1.1.2.2 gehenna
1421 1.1.2.2 gehenna x169: sh2add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_t0 ! sh3add %r1,%r26,%r1
1422 1.1.2.2 gehenna
1423 1.1.2.2 gehenna x170: zdep %r26,26,27,%r1 ! sh1add %r26,%r1,%r1 ! b e_t0 ! sh2add %r1,%r1,%r1
1424 1.1.2.2 gehenna
1425 1.1.2.2 gehenna x171: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_t0 ! sh3add %r1,%r1,%r1
1426 1.1.2.2 gehenna
1427 1.1.2.2 gehenna x172: sh2add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_4t0 ! sh1add %r1,%r26,%r1
1428 1.1.2.2 gehenna
1429 1.1.2.2 gehenna x173: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_t02a0 ! sh3add %r1,%r1,%r1
1430 1.1.2.2 gehenna
1431 1.1.2.2 gehenna x174: zdep %r26,26,27,%r1 ! sh1add %r26,%r1,%r1 ! b e_t04a0 ! sh2add %r1,%r1,%r1
1432 1.1.2.2 gehenna
1433 1.1.2.2 gehenna x175: sh3add %r26,0,%r1 ! sh1add %r1,%r26,%r1 ! b e_5t0 ! sh1add %r1,%r26,%r1
1434 1.1.2.2 gehenna
1435 1.1.2.2 gehenna x176: sh2add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_8t0 ! add %r1,%r26,%r1
1436 1.1.2.2 gehenna
1437 1.1.2.2 gehenna x177: sh2add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_8t0a0 ! add %r1,%r26,%r1
1438 1.1.2.2 gehenna
1439 1.1.2.2 gehenna x178: sh2add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_2t0 ! sh3add %r1,%r26,%r1
1440 1.1.2.2 gehenna
1441 1.1.2.2 gehenna x179: sh2add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_2t0a0 ! sh3add %r1,%r26,%r1
1442 1.1.2.2 gehenna
1443 1.1.2.2 gehenna x180: sh3add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1444 1.1.2.2 gehenna
1445 1.1.2.2 gehenna x181: sh3add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_t0 ! sh2add %r1,%r26,%r1
1446 1.1.2.2 gehenna
1447 1.1.2.2 gehenna x182: sh3add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_2t0 ! sh1add %r1,%r26,%r1
1448 1.1.2.2 gehenna
1449 1.1.2.2 gehenna x183: sh3add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_2t0a0 ! sh1add %r1,%r26,%r1
1450 1.1.2.2 gehenna
1451 1.1.2.2 gehenna x184: sh2add %r26,%r26,%r1 ! sh3add %r1,%r1,%r1 ! b e_4t0 ! add %r1,%r26,%r1
1452 1.1.2.2 gehenna
1453 1.1.2.2 gehenna x185: sh3add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_t0 ! sh2add %r1,%r1,%r1
1454 1.1.2.2 gehenna
1455 1.1.2.2 gehenna x186: zdep %r26,26,27,%r1 ! sub %r1,%r26,%r1 ! b e_2t0 ! sh1add %r1,%r1,%r1
1456 1.1.2.2 gehenna
1457 1.1.2.2 gehenna x187: sh3add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_t02a0 ! sh2add %r1,%r1,%r1
1458 1.1.2.2 gehenna
1459 1.1.2.2 gehenna x188: sh3add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_4t0 ! sh1add %r26,%r1,%r1
1460 1.1.2.2 gehenna
1461 1.1.2.2 gehenna x189: sh2add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_t0 ! sh3add %r1,%r1,%r1
1462 1.1.2.2 gehenna
1463 1.1.2.2 gehenna x190: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_2t0 ! sh2add %r1,%r1,%r1
1464 1.1.2.2 gehenna
1465 1.1.2.2 gehenna x191: zdep %r26,25,26,%r1 ! sh1add %r1,%r1,%r1 ! b e_t0 ! sub %r1,%r26,%r1
1466 1.1.2.2 gehenna
1467 1.1.2.2 gehenna x192: sh3add %r26,0,%r1 ! sh1add %r1,%r1,%r1 ! b e_shift ! sh3add %r1,%r29,%r29
1468 1.1.2.2 gehenna
1469 1.1.2.2 gehenna x193: sh3add %r26,0,%r1 ! sh1add %r1,%r1,%r1 ! b e_t0 ! sh3add %r1,%r26,%r1
1470 1.1.2.2 gehenna
1471 1.1.2.2 gehenna x194: sh3add %r26,0,%r1 ! sh1add %r1,%r1,%r1 ! b e_2t0 ! sh2add %r1,%r26,%r1
1472 1.1.2.2 gehenna
1473 1.1.2.2 gehenna x195: sh3add %r26,0,%r1 ! sh3add %r1,%r26,%r1 ! b e_t0 ! sh1add %r1,%r1,%r1
1474 1.1.2.2 gehenna
1475 1.1.2.2 gehenna x196: sh3add %r26,0,%r1 ! sh1add %r1,%r1,%r1 ! b e_4t0 ! sh1add %r1,%r26,%r1
1476 1.1.2.2 gehenna
1477 1.1.2.2 gehenna x197: sh3add %r26,0,%r1 ! sh1add %r1,%r1,%r1 ! b e_4t0a0 ! sh1add %r1,%r26,%r1
1478 1.1.2.2 gehenna
1479 1.1.2.2 gehenna x198: zdep %r26,25,26,%r1 ! sh1add %r26,%r1,%r1 ! b e_t0 ! sh1add %r1,%r1,%r1
1480 1.1.2.2 gehenna
1481 1.1.2.2 gehenna x199: sh3add %r26,0,%r1 ! sh2add %r1,%r26,%r1 ! b e_2t0a0 ! sh1add %r1,%r1,%r1
1482 1.1.2.2 gehenna
1483 1.1.2.2 gehenna x200: sh2add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_shift ! sh3add %r1,%r29,%r29
1484 1.1.2.2 gehenna
1485 1.1.2.2 gehenna x201: sh2add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_t0 ! sh3add %r1,%r26,%r1
1486 1.1.2.2 gehenna
1487 1.1.2.2 gehenna x202: sh2add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_2t0 ! sh2add %r1,%r26,%r1
1488 1.1.2.2 gehenna
1489 1.1.2.2 gehenna x203: sh2add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_2t0a0 ! sh2add %r1,%r26,%r1
1490 1.1.2.2 gehenna
1491 1.1.2.2 gehenna x204: sh3add %r26,0,%r1 ! sh1add %r1,%r26,%r1 ! b e_4t0 ! sh1add %r1,%r1,%r1
1492 1.1.2.2 gehenna
1493 1.1.2.2 gehenna x205: sh2add %r26,%r26,%r1 ! sh3add %r1,%r26,%r1 ! b e_t0 ! sh2add %r1,%r1,%r1
1494 1.1.2.2 gehenna
1495 1.1.2.2 gehenna x206: zdep %r26,25,26,%r1 ! sh2add %r26,%r1,%r1 ! b e_t02a0 ! sh1add %r1,%r1,%r1
1496 1.1.2.2 gehenna
1497 1.1.2.2 gehenna x207: sh3add %r26,0,%r1 ! sh1add %r1,%r26,%r1 ! b e_3t0 ! sh2add %r1,%r26,%r1
1498 1.1.2.2 gehenna
1499 1.1.2.2 gehenna x208: sh2add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_8t0 ! add %r1,%r26,%r1
1500 1.1.2.2 gehenna
1501 1.1.2.2 gehenna x209: sh2add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_8t0a0 ! add %r1,%r26,%r1
1502 1.1.2.2 gehenna
1503 1.1.2.2 gehenna x210: sh2add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_2t0 ! sh2add %r1,%r1,%r1
1504 1.1.2.2 gehenna
1505 1.1.2.2 gehenna x211: sh2add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_2t0a0 ! sh2add %r1,%r1,%r1
1506 1.1.2.2 gehenna
1507 1.1.2.2 gehenna x212: sh1add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_4t0 ! sh2add %r1,%r26,%r1
1508 1.1.2.2 gehenna
1509 1.1.2.2 gehenna x213: sh1add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_4t0a0 ! sh2add %r1,%r26,%r1
1510 1.1.2.2 gehenna
1511 1.1.2.2 gehenna x214: sh3add %r26,%r26,%r1 ! sh2add %r26,%r1,%r1 ! b e2t04a0 ! sh3add %r1,%r26,%r1
1512 1.1.2.2 gehenna
1513 1.1.2.2 gehenna x215: sh2add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_5t0 ! sh1add %r1,%r26,%r1
1514 1.1.2.2 gehenna
1515 1.1.2.2 gehenna x216: sh3add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_shift ! sh3add %r1,%r29,%r29
1516 1.1.2.2 gehenna
1517 1.1.2.2 gehenna x217: sh3add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_t0 ! sh3add %r1,%r26,%r1
1518 1.1.2.2 gehenna
1519 1.1.2.2 gehenna x218: sh3add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_2t0 ! sh2add %r1,%r26,%r1
1520 1.1.2.2 gehenna
1521 1.1.2.2 gehenna x219: sh3add %r26,%r26,%r1 ! sh3add %r1,%r26,%r1 ! b e_t0 ! sh1add %r1,%r1,%r1
1522 1.1.2.2 gehenna
1523 1.1.2.2 gehenna x220: sh1add %r26,%r26,%r1 ! sh3add %r1,%r1,%r1 ! b e_4t0 ! sh1add %r1,%r26,%r1
1524 1.1.2.2 gehenna
1525 1.1.2.2 gehenna x221: sh1add %r26,%r26,%r1 ! sh3add %r1,%r1,%r1 ! b e_4t0a0 ! sh1add %r1,%r26,%r1
1526 1.1.2.2 gehenna
1527 1.1.2.2 gehenna x222: sh3add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_2t0 ! sh1add %r1,%r1,%r1
1528 1.1.2.2 gehenna
1529 1.1.2.2 gehenna x223: sh3add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_2t0a0 ! sh1add %r1,%r1,%r1
1530 1.1.2.2 gehenna
1531 1.1.2.2 gehenna x224: sh3add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_8t0 ! add %r1,%r26,%r1
1532 1.1.2.2 gehenna
1533 1.1.2.2 gehenna x225: sh3add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_t0 ! sh2add %r1,%r1,%r1
1534 1.1.2.2 gehenna
1535 1.1.2.2 gehenna x226: sh1add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_t02a0 ! zdep %r1,26,27,%r1
1536 1.1.2.2 gehenna
1537 1.1.2.2 gehenna x227: sh3add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_t02a0 ! sh2add %r1,%r1,%r1
1538 1.1.2.2 gehenna
1539 1.1.2.2 gehenna x228: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_4t0 ! sh1add %r1,%r1,%r1
1540 1.1.2.2 gehenna
1541 1.1.2.2 gehenna x229: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_4t0a0 ! sh1add %r1,%r1,%r1
1542 1.1.2.2 gehenna
1543 1.1.2.2 gehenna x230: sh3add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_5t0 ! add %r1,%r26,%r1
1544 1.1.2.2 gehenna
1545 1.1.2.2 gehenna x231: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_3t0 ! sh2add %r1,%r26,%r1
1546 1.1.2.2 gehenna
1547 1.1.2.2 gehenna x232: sh1add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_8t0 ! sh2add %r1,%r26,%r1
1548 1.1.2.2 gehenna
1549 1.1.2.2 gehenna x233: sh1add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e_8t0a0 ! sh2add %r1,%r26,%r1
1550 1.1.2.2 gehenna
1551 1.1.2.2 gehenna x234: sh1add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_2t0 ! sh3add %r1,%r1,%r1
1552 1.1.2.2 gehenna
1553 1.1.2.2 gehenna x235: sh1add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e_2t0a0 ! sh3add %r1,%r1,%r1
1554 1.1.2.2 gehenna
1555 1.1.2.2 gehenna x236: sh3add %r26,%r26,%r1 ! sh1add %r1,%r26,%r1 ! b e4t08a0 ! sh1add %r1,%r1,%r1
1556 1.1.2.2 gehenna
1557 1.1.2.2 gehenna x237: zdep %r26,27,28,%r1 ! sh2add %r1,%r1,%r1 ! b e_3t0 ! sub %r1,%r26,%r1
1558 1.1.2.2 gehenna
1559 1.1.2.2 gehenna x238: sh1add %r26,%r26,%r1 ! sh2add %r1,%r26,%r1 ! b e2t04a0 ! sh3add %r1,%r1,%r1
1560 1.1.2.2 gehenna
1561 1.1.2.2 gehenna x239: zdep %r26,27,28,%r1 ! sh2add %r1,%r1,%r1 ! b e_t0ma0 ! sh1add %r1,%r1,%r1
1562 1.1.2.2 gehenna
1563 1.1.2.2 gehenna x240: sh3add %r26,%r26,%r1 ! add %r1,%r26,%r1 ! b e_8t0 ! sh1add %r1,%r1,%r1
1564 1.1.2.2 gehenna
1565 1.1.2.2 gehenna x241: sh3add %r26,%r26,%r1 ! add %r1,%r26,%r1 ! b e_8t0a0 ! sh1add %r1,%r1,%r1
1566 1.1.2.2 gehenna
1567 1.1.2.2 gehenna x242: sh2add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_2t0 ! sh3add %r1,%r26,%r1
1568 1.1.2.2 gehenna
1569 1.1.2.2 gehenna x243: sh3add %r26,%r26,%r1 ! sh3add %r1,%r1,%r1 ! b e_t0 ! sh1add %r1,%r1,%r1
1570 1.1.2.2 gehenna
1571 1.1.2.2 gehenna x244: sh2add %r26,%r26,%r1 ! sh1add %r1,%r1,%r1 ! b e_4t0 ! sh2add %r1,%r26,%r1
1572 1.1.2.2 gehenna
1573 1.1.2.2 gehenna x245: sh3add %r26,0,%r1 ! sh1add %r1,%r1,%r1 ! b e_5t0 ! sh1add %r1,%r26,%r1
1574 1.1.2.2 gehenna
1575 1.1.2.2 gehenna x246: sh2add %r26,%r26,%r1 ! sh3add %r1,%r26,%r1 ! b e_2t0 ! sh1add %r1,%r1,%r1
1576 1.1.2.2 gehenna
1577 1.1.2.2 gehenna x247: sh2add %r26,%r26,%r1 ! sh3add %r1,%r26,%r1 ! b e_2t0a0 ! sh1add %r1,%r1,%r1
1578 1.1.2.2 gehenna
1579 1.1.2.2 gehenna x248: zdep %r26,26,27,%r1 ! sub %r1,%r26,%r1 ! b e_shift ! sh3add %r1,%r29,%r29
1580 1.1.2.2 gehenna
1581 1.1.2.2 gehenna x249: zdep %r26,26,27,%r1 ! sub %r1,%r26,%r1 ! b e_t0 ! sh3add %r1,%r26,%r1
1582 1.1.2.2 gehenna
1583 1.1.2.2 gehenna x250: sh2add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_2t0 ! sh2add %r1,%r1,%r1
1584 1.1.2.2 gehenna
1585 1.1.2.2 gehenna x251: sh2add %r26,%r26,%r1 ! sh2add %r1,%r1,%r1 ! b e_2t0a0 ! sh2add %r1,%r1,%r1
1586 1.1.2.2 gehenna
1587 1.1.2.2 gehenna x252: zdep %r26,25,26,%r1 ! sub %r1,%r26,%r1 ! b e_shift ! sh2add %r1,%r29,%r29
1588 1.1.2.2 gehenna
1589 1.1.2.2 gehenna x253: zdep %r26,25,26,%r1 ! sub %r1,%r26,%r1 ! b e_t0 ! sh2add %r1,%r26,%r1
1590 1.1.2.2 gehenna
1591 1.1.2.2 gehenna x254: zdep %r26,24,25,%r1 ! sub %r1,%r26,%r1 ! b e_shift ! sh1add %r1,%r29,%r29
1592 1.1.2.2 gehenna
1593 1.1.2.2 gehenna x255: zdep %r26,23,24,%r1 ! comb,<> %r25,0,l0 ! sub %r1,%r26,%r1 ! b,n ret_t0
1594 1.1.2.2 gehenna
1595 1.1.2.2 gehenna ;1040 insts before this.
1596 1.1.2.2 gehenna ret_t0: bv 0(r31)
1597 1.1.2.2 gehenna
1598 1.1.2.2 gehenna e_t0: add %r29,%r1,%r29
1599 1.1.2.2 gehenna
1600 1.1.2.2 gehenna e_shift: comb,<> %r25,0,l2
1601 1.1.2.2 gehenna
1602 1.1.2.2 gehenna zdep %r26,23,24,%r26 ; %r26 <<= 8 ***********
1603 1.1.2.2 gehenna bv,n 0(r31)
1604 1.1.2.2 gehenna e_t0ma0: comb,<> %r25,0,l0
1605 1.1.2.2 gehenna
1606 1.1.2.2 gehenna sub %r1,%r26,%r1
1607 1.1.2.2 gehenna bv 0(r31)
1608 1.1.2.2 gehenna add %r29,%r1,%r29
1609 1.1.2.2 gehenna e_t0a0: comb,<> %r25,0,l0
1610 1.1.2.2 gehenna
1611 1.1.2.2 gehenna add %r1,%r26,%r1
1612 1.1.2.2 gehenna bv 0(r31)
1613 1.1.2.2 gehenna add %r29,%r1,%r29
1614 1.1.2.2 gehenna e_t02a0: comb,<> %r25,0,l0
1615 1.1.2.2 gehenna
1616 1.1.2.2 gehenna sh1add %r26,%r1,%r1
1617 1.1.2.2 gehenna bv 0(r31)
1618 1.1.2.2 gehenna add %r29,%r1,%r29
1619 1.1.2.2 gehenna e_t04a0: comb,<> %r25,0,l0
1620 1.1.2.2 gehenna
1621 1.1.2.2 gehenna sh2add %r26,%r1,%r1
1622 1.1.2.2 gehenna bv 0(r31)
1623 1.1.2.2 gehenna add %r29,%r1,%r29
1624 1.1.2.2 gehenna e_2t0: comb,<> %r25,0,l1
1625 1.1.2.2 gehenna
1626 1.1.2.2 gehenna sh1add %r1,%r29,%r29
1627 1.1.2.2 gehenna bv,n 0(r31)
1628 1.1.2.2 gehenna e_2t0a0: comb,<> %r25,0,l0
1629 1.1.2.2 gehenna
1630 1.1.2.2 gehenna sh1add %r1,%r26,%r1
1631 1.1.2.2 gehenna bv 0(r31)
1632 1.1.2.2 gehenna add %r29,%r1,%r29
1633 1.1.2.2 gehenna e2t04a0: sh1add %r26,%r1,%r1
1634 1.1.2.2 gehenna
1635 1.1.2.2 gehenna comb,<> %r25,0,l1
1636 1.1.2.2 gehenna sh1add %r1,%r29,%r29
1637 1.1.2.2 gehenna bv,n 0(r31)
1638 1.1.2.2 gehenna e_3t0: comb,<> %r25,0,l0
1639 1.1.2.2 gehenna
1640 1.1.2.2 gehenna sh1add %r1,%r1,%r1
1641 1.1.2.2 gehenna bv 0(r31)
1642 1.1.2.2 gehenna add %r29,%r1,%r29
1643 1.1.2.2 gehenna e_4t0: comb,<> %r25,0,l1
1644 1.1.2.2 gehenna
1645 1.1.2.2 gehenna sh2add %r1,%r29,%r29
1646 1.1.2.2 gehenna bv,n 0(r31)
1647 1.1.2.2 gehenna e_4t0a0: comb,<> %r25,0,l0
1648 1.1.2.2 gehenna
1649 1.1.2.2 gehenna sh2add %r1,%r26,%r1
1650 1.1.2.2 gehenna bv 0(r31)
1651 1.1.2.2 gehenna add %r29,%r1,%r29
1652 1.1.2.2 gehenna e4t08a0: sh1add %r26,%r1,%r1
1653 1.1.2.2 gehenna
1654 1.1.2.2 gehenna comb,<> %r25,0,l1
1655 1.1.2.2 gehenna sh2add %r1,%r29,%r29
1656 1.1.2.2 gehenna bv,n 0(r31)
1657 1.1.2.2 gehenna e_5t0: comb,<> %r25,0,l0
1658 1.1.2.2 gehenna
1659 1.1.2.2 gehenna sh2add %r1,%r1,%r1
1660 1.1.2.2 gehenna bv 0(r31)
1661 1.1.2.2 gehenna add %r29,%r1,%r29
1662 1.1.2.2 gehenna e_8t0: comb,<> %r25,0,l1
1663 1.1.2.2 gehenna
1664 1.1.2.2 gehenna sh3add %r1,%r29,%r29
1665 1.1.2.2 gehenna bv,n 0(r31)
1666 1.1.2.2 gehenna e_8t0a0: comb,<> %r25,0,l0
1667 1.1.2.2 gehenna
1668 1.1.2.2 gehenna sh3add %r1,%r26,%r1
1669 1.1.2.2 gehenna bv 0(r31)
1670 1.1.2.2 gehenna add %r29,%r1,%r29
1671 1.1.2.2 gehenna
1672 1.1.2.2 gehenna .procend
1673 1.1.2.2 gehenna .end
1674 1.1.2.2 gehenna
1675 1.1.2.2 gehenna .import $$divI_2,millicode
1676 1.1.2.2 gehenna .import $$divI_3,millicode
1677 1.1.2.2 gehenna .import $$divI_4,millicode
1678 1.1.2.2 gehenna .import $$divI_5,millicode
1679 1.1.2.2 gehenna .import $$divI_6,millicode
1680 1.1.2.2 gehenna .import $$divI_7,millicode
1681 1.1.2.2 gehenna .import $$divI_8,millicode
1682 1.1.2.2 gehenna .import $$divI_9,millicode
1683 1.1.2.2 gehenna .import $$divI_10,millicode
1684 1.1.2.2 gehenna .import $$divI_12,millicode
1685 1.1.2.2 gehenna .import $$divI_14,millicode
1686 1.1.2.2 gehenna .import $$divI_15,millicode
1687 1.1.2.2 gehenna .export $$divI,millicode
1688 1.1.2.2 gehenna .export $$divoI,millicode
1689 1.1.2.2 gehenna $$divoI:
1690 1.1.2.2 gehenna .proc
1691 1.1.2.2 gehenna .callinfo NO_CALLS
1692 1.1.2.2 gehenna comib,=,n -1,arg1,negative1 ; when divisor == -1
1693 1.1.2.2 gehenna $$divI:
1694 1.1.2.2 gehenna comib,>>=,n 15,arg1,small_divisor
1695 1.1.2.2 gehenna add,>= 0,arg0,retreg ; move dividend, if retreg < 0,
1696 1.1.2.2 gehenna normal1:
1697 1.1.2.2 gehenna sub 0,retreg,retreg ; make it positive
1698 1.1.2.2 gehenna sub 0,arg1,temp ; clear carry,
1699 1.1.2.2 gehenna ; negate the divisor
1700 1.1.2.2 gehenna ds 0,temp,0 ; set V-bit to the comple-
1701 1.1.2.2 gehenna ; ment of the divisor sign
1702 1.1.2.2 gehenna add retreg,retreg,retreg ; shift msb bit into carry
1703 1.1.2.2 gehenna ds r0,arg1,temp ; 1st divide step, if no carry
1704 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1705 1.1.2.2 gehenna ds temp,arg1,temp ; 2nd divide step
1706 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1707 1.1.2.2 gehenna ds temp,arg1,temp ; 3rd divide step
1708 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1709 1.1.2.2 gehenna ds temp,arg1,temp ; 4th divide step
1710 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1711 1.1.2.2 gehenna ds temp,arg1,temp ; 5th divide step
1712 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1713 1.1.2.2 gehenna ds temp,arg1,temp ; 6th divide step
1714 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1715 1.1.2.2 gehenna ds temp,arg1,temp ; 7th divide step
1716 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1717 1.1.2.2 gehenna ds temp,arg1,temp ; 8th divide step
1718 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1719 1.1.2.2 gehenna ds temp,arg1,temp ; 9th divide step
1720 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1721 1.1.2.2 gehenna ds temp,arg1,temp ; 10th divide step
1722 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1723 1.1.2.2 gehenna ds temp,arg1,temp ; 11th divide step
1724 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1725 1.1.2.2 gehenna ds temp,arg1,temp ; 12th divide step
1726 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1727 1.1.2.2 gehenna ds temp,arg1,temp ; 13th divide step
1728 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1729 1.1.2.2 gehenna ds temp,arg1,temp ; 14th divide step
1730 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1731 1.1.2.2 gehenna ds temp,arg1,temp ; 15th divide step
1732 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1733 1.1.2.2 gehenna ds temp,arg1,temp ; 16th divide step
1734 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1735 1.1.2.2 gehenna ds temp,arg1,temp ; 17th divide step
1736 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1737 1.1.2.2 gehenna ds temp,arg1,temp ; 18th divide step
1738 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1739 1.1.2.2 gehenna ds temp,arg1,temp ; 19th divide step
1740 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1741 1.1.2.2 gehenna ds temp,arg1,temp ; 20th divide step
1742 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1743 1.1.2.2 gehenna ds temp,arg1,temp ; 21st divide step
1744 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1745 1.1.2.2 gehenna ds temp,arg1,temp ; 22nd divide step
1746 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1747 1.1.2.2 gehenna ds temp,arg1,temp ; 23rd divide step
1748 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1749 1.1.2.2 gehenna ds temp,arg1,temp ; 24th divide step
1750 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1751 1.1.2.2 gehenna ds temp,arg1,temp ; 25th divide step
1752 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1753 1.1.2.2 gehenna ds temp,arg1,temp ; 26th divide step
1754 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1755 1.1.2.2 gehenna ds temp,arg1,temp ; 27th divide step
1756 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1757 1.1.2.2 gehenna ds temp,arg1,temp ; 28th divide step
1758 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1759 1.1.2.2 gehenna ds temp,arg1,temp ; 29th divide step
1760 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1761 1.1.2.2 gehenna ds temp,arg1,temp ; 30th divide step
1762 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1763 1.1.2.2 gehenna ds temp,arg1,temp ; 31st divide step
1764 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift retreg with/into carry
1765 1.1.2.2 gehenna ds temp,arg1,temp ; 32nd divide step,
1766 1.1.2.2 gehenna addc retreg,retreg,retreg ; shift last retreg bit into retreg
1767 1.1.2.2 gehenna xor,>= arg0,arg1,0 ; get correct sign of quotient
1768 1.1.2.2 gehenna sub 0,retreg,retreg ; based on operand signs
1769 1.1.2.2 gehenna bv,n 0(r31)
1770 1.1.2.2 gehenna nop
1771 1.1.2.2 gehenna ;______________________________________________________________________
1772 1.1.2.2 gehenna small_divisor:
1773 1.1.2.2 gehenna blr,n arg1,r0
1774 1.1.2.2 gehenna nop
1775 1.1.2.2 gehenna ; table for divisor == 0,1, ... ,15
1776 1.1.2.2 gehenna addit,= 0,arg1,r0 ; trap if divisor == 0
1777 1.1.2.2 gehenna nop
1778 1.1.2.2 gehenna bv 0(r31) ; divisor == 1
1779 1.1.2.2 gehenna copy arg0,retreg
1780 1.1.2.2 gehenna b,n $$divI_2 ; divisor == 2
1781 1.1.2.2 gehenna nop
1782 1.1.2.2 gehenna b,n $$divI_3 ; divisor == 3
1783 1.1.2.2 gehenna nop
1784 1.1.2.2 gehenna b,n $$divI_4 ; divisor == 4
1785 1.1.2.2 gehenna nop
1786 1.1.2.2 gehenna b,n $$divI_5 ; divisor == 5
1787 1.1.2.2 gehenna nop
1788 1.1.2.2 gehenna b,n $$divI_6 ; divisor == 6
1789 1.1.2.2 gehenna nop
1790 1.1.2.2 gehenna b,n $$divI_7 ; divisor == 7
1791 1.1.2.2 gehenna nop
1792 1.1.2.2 gehenna b,n $$divI_8 ; divisor == 8
1793 1.1.2.2 gehenna nop
1794 1.1.2.2 gehenna b,n $$divI_9 ; divisor == 9
1795 1.1.2.2 gehenna nop
1796 1.1.2.2 gehenna b,n $$divI_10 ; divisor == 10
1797 1.1.2.2 gehenna nop
1798 1.1.2.2 gehenna b normal1 ; divisor == 11
1799 1.1.2.2 gehenna add,>= 0,arg0,retreg
1800 1.1.2.2 gehenna b,n $$divI_12 ; divisor == 12
1801 1.1.2.2 gehenna nop
1802 1.1.2.2 gehenna b normal1 ; divisor == 13
1803 1.1.2.2 gehenna add,>= 0,arg0,retreg
1804 1.1.2.2 gehenna b,n $$divI_14 ; divisor == 14
1805 1.1.2.2 gehenna nop
1806 1.1.2.2 gehenna b,n $$divI_15 ; divisor == 15
1807 1.1.2.2 gehenna nop
1808 1.1.2.2 gehenna ;______________________________________________________________________
1809 1.1.2.2 gehenna negative1:
1810 1.1.2.2 gehenna sub 0,arg0,retreg ; result is negation of dividend
1811 1.1.2.2 gehenna bv 0(r31)
1812 1.1.2.2 gehenna addo arg0,arg1,r0 ; trap iff dividend==0x80000000 && divisor==-1
1813 1.1.2.2 gehenna .procend
1814 1.1.2.2 gehenna .end
1815