Home | History | Annotate | Line # | Download | only in hppa
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