[BACK]Return to milli.S CVS log [TXT][DIR] Up to [local] / sys / lib / libkern / arch / hppa64

Annotation of sys/lib/libkern/arch/hppa64/milli.S, Revision 1.1.1.1

1.1       nbrk        1: ;      $OpenBSD: milli.S,v 1.1 2005/04/01 10:45:29 mickey Exp $
                      2: ;
                      3: ;  (c) Copyright 1986 HEWLETT-PACKARD COMPANY
                      4: ;
                      5: ;  To anyone who acknowledges that this file is provided "AS IS"
                      6: ;  without any express or implied warranty:
                      7: ;      permission to use, copy, modify, and distribute this file
                      8: ;  for any purpose is hereby granted without fee, provided that
                      9: ;  the above copyright notice and this notice appears in all
                     10: ;  copies, and that the name of Hewlett-Packard Company not be
                     11: ;  used in advertising or publicity pertaining to distribution
                     12: ;  of the software without specific, written prior permission.
                     13: ;  Hewlett-Packard Company makes no representations about the
                     14: ;  suitability of this software for any purpose.
                     15: ;
                     16:
                     17:        .text
                     18:        .EXPORT $$remI,millicode
                     19: $$remI:
                     20:        .PROC
                     21:        .CALLINFO NO_CALLS
                     22:        .ENTRY
                     23:        addit,= 0,%arg1,%r0
                     24:        add,>= %r0,%arg0,%ret1
                     25:        sub %r0,%ret1,%ret1
                     26:        sub %r0,%arg1,%r1
                     27:        ds %r0,%r1,%r0
                     28:        or %r0,%r0,%r1
                     29:        add %ret1,%ret1,%ret1
                     30:        ds %r1,%arg1,%r1
                     31:        addc %ret1,%ret1,%ret1
                     32:        ds %r1,%arg1,%r1
                     33:        addc %ret1,%ret1,%ret1
                     34:        ds %r1,%arg1,%r1
                     35:        addc %ret1,%ret1,%ret1
                     36:        ds %r1,%arg1,%r1
                     37:        addc %ret1,%ret1,%ret1
                     38:        ds %r1,%arg1,%r1
                     39:        addc %ret1,%ret1,%ret1
                     40:        ds %r1,%arg1,%r1
                     41:        addc %ret1,%ret1,%ret1
                     42:        ds %r1,%arg1,%r1
                     43:        addc %ret1,%ret1,%ret1
                     44:        ds %r1,%arg1,%r1
                     45:        addc %ret1,%ret1,%ret1
                     46:        ds %r1,%arg1,%r1
                     47:        addc %ret1,%ret1,%ret1
                     48:        ds %r1,%arg1,%r1
                     49:        addc %ret1,%ret1,%ret1
                     50:        ds %r1,%arg1,%r1
                     51:        addc %ret1,%ret1,%ret1
                     52:        ds %r1,%arg1,%r1
                     53:        addc %ret1,%ret1,%ret1
                     54:        ds %r1,%arg1,%r1
                     55:        addc %ret1,%ret1,%ret1
                     56:        ds %r1,%arg1,%r1
                     57:        addc %ret1,%ret1,%ret1
                     58:        ds %r1,%arg1,%r1
                     59:        addc %ret1,%ret1,%ret1
                     60:        ds %r1,%arg1,%r1
                     61:        addc %ret1,%ret1,%ret1
                     62:        ds %r1,%arg1,%r1
                     63:        addc %ret1,%ret1,%ret1
                     64:        ds %r1,%arg1,%r1
                     65:        addc %ret1,%ret1,%ret1
                     66:        ds %r1,%arg1,%r1
                     67:        addc %ret1,%ret1,%ret1
                     68:        ds %r1,%arg1,%r1
                     69:        addc %ret1,%ret1,%ret1
                     70:        ds %r1,%arg1,%r1
                     71:        addc %ret1,%ret1,%ret1
                     72:        ds %r1,%arg1,%r1
                     73:        addc %ret1,%ret1,%ret1
                     74:        ds %r1,%arg1,%r1
                     75:        addc %ret1,%ret1,%ret1
                     76:        ds %r1,%arg1,%r1
                     77:        addc %ret1,%ret1,%ret1
                     78:        ds %r1,%arg1,%r1
                     79:        addc %ret1,%ret1,%ret1
                     80:        ds %r1,%arg1,%r1
                     81:        addc %ret1,%ret1,%ret1
                     82:        ds %r1,%arg1,%r1
                     83:        addc %ret1,%ret1,%ret1
                     84:        ds %r1,%arg1,%r1
                     85:        addc %ret1,%ret1,%ret1
                     86:        ds %r1,%arg1,%r1
                     87:        addc %ret1,%ret1,%ret1
                     88:        ds %r1,%arg1,%r1
                     89:        addc %ret1,%ret1,%ret1
                     90:        ds %r1,%arg1,%r1
                     91:        addc %ret1,%ret1,%ret1
                     92:        ds %r1,%arg1,%r1
                     93:        addc %ret1,%ret1,%ret1
                     94:        movb,>=,n %r1,%ret1,remI300
                     95:        add,< %arg1,%r0,%r0
                     96:        add,tr %r1,%arg1,%ret1
                     97:        sub %r1,%arg1,%ret1
                     98: remI300: add,>= %arg0,%r0,%r0
                     99:
                    100:        bv %r0(%rp)
                    101:        sub %r0,%ret1,%ret1
                    102:        .EXIT
                    103:        .PROCEND
                    104:
                    105:        .export $$divU,millicode
                    106:        .import $$divU_3,millicode
                    107:        .import $$divU_5,millicode
                    108:        .import $$divU_6,millicode
                    109:        .import $$divU_7,millicode
                    110:        .import $$divU_9,millicode
                    111:        .import $$divU_10,millicode
                    112:        .import $$divU_12,millicode
                    113:        .import $$divU_14,millicode
                    114:        .import $$divU_15,millicode
                    115: $$divU:
                    116:        .proc
                    117:        .callinfo NO_CALLS
                    118: ; The subtract is not nullified since it does no harm and can be used
                    119: ; by the two cases that branch back to "normal".
                    120:        comib,>=  15,%arg1,special_divisor
                    121:        sub     %r0,%arg1,%r1           ; clear carry, negate the divisor
                    122:        ds      %r0,%r1,%r0             ; set V-bit to 1
                    123: normal:
                    124:        add     %arg0,%arg0,%ret1       ; shift msb bit into carry
                    125:        ds      %r0,%arg1,%r1           ; 1st divide step, if no carry
                    126:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    127:        ds      %r1,%arg1,%r1           ; 2nd divide step
                    128:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    129:        ds      %r1,%arg1,%r1           ; 3rd divide step
                    130:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    131:        ds      %r1,%arg1,%r1           ; 4th divide step
                    132:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    133:        ds      %r1,%arg1,%r1           ; 5th divide step
                    134:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    135:        ds      %r1,%arg1,%r1           ; 6th divide step
                    136:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    137:        ds      %r1,%arg1,%r1           ; 7th divide step
                    138:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    139:        ds      %r1,%arg1,%r1           ; 8th divide step
                    140:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    141:        ds      %r1,%arg1,%r1           ; 9th divide step
                    142:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    143:        ds      %r1,%arg1,%r1           ; 10th divide step
                    144:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    145:        ds      %r1,%arg1,%r1           ; 11th divide step
                    146:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    147:        ds      %r1,%arg1,%r1           ; 12th divide step
                    148:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    149:        ds      %r1,%arg1,%r1           ; 13th divide step
                    150:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    151:        ds      %r1,%arg1,%r1           ; 14th divide step
                    152:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    153:        ds      %r1,%arg1,%r1           ; 15th divide step
                    154:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    155:        ds      %r1,%arg1,%r1           ; 16th divide step
                    156:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    157:        ds      %r1,%arg1,%r1           ; 17th divide step
                    158:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    159:        ds      %r1,%arg1,%r1           ; 18th divide step
                    160:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    161:        ds      %r1,%arg1,%r1           ; 19th divide step
                    162:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    163:        ds      %r1,%arg1,%r1           ; 20th divide step
                    164:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    165:        ds      %r1,%arg1,%r1           ; 21st divide step
                    166:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    167:        ds      %r1,%arg1,%r1           ; 22nd divide step
                    168:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    169:        ds      %r1,%arg1,%r1           ; 23rd divide step
                    170:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    171:        ds      %r1,%arg1,%r1           ; 24th divide step
                    172:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    173:        ds      %r1,%arg1,%r1           ; 25th divide step
                    174:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    175:        ds      %r1,%arg1,%r1           ; 26th divide step
                    176:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    177:        ds      %r1,%arg1,%r1           ; 27th divide step
                    178:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    179:        ds      %r1,%arg1,%r1           ; 28th divide step
                    180:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    181:        ds      %r1,%arg1,%r1           ; 29th divide step
                    182:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    183:        ds      %r1,%arg1,%r1           ; 30th divide step
                    184:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    185:        ds      %r1,%arg1,%r1           ; 31st divide step
                    186:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                    187:        ds      %r1,%arg1,%r1           ; 32nd divide step,
                    188:        bv      0(%rp)
                    189:        addc    %ret1,%ret1,%ret1       ; shift last %ret1 bit into %ret1
                    190: ;_____________________________________________________________________________
                    191: ; handle the cases where divisor is a small constant or has high bit on
                    192: special_divisor:
                    193:        depd    %r0,31,32,%arg1
                    194:
                    195:        comib,>,n  0,%arg1,big_divisor  ; nullify previous instruction
                    196:        nop
                    197:        blr     %arg1,%r0
                    198:        nop
                    199: zero_divisor: ; this label is here to provide external visibility
                    200:
                    201:        addit,= 0,%arg1,0               ; trap for zero dvr
                    202:        nop
                    203:        bv      0(%rp)                  ; divisor == 1
                    204:        copy    %arg0,%ret1
                    205:        bv      0(%rp)                  ; divisor == 2
                    206:        extru   %arg0,30,31,%ret1
                    207:         b,n    $$divU_3                ; divisor == 3
                    208:        nop
                    209:        bv      0(%rp)                  ; divisor == 4
                    210:        extru   %arg0,29,30,%ret1
                    211:         b,n    $$divU_5                ; divisor == 5
                    212:        nop
                    213:         b,n    $$divU_6                ; divisor == 6
                    214:        nop
                    215:         b,n    $$divU_7                ; divisor == 7
                    216:        nop
                    217:        bv      0(%rp)                  ; divisor == 8
                    218:        extru   %arg0,28,29,%ret1
                    219:         b,n    $$divU_9                ; divisor == 9
                    220:        nop
                    221:         b,n    $$divU_10               ; divisor == 10
                    222:        nop
                    223:        b       normal                  ; divisor == 11
                    224:        ds      %r0,%r1,%r0             ; set V-bit to 1
                    225:         b,n    $$divU_12               ; divisor == 12
                    226:        nop
                    227:        b       normal                  ; divisor == 13
                    228:        ds      %r0,%r1,%r0             ; set V-bit to 1
                    229:         b,n    $$divU_14               ; divisor == 14
                    230:        nop
                    231:         b,n    $$divU_15               ; divisor == 15
                    232:        nop
                    233: ;_____________________________________________________________________________
                    234: ; Handle the case where the high bit is on in the divisor.
                    235: ; Compute:     if( dividend>=divisor) quotient=1; else quotient=0;
                    236: ; Note:                dividend>==divisor iff dividend-divisor does not borrow
                    237: ; and          not borrow iff carry
                    238: big_divisor:
                    239:        sub     %arg0,%arg1,%r0
                    240:        bv      0(%rp)
                    241:        addc    %r0,%r0,%ret1
                    242:        .procend
                    243:        .end
                    244:
                    245: ;_____________________________________________________________________________
                    246:
                    247: $$divide_by_constant:
                    248:        .PROC
                    249:        .CALLINFO NO_CALLS
                    250:        .export $$divide_by_constant,millicode
                    251: ; Provides a "nice" label for the code covered by the unwind descriptor
                    252: ; for things like gprof.
                    253:
                    254: $$divI_2:
                    255:        .EXPORT $$divI_2,MILLICODE
                    256:        COMCLR,>=       %arg0,0,0
                    257:        ADDI            1,%arg0,%arg0
                    258:        bv              0(%rp)
                    259:        EXTRS           %arg0,30,31,%ret1
                    260:
                    261: $$divI_4:
                    262:        .EXPORT         $$divI_4,MILLICODE
                    263:        COMCLR,>=       %arg0,0,0
                    264:        ADDI            3,%arg0,%arg0
                    265:        bv              0(%rp)
                    266:        EXTRS           %arg0,29,30,%ret1
                    267:
                    268: $$divI_8:
                    269:        .EXPORT         $$divI_8,MILLICODE
                    270:        COMCLR,>=       %arg0,0,0
                    271:        ADDI            7,%arg0,%arg0
                    272:        bv              0(%rp)
                    273:        EXTRS           %arg0,28,29,%ret1
                    274:
                    275: $$divI_16:
                    276:        .EXPORT         $$divI_16,MILLICODE
                    277:        COMCLR,>=       %arg0,0,0
                    278:        ADDI            15,%arg0,%arg0
                    279:        bv              0(%rp)
                    280:        EXTRS           %arg0,27,28,%ret1
                    281:
                    282: $$divI_3:
                    283:        .EXPORT         $$divI_3,MILLICODE
                    284:        COMB,<,N        %arg0,0,$neg3
                    285:
                    286:        ADDI            1,%arg0,%arg0
                    287:        EXTRU           %arg0,1,2,%ret1
                    288:        SH2ADD          %arg0,%arg0,%arg0
                    289:        B               $pos
                    290:        ADDC            %ret1,0,%ret1
                    291:
                    292: $neg3:
                    293:        SUBI            1,%arg0,%arg0
                    294:        EXTRU           %arg0,1,2,%ret1
                    295:        SH2ADD          %arg0,%arg0,%arg0
                    296:        B               $neg
                    297:        ADDC            %ret1,0,%ret1
                    298:
                    299: $$divU_3:
                    300:        .EXPORT         $$divU_3,MILLICODE
                    301:        ADDI            1,%arg0,%arg0
                    302:        ADDC            0,0,%ret1
                    303:        SHD             %ret1,%arg0,30,%arg1
                    304:        SH2ADD          %arg0,%arg0,%arg0
                    305:        B               $pos
                    306:        ADDC            %ret1,%arg1,%ret1
                    307:
                    308: $$divI_5:
                    309:        .EXPORT         $$divI_5,MILLICODE
                    310:        COMB,<,N        %arg0,0,$neg5
                    311:        ADDI            3,%arg0,%arg1
                    312:        SH1ADD          %arg0,%arg1,%arg0
                    313:        B               $pos
                    314:        ADDC            0,0,%ret1
                    315:
                    316: $neg5:
                    317:        SUB             0,%arg0,%arg0
                    318:        ADDI            1,%arg0,%arg0
                    319:        SHD             0,%arg0,31,%ret1
                    320:        SH1ADD          %arg0,%arg0,%arg0
                    321:        B               $neg
                    322:        ADDC            %ret1,0,%ret1
                    323:
                    324: $$divU_5:
                    325:        .EXPORT         $$divU_5,MILLICODE
                    326:        ADDI            1,%arg0,%arg0
                    327:        ADDC            0,0,%ret1
                    328:        SHD             %ret1,%arg0,31,%arg1
                    329:        SH1ADD          %arg0,%arg0,%arg0
                    330:        B               $pos
                    331:        ADDC            %arg1,%ret1,%ret1
                    332:
                    333: $$divI_6:
                    334:        .EXPORT         $$divI_6,MILLICODE
                    335:        COMB,<,N        %arg0,0,$neg6
                    336:        EXTRU           %arg0,30,31,%arg0
                    337:        ADDI            5,%arg0,%arg1
                    338:        SH2ADD          %arg0,%arg1,%arg0
                    339:        B               $pos
                    340:        ADDC            0,0,%ret1
                    341:
                    342: $neg6:
                    343:        SUBI            2,%arg0,%arg0
                    344:        EXTRU           %arg0,30,31,%arg0
                    345:        SHD             0,%arg0,30,%ret1
                    346:        SH2ADD          %arg0,%arg0,%arg0
                    347:        B               $neg
                    348:        ADDC            %ret1,0,%ret1
                    349:
                    350: $$divU_6:
                    351:        .EXPORT         $$divU_6,MILLICODE
                    352:        EXTRU           %arg0,30,31,%arg0
                    353:        ADDI            1,%arg0,%arg0
                    354:        SHD             0,%arg0,30,%ret1
                    355:        SH2ADD          %arg0,%arg0,%arg0
                    356:        B               $pos
                    357:        ADDC            %ret1,0,%ret1
                    358:
                    359: $$divU_10:
                    360:        .EXPORT         $$divU_10,MILLICODE
                    361:        EXTRU           %arg0,30,31,%arg0
                    362:        ADDI            3,%arg0,%arg1
                    363:        SH1ADD          %arg0,%arg1,%arg0
                    364:        ADDC            0,0,%ret1
                    365: $pos:
                    366:        SHD             %ret1,%arg0,28,%arg1
                    367:        SHD             %arg0,0,28,%r1
                    368:        ADD             %arg0,%r1,%arg0
                    369:        ADDC            %ret1,%arg1,%ret1
                    370: $pos_for_17:
                    371:        SHD             %ret1,%arg0,24,%arg1
                    372:        SHD             %arg0,0,24,%r1
                    373:        ADD             %arg0,%r1,%arg0
                    374:        ADDC            %ret1,%arg1,%ret1
                    375:
                    376:        SHD             %ret1,%arg0,16,%arg1
                    377:        SHD             %arg0,0,16,%r1
                    378:        ADD             %arg0,%r1,%arg0
                    379:        bv              0(%rp)
                    380:        ADDC            %ret1,%arg1,%ret1
                    381:
                    382: $$divI_10:
                    383:        .EXPORT         $$divI_10,MILLICODE
                    384:        COMB,<          %arg0,0,$neg10
                    385:        COPY            0,%ret1
                    386:        EXTRU           %arg0,30,31,%arg0
                    387:        ADDIB,TR        1,%arg0,$pos
                    388:        SH1ADD          %arg0,%arg0,%arg0
                    389:
                    390: $neg10:
                    391:        SUBI            2,%arg0,%arg0
                    392:        EXTRU           %arg0,30,31,%arg0
                    393:        SH1ADD          %arg0,%arg0,%arg0
                    394: $neg:
                    395:        SHD             %ret1,%arg0,28,%arg1
                    396:        SHD             %arg0,0,28,%r1
                    397:        ADD             %arg0,%r1,%arg0
                    398:        ADDC            %ret1,%arg1,%ret1
                    399: $neg_for_17:
                    400:        SHD             %ret1,%arg0,24,%arg1
                    401:        SHD             %arg0,0,24,%r1
                    402:        ADD             %arg0,%r1,%arg0
                    403:        ADDC            %ret1,%arg1,%ret1
                    404:
                    405:        SHD             %ret1,%arg0,16,%arg1
                    406:        SHD             %arg0,0,16,%r1
                    407:        ADD             %arg0,%r1,%arg0
                    408:        ADDC            %ret1,%arg1,%ret1
                    409:        bv              0(%rp)
                    410:        SUB             0,%ret1,%ret1
                    411:
                    412: $$divI_12:
                    413:        .EXPORT         $$divI_12,MILLICODE
                    414:        COMB,<          %arg0,0,$neg12
                    415:        COPY            0,%ret1
                    416:        EXTRU           %arg0,29,30,%arg0
                    417:        ADDIB,TR        1,%arg0,$pos
                    418:        SH2ADD          %arg0,%arg0,%arg0
                    419:
                    420: $neg12:
                    421:        SUBI            4,%arg0,%arg0
                    422:        EXTRU           %arg0,29,30,%arg0
                    423:        B               $neg
                    424:        SH2ADD          %arg0,%arg0,%arg0
                    425:
                    426: $$divU_12:
                    427:        .EXPORT         $$divU_12,MILLICODE
                    428:        EXTRU           %arg0,29,30,%arg0
                    429:        ADDI            5,%arg0,%arg1
                    430:        SH2ADD          %arg0,%arg1,%arg0
                    431:        B               $pos
                    432:        ADDC            0,0,%ret1
                    433:
                    434: $$divI_15:
                    435:        .EXPORT         $$divI_15,MILLICODE
                    436:        COMB,<          %arg0,0,$neg15
                    437:        COPY            0,%ret1
                    438:        ADDIB,TR        1,%arg0,$pos+4
                    439:        SHD             %ret1,%arg0,28,%arg1
                    440:
                    441: $neg15:
                    442:        B               $neg
                    443:        SUBI            1,%arg0,%arg0
                    444:
                    445: $$divU_15:
                    446:        .EXPORT         $$divU_15,MILLICODE
                    447:        ADDI            1,%arg0,%arg0
                    448:        B               $pos
                    449:        ADDC            0,0,%ret1
                    450:
                    451: $$divI_17:
                    452:        .EXPORT         $$divI_17,MILLICODE
                    453:        COMB,<,N        %arg0,0,$neg17
                    454:        ADDI            1,%arg0,%arg0
                    455:        SHD             0,%arg0,28,%arg1
                    456:        SHD             %arg0,0,28,%r1
                    457:        SUB             %r1,%arg0,%arg0
                    458:        B               $pos_for_17
                    459:        SUBB            %arg1,0,%ret1
                    460:
                    461: $neg17:
                    462:        SUBI            1,%arg0,%arg0
                    463:        SHD             0,%arg0,28,%arg1
                    464:        SHD             %arg0,0,28,%r1
                    465:        SUB             %r1,%arg0,%arg0
                    466:        B               $neg_for_17
                    467:        SUBB            %arg1,0,%ret1
                    468:
                    469: $$divU_17:
                    470:        .EXPORT         $$divU_17,MILLICODE
                    471:        ADDI            1,%arg0,%arg0
                    472:        ADDC            0,0,%ret1
                    473:        SHD             %ret1,%arg0,28,%arg1
                    474: $u17:
                    475:        SHD             %arg0,0,28,%r1
                    476:        SUB             %r1,%arg0,%arg0
                    477:        B               $pos_for_17
                    478:        SUBB            %arg1,%ret1,%ret1
                    479:
                    480: $$divI_7:
                    481:        .EXPORT         $$divI_7,MILLICODE
                    482:        COMB,<,N        %arg0,0,$neg7
                    483: $7:
                    484:        ADDI            1,%arg0,%arg0
                    485:        SHD             0,%arg0,29,%ret1
                    486:        SH3ADD          %arg0,%arg0,%arg0
                    487:        ADDC            %ret1,0,%ret1
                    488: $pos7:
                    489:        SHD             %ret1,%arg0,26,%arg1
                    490:        SHD             %arg0,0,26,%r1
                    491:        ADD             %arg0,%r1,%arg0
                    492:        ADDC            %ret1,%arg1,%ret1
                    493:
                    494:        SHD             %ret1,%arg0,20,%arg1
                    495:        SHD             %arg0,0,20,%r1
                    496:        ADD             %arg0,%r1,%arg0
                    497:        ADDC            %ret1,%arg1,%arg1
                    498:
                    499:        COPY            0,%ret1
                    500:        SHD,=           %arg1,%arg0,24,%arg1
                    501: $1:
                    502:        ADDB,TR         %arg1,%ret1,$2
                    503:        EXTRU           %arg0,31,24,%arg0
                    504:
                    505:        bv,n  0(%rp)
                    506:
                    507: $2:
                    508:        ADDB,TR         %arg1,%arg0,$1
                    509:        EXTRU,=         %arg0,7,8,%arg1
                    510:
                    511: $neg7:
                    512:        SUBI            1,%arg0,%arg0
                    513: $8:
                    514:        SHD             0,%arg0,29,%ret1
                    515:        SH3ADD          %arg0,%arg0,%arg0
                    516:        ADDC            %ret1,0,%ret1
                    517:
                    518: $neg7_shift:
                    519:        SHD             %ret1,%arg0,26,%arg1
                    520:        SHD             %arg0,0,26,%r1
                    521:        ADD             %arg0,%r1,%arg0
                    522:        ADDC            %ret1,%arg1,%ret1
                    523:
                    524:        SHD             %ret1,%arg0,20,%arg1
                    525:        SHD             %arg0,0,20,%r1
                    526:        ADD             %arg0,%r1,%arg0
                    527:        ADDC            %ret1,%arg1,%arg1
                    528:
                    529:        COPY            0,%ret1
                    530:        SHD,=           %arg1,%arg0,24,%arg1
                    531: $3:
                    532:        ADDB,TR         %arg1,%ret1,$4
                    533:        EXTRU           %arg0,31,24,%arg0
                    534:
                    535:        bv              0(%rp)
                    536:        SUB             0,%ret1,%ret1
                    537:
                    538: $4:
                    539:        ADDB,TR         %arg1,%arg0,$3
                    540:        EXTRU,=         %arg0,7,8,%arg1
                    541:
                    542: $$divU_7:
                    543:        .EXPORT         $$divU_7,MILLICODE
                    544:        ADDI            1,%arg0,%arg0
                    545:        ADDC            0,0,%ret1
                    546:        SHD             %ret1,%arg0,29,%arg1
                    547:        SH3ADD          %arg0,%arg0,%arg0
                    548:        B               $pos7
                    549:        ADDC            %arg1,%ret1,%ret1
                    550:
                    551: $$divI_9:
                    552:        .EXPORT         $$divI_9,MILLICODE
                    553:        COMB,<,N        %arg0,0,$neg9
                    554:        ADDI            1,%arg0,%arg0
                    555:        SHD             0,%arg0,29,%arg1
                    556:        SHD             %arg0,0,29,%r1
                    557:        SUB             %r1,%arg0,%arg0
                    558:        B               $pos7
                    559:        SUBB            %arg1,0,%ret1
                    560:
                    561: $neg9:
                    562:        SUBI            1,%arg0,%arg0
                    563:        SHD             0,%arg0,29,%arg1
                    564:        SHD             %arg0,0,29,%r1
                    565:        SUB             %r1,%arg0,%arg0
                    566:        B               $neg7_shift
                    567:        SUBB            %arg1,0,%ret1
                    568:
                    569: $$divU_9:
                    570:        .EXPORT         $$divU_9,MILLICODE
                    571:        ADDI            1,%arg0,%arg0
                    572:        ADDC            0,0,%ret1
                    573:        SHD             %ret1,%arg0,29,%arg1
                    574:        SHD             %arg0,0,29,%r1
                    575:        SUB             %r1,%arg0,%arg0
                    576:        B               $pos7
                    577:        SUBB            %arg1,%ret1,%ret1
                    578:
                    579: $$divI_14:
                    580:        .EXPORT         $$divI_14,MILLICODE
                    581:        COMB,<,N        %arg0,0,$neg14
                    582: $$divU_14:
                    583:        .EXPORT         $$divU_14,MILLICODE
                    584:        B               $7
                    585:        EXTRU           %arg0,30,31,%arg0
                    586:
                    587: $neg14:
                    588:        SUBI            2,%arg0,%arg0
                    589:        B               $8
                    590:        EXTRU           %arg0,30,31,%arg0
                    591:
                    592:        .PROCEND
                    593:        .END
                    594:
                    595:        .export $$remU,millicode
                    596: $$remU:
                    597:        .proc
                    598:        .callinfo NO_CALLS
                    599:        .entry
                    600:
                    601:        comib,>=,n  0,%arg1,special_case
                    602:        sub     %r0,%arg1,%ret1         ; clear carry, negate the divisor
                    603:        ds      %r0,%ret1,%r0           ; set V-bit to 1
                    604:        add     %arg0,%arg0,%r1         ; shift msb bit into carry
                    605:        ds      %r0,%arg1,%ret1         ; 1st divide step, if no carry
                    606:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    607:        ds      %ret1,%arg1,%ret1               ; 2nd divide step
                    608:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    609:        ds      %ret1,%arg1,%ret1               ; 3rd divide step
                    610:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    611:        ds      %ret1,%arg1,%ret1               ; 4th divide step
                    612:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    613:        ds      %ret1,%arg1,%ret1               ; 5th divide step
                    614:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    615:        ds      %ret1,%arg1,%ret1               ; 6th divide step
                    616:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    617:        ds      %ret1,%arg1,%ret1               ; 7th divide step
                    618:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    619:        ds      %ret1,%arg1,%ret1               ; 8th divide step
                    620:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    621:        ds      %ret1,%arg1,%ret1               ; 9th divide step
                    622:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    623:        ds      %ret1,%arg1,%ret1               ; 10th divide step
                    624:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    625:        ds      %ret1,%arg1,%ret1               ; 11th divide step
                    626:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    627:        ds      %ret1,%arg1,%ret1               ; 12th divide step
                    628:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    629:        ds      %ret1,%arg1,%ret1               ; 13th divide step
                    630:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    631:        ds      %ret1,%arg1,%ret1               ; 14th divide step
                    632:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    633:        ds      %ret1,%arg1,%ret1               ; 15th divide step
                    634:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    635:        ds      %ret1,%arg1,%ret1               ; 16th divide step
                    636:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    637:        ds      %ret1,%arg1,%ret1               ; 17th divide step
                    638:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    639:        ds      %ret1,%arg1,%ret1               ; 18th divide step
                    640:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    641:        ds      %ret1,%arg1,%ret1               ; 19th divide step
                    642:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    643:        ds      %ret1,%arg1,%ret1               ; 20th divide step
                    644:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    645:        ds      %ret1,%arg1,%ret1               ; 21st divide step
                    646:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    647:        ds      %ret1,%arg1,%ret1               ; 22nd divide step
                    648:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    649:        ds      %ret1,%arg1,%ret1               ; 23rd divide step
                    650:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    651:        ds      %ret1,%arg1,%ret1               ; 24th divide step
                    652:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    653:        ds      %ret1,%arg1,%ret1               ; 25th divide step
                    654:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    655:        ds      %ret1,%arg1,%ret1               ; 26th divide step
                    656:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    657:        ds      %ret1,%arg1,%ret1               ; 27th divide step
                    658:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    659:        ds      %ret1,%arg1,%ret1               ; 28th divide step
                    660:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    661:        ds      %ret1,%arg1,%ret1               ; 29th divide step
                    662:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    663:        ds      %ret1,%arg1,%ret1               ; 30th divide step
                    664:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    665:        ds      %ret1,%arg1,%ret1               ; 31st divide step
                    666:        addc    %r1,%r1,%r1             ; shift %r1 with/into carry
                    667:        ds      %ret1,%arg1,%ret1               ; 32nd divide step,
                    668:        comiclr,<= 0,%ret1,%r0
                    669:          add   %ret1,%arg1,%ret1       ; correction
                    670: ;      .exit
                    671:        bv,n  0(%rp)
                    672:        nop
                    673: ; Putting >= on the last DS and deleting COMICLR does not work!
                    674: ;_____________________________________________________________________________
                    675: special_case:
                    676:        addit,= 0,%arg1,%r0             ; trap on div by zero
                    677:        sub,>>= %arg0,%arg1,%ret1
                    678:          copy  %arg0,%ret1
                    679:        .exit
                    680:        bv,n  0(%rp)
                    681:        nop
                    682:        .procend
                    683:        .end
                    684:
                    685:        .align 16
                    686: $$mulI:
                    687:
                    688:        .proc
                    689:        .callinfo NO_CALLS
                    690:        .export $$mulI, millicode
                    691:        combt,<<=       %arg1,%arg0,l4  ; swap args if unsigned %arg1>%arg0
                    692:        copy            0,%ret1         ; zero out the result
                    693:        xor             %arg0,%arg1,%arg0       ; swap %arg0 & %arg1 using the
                    694:        xor             %arg0,%arg1,%arg1       ;  old xor trick
                    695:        xor             %arg0,%arg1,%arg0
                    696: l4: combt,<=   0,%arg0,l3              ; if %arg0>=0 then proceed like unsigned
                    697:
                    698:        zdep            %arg1,30,8,%r1  ; %r1 = (%arg1&0xff)<<1 *********
                    699:        sub,>           0,%arg1,%r1             ; otherwise negate both and
                    700:        combt,<=,n      %arg0,%r1,l2    ;  swap back if |%arg0|<|%arg1|
                    701:        sub             0,%arg0,%arg1
                    702:        movb,tr,n       %r1,%arg0,l2    ; 10th inst.
                    703:
                    704: l0:    add     %ret1,%r1,%ret1                         ; add in this partial product
                    705:
                    706: l1: zdep       %arg0,23,24,%arg0                       ; %arg0 <<= 8 ******************
                    707:
                    708: l2: zdep               %arg1,30,8,%r1  ; %r1 = (%arg1&0xff)<<1 *********
                    709:
                    710: l3: blr                %r1,0           ; case on these 8 bits ******
                    711:
                    712:        extru           %arg1,23,24,%arg1       ; %arg1 >>= 8 ******************
                    713:
                    714: ;16 insts before this.
                    715: ;                        %arg0 <<= 8 **************************
                    716: x0: comb,<>    %arg1,0,l2      ! zdep  %arg0,23,24,%arg0       ! bv,n  0(%rp)  ! nop
                    717:
                    718: x1: comb,<>    %arg1,0,l1      !       add     %ret1,%arg0,%ret1       ! bv,n  0(%rp)  ! nop
                    719:
                    720: x2: comb,<>    %arg1,0,l1      ! sh1add        %arg0,%ret1,%ret1       ! bv,n  0(%rp)  ! nop
                    721:
                    722: x3: comb,<>    %arg1,0,l0      !       sh1add  %arg0,%arg0,%r1 ! bv    0(%rp)  !       add     %ret1,%r1,%ret1
                    723:
                    724: x4: comb,<>    %arg1,0,l1      ! sh2add        %arg0,%ret1,%ret1       ! bv,n  0(%rp)  ! nop
                    725:
                    726: x5: comb,<>    %arg1,0,l0      !       sh2add  %arg0,%arg0,%r1 ! bv    0(%rp)  !       add     %ret1,%r1,%ret1
                    727:
                    728: x6:    sh1add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l1      ! sh1add        %r1,%ret1,%ret1 ! bv,n  0(%rp)
                    729:
                    730: x7:    sh1add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l0      ! sh2add        %arg0,%ret1,%ret1       ! b,n   ret_t0
                    731:
                    732: x8: comb,<>    %arg1,0,l1      ! sh3add        %arg0,%ret1,%ret1       ! bv,n  0(%rp)  ! nop
                    733:
                    734: x9: comb,<>    %arg1,0,l0      !       sh3add  %arg0,%arg0,%r1 ! bv    0(%rp)  !       add     %ret1,%r1,%ret1
                    735:
                    736: x10:   sh2add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l1      ! sh1add        %r1,%ret1,%ret1 ! bv,n  0(%rp)
                    737:
                    738: x11:   sh1add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l0      ! sh3add        %arg0,%ret1,%ret1       ! b,n   ret_t0
                    739:
                    740: x12:   sh1add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l1      ! sh2add        %r1,%ret1,%ret1 ! bv,n  0(%rp)
                    741:
                    742: x13:   sh2add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l0      ! sh3add        %arg0,%ret1,%ret1       ! b,n   ret_t0
                    743:
                    744: x14:   sh1add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    745:
                    746: x15:   sh2add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l0      !       sh1add  %r1,%r1,%r1     ! b,n   ret_t0
                    747:
                    748: x16: zdep      %arg0,27,28,%r1 ! comb,<>       %arg1,0,l1      !       add     %ret1,%r1,%ret1 ! bv,n  0(%rp)
                    749:
                    750: x17:   sh3add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l0      ! sh3add        %arg0,%r1,%r1   ! b,n   ret_t0
                    751:
                    752: x18:   sh3add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l1      ! sh1add        %r1,%ret1,%ret1 ! bv,n  0(%rp)
                    753:
                    754: x19:   sh3add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l0      ! sh1add        %r1,%arg0,%r1   ! b,n   ret_t0
                    755:
                    756: x20:   sh2add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l1      ! sh2add        %r1,%ret1,%ret1 ! bv,n  0(%rp)
                    757:
                    758: x21:   sh2add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l0      ! sh2add        %r1,%arg0,%r1   ! b,n   ret_t0
                    759:
                    760: x22:   sh2add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    761:
                    762: x23:   sh2add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_t0    ! sh1add        %r1,%arg0,%r1
                    763:
                    764: x24:   sh1add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l1      ! sh3add        %r1,%ret1,%ret1 ! bv,n  0(%rp)
                    765:
                    766: x25:   sh2add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l0      !       sh2add  %r1,%r1,%r1     ! b,n   ret_t0
                    767:
                    768: x26:   sh1add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    769:
                    770: x27:   sh1add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l0      !       sh3add  %r1,%r1,%r1     ! b,n   ret_t0
                    771:
                    772: x28:   sh1add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                    773:
                    774: x29:   sh1add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_t0    ! sh2add        %r1,%arg0,%r1
                    775:
                    776: x30:   sh2add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    777:
                    778: x31: zdep      %arg0,26,27,%r1 ! comb,<>       %arg1,0,l0      ! sub   %r1,%arg0,%r1   ! b,n   ret_t0
                    779:
                    780: x32: zdep      %arg0,26,27,%r1 ! comb,<>       %arg1,0,l1      !       add     %ret1,%r1,%ret1 ! bv,n  0(%rp)
                    781:
                    782: x33:   sh3add  %arg0,0,%r1             ! comb,<>       %arg1,0,l0      ! sh2add        %r1,%arg0,%r1   ! b,n   ret_t0
                    783:
                    784: x34: zdep      %arg0,27,28,%r1 ! add   %r1,%arg0,%r1   ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    785:
                    786: x35:   sh3add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     !       b       e_t0    ! sh3add        %arg0,%r1,%r1
                    787:
                    788: x36:   sh3add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l1      ! sh2add        %r1,%ret1,%ret1 ! bv,n  0(%rp)
                    789:
                    790: x37:   sh3add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l0      ! sh2add        %r1,%arg0,%r1   ! b,n   ret_t0
                    791:
                    792: x38:   sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    793:
                    794: x39:   sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_t0    ! sh1add        %r1,%arg0,%r1
                    795:
                    796: x40:   sh2add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l1      ! sh3add        %r1,%ret1,%ret1 ! bv,n  0(%rp)
                    797:
                    798: x41:   sh2add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l0      ! sh3add        %r1,%arg0,%r1   ! b,n   ret_t0
                    799:
                    800: x42:   sh2add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    801:
                    802: x43:   sh2add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_t0    ! sh1add        %r1,%arg0,%r1
                    803:
                    804: x44:   sh2add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                    805:
                    806: x45:   sh3add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l0      !       sh2add  %r1,%r1,%r1     ! b,n   ret_t0
                    807:
                    808: x46:   sh3add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_t0    ! add   %r1,%arg0,%r1
                    809:
                    810: x47:   sh3add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_t0    ! sh1add        %arg0,%r1,%r1
                    811:
                    812: x48:   sh1add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l0      ! zdep  %r1,27,28,%r1   ! b,n   ret_t0
                    813:
                    814: x49:   sh3add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_t0    ! sh2add        %arg0,%r1,%r1
                    815:
                    816: x50:   sh2add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    817:
                    818: x51:   sh3add  %arg0,%arg0,%r1         ! sh3add        %arg0,%r1,%r1   !       b       e_t0    !       sh1add  %r1,%r1,%r1
                    819:
                    820: x52:   sh1add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                    821:
                    822: x53:   sh1add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_t0    ! sh2add        %r1,%arg0,%r1
                    823:
                    824: x54:   sh3add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    825:
                    826: x55:   sh3add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     !       b       e_t0    ! sh1add        %r1,%arg0,%r1
                    827:
                    828: x56:   sh1add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_shift ! sh3add        %r1,%ret1,%ret1
                    829:
                    830: x57:   sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_t0    !       sh1add  %r1,%r1,%r1
                    831:
                    832: x58:   sh1add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_2t0   ! sh2add        %r1,%arg0,%r1
                    833:
                    834: x59:   sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_t02a0 !       sh1add  %r1,%r1,%r1
                    835:
                    836: x60:   sh2add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                    837:
                    838: x61:   sh2add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     !       b       e_t0    ! sh2add        %r1,%arg0,%r1
                    839:
                    840: x62: zdep      %arg0,26,27,%r1 ! sub   %r1,%arg0,%r1   ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    841:
                    842: x63: zdep      %arg0,25,26,%r1 ! comb,<>       %arg1,0,l0      ! sub   %r1,%arg0,%r1   ! b,n   ret_t0
                    843:
                    844: x64: zdep      %arg0,25,26,%r1 ! comb,<>       %arg1,0,l1      !       add     %ret1,%r1,%ret1 ! bv,n  0(%rp)
                    845:
                    846: x65:   sh3add  %arg0,0,%r1             ! comb,<>       %arg1,0,l0      ! sh3add        %r1,%arg0,%r1   ! b,n   ret_t0
                    847:
                    848: x66: zdep      %arg0,26,27,%r1 ! add   %r1,%arg0,%r1   ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    849:
                    850: x67:   sh3add  %arg0,0,%r1             ! sh2add        %r1,%arg0,%r1   !       b       e_t0    ! sh1add        %r1,%arg0,%r1
                    851:
                    852: x68:   sh3add  %arg0,0,%r1             ! sh1add        %r1,%arg0,%r1   ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                    853:
                    854: x69:   sh3add  %arg0,0,%r1             ! sh1add        %r1,%arg0,%r1   !       b       e_t0    ! sh2add        %r1,%arg0,%r1
                    855:
                    856: x70: zdep      %arg0,25,26,%r1 ! sh2add        %arg0,%r1,%r1   !       b       e_t0    ! sh1add        %arg0,%r1,%r1
                    857:
                    858: x71:   sh3add  %arg0,%arg0,%r1         !       sh3add  %r1,0,%r1       !       b       e_t0    ! sub   %r1,%arg0,%r1
                    859:
                    860: x72:   sh3add  %arg0,%arg0,%r1         ! comb,<>       %arg1,0,l1      ! sh3add        %r1,%ret1,%ret1 ! bv,n  0(%rp)
                    861:
                    862: x73:   sh3add  %arg0,%arg0,%r1         ! sh3add        %r1,%arg0,%r1   ! b     e_shift !       add     %ret1,%r1,%ret1
                    863:
                    864: x74:   sh3add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    865:
                    866: x75:   sh3add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_t0    ! sh1add        %r1,%arg0,%r1
                    867:
                    868: x76:   sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                    869:
                    870: x77:   sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_t0    ! sh2add        %r1,%arg0,%r1
                    871:
                    872: x78:   sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_2t0   ! sh1add        %r1,%arg0,%r1
                    873:
                    874: x79: zdep      %arg0,27,28,%r1 !       sh2add  %r1,%r1,%r1     !       b       e_t0    ! sub   %r1,%arg0,%r1
                    875:
                    876: x80: zdep      %arg0,27,28,%r1 !       sh2add  %r1,%r1,%r1     ! b     e_shift !       add     %ret1,%r1,%ret1
                    877:
                    878: x81:   sh3add  %arg0,%arg0,%r1         !       sh3add  %r1,%r1,%r1     ! b     e_shift !       add     %ret1,%r1,%ret1
                    879:
                    880: x82:   sh2add  %arg0,%arg0,%r1         ! sh3add        %r1,%arg0,%r1   ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    881:
                    882: x83:   sh2add  %arg0,%arg0,%r1         ! sh3add        %r1,%arg0,%r1   !       b       e_t0    ! sh1add        %r1,%arg0,%r1
                    883:
                    884: x84:   sh2add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                    885:
                    886: x85:   sh3add  %arg0,0,%r1             ! sh1add        %r1,%arg0,%r1   !       b       e_t0    !       sh2add  %r1,%r1,%r1
                    887:
                    888: x86:   sh2add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_2t0   ! sh1add        %r1,%arg0,%r1
                    889:
                    890: x87:   sh3add  %arg0,%arg0,%r1         !       sh3add  %r1,%r1,%r1     ! b     e_t02a0 ! sh2add        %arg0,%r1,%r1
                    891:
                    892: x88:   sh2add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_shift ! sh3add        %r1,%ret1,%ret1
                    893:
                    894: x89:   sh2add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_t0    ! sh3add        %r1,%arg0,%r1
                    895:
                    896: x90:   sh3add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    897:
                    898: x91:   sh3add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_t0    ! sh1add        %r1,%arg0,%r1
                    899:
                    900: x92:   sh2add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_4t0   ! sh1add        %r1,%arg0,%r1
                    901:
                    902: x93: zdep      %arg0,26,27,%r1 ! sub   %r1,%arg0,%r1   !       b       e_t0    !       sh1add  %r1,%r1,%r1
                    903:
                    904: x94:   sh3add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_2t0   ! sh1add        %arg0,%r1,%r1
                    905:
                    906: x95:   sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_t0    !       sh2add  %r1,%r1,%r1
                    907:
                    908: x96:   sh3add  %arg0,0,%r1             !       sh1add  %r1,%r1,%r1     ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                    909:
                    910: x97:   sh3add  %arg0,0,%r1             !       sh1add  %r1,%r1,%r1     !       b       e_t0    ! sh2add        %r1,%arg0,%r1
                    911:
                    912: x98: zdep      %arg0,26,27,%r1 !       sh1add  %r1,%r1,%r1     !       b       e_t0    ! sh1add        %arg0,%r1,%r1
                    913:
                    914: x99:   sh3add  %arg0,0,%r1             ! sh2add        %r1,%arg0,%r1   !       b       e_t0    !       sh1add  %r1,%r1,%r1
                    915:
                    916: x100:  sh2add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                    917:
                    918: x101:  sh2add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_t0    ! sh2add        %r1,%arg0,%r1
                    919:
                    920: x102: zdep     %arg0,26,27,%r1 ! sh1add        %arg0,%r1,%r1   !       b       e_t0    !       sh1add  %r1,%r1,%r1
                    921:
                    922: x103:  sh2add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     ! b     e_t02a0 ! sh2add        %r1,%arg0,%r1
                    923:
                    924: x104:  sh1add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_shift ! sh3add        %r1,%ret1,%ret1
                    925:
                    926: x105:  sh2add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_t0    !       sh2add  %r1,%r1,%r1
                    927:
                    928: x106:  sh1add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_2t0   ! sh2add        %r1,%arg0,%r1
                    929:
                    930: x107:  sh3add  %arg0,%arg0,%r1         ! sh2add        %arg0,%r1,%r1   ! b     e_t02a0 ! sh3add        %r1,%arg0,%r1
                    931:
                    932: x108:  sh3add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                    933:
                    934: x109:  sh3add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     !       b       e_t0    ! sh2add        %r1,%arg0,%r1
                    935:
                    936: x110:  sh3add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     !       b       e_2t0   ! sh1add        %r1,%arg0,%r1
                    937:
                    938: x111:  sh3add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_t0    !       sh1add  %r1,%r1,%r1
                    939:
                    940: x112:  sh1add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_t0    ! zdep  %r1,27,28,%r1
                    941:
                    942: x113:  sh3add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_t02a0 !       sh1add  %r1,%r1,%r1
                    943:
                    944: x114:  sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_2t0   !       sh1add  %r1,%r1,%r1
                    945:
                    946: x115:  sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_2t0a0 !       sh1add  %r1,%r1,%r1
                    947:
                    948: x116:  sh1add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_4t0   ! sh2add        %r1,%arg0,%r1
                    949:
                    950: x117:  sh1add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_t0    !       sh3add  %r1,%r1,%r1
                    951:
                    952: x118:  sh1add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_t0a0  !       sh3add  %r1,%r1,%r1
                    953:
                    954: x119:  sh1add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_t02a0 !       sh3add  %r1,%r1,%r1
                    955:
                    956: x120:  sh2add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     ! b     e_shift ! sh3add        %r1,%ret1,%ret1
                    957:
                    958: x121:  sh2add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     !       b       e_t0    ! sh3add        %r1,%arg0,%r1
                    959:
                    960: x122:  sh2add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     !       b       e_2t0   ! sh2add        %r1,%arg0,%r1
                    961:
                    962: x123:  sh2add  %arg0,%arg0,%r1         ! sh3add        %r1,%arg0,%r1   !       b       e_t0    !       sh1add  %r1,%r1,%r1
                    963:
                    964: x124: zdep     %arg0,26,27,%r1 ! sub   %r1,%arg0,%r1   ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                    965:
                    966: x125:  sh2add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_t0    !       sh2add  %r1,%r1,%r1
                    967:
                    968: x126: zdep     %arg0,25,26,%r1 ! sub   %r1,%arg0,%r1   ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    969:
                    970: x127: zdep     %arg0,24,25,%r1 ! comb,<>       %arg1,0,l0      ! sub   %r1,%arg0,%r1   ! b,n   ret_t0
                    971:
                    972: x128: zdep     %arg0,24,25,%r1 ! comb,<>       %arg1,0,l1      !       add     %ret1,%r1,%ret1 ! bv,n  0(%rp)
                    973:
                    974: x129: zdep     %arg0,24,25,%r1 ! comb,<>       %arg1,0,l0      ! add   %r1,%arg0,%r1   ! b,n   ret_t0
                    975:
                    976: x130: zdep     %arg0,25,26,%r1 ! add   %r1,%arg0,%r1   ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                    977:
                    978: x131:  sh3add  %arg0,0,%r1             ! sh3add        %r1,%arg0,%r1   !       b       e_t0    ! sh1add        %r1,%arg0,%r1
                    979:
                    980: x132:  sh3add  %arg0,0,%r1             ! sh2add        %r1,%arg0,%r1   ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                    981:
                    982: x133:  sh3add  %arg0,0,%r1             ! sh2add        %r1,%arg0,%r1   !       b       e_t0    ! sh2add        %r1,%arg0,%r1
                    983:
                    984: x134:  sh3add  %arg0,0,%r1             ! sh2add        %r1,%arg0,%r1   !       b       e_2t0   ! sh1add        %r1,%arg0,%r1
                    985:
                    986: x135:  sh3add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_t0    !       sh1add  %r1,%r1,%r1
                    987:
                    988: x136:  sh3add  %arg0,0,%r1             ! sh1add        %r1,%arg0,%r1   ! b     e_shift ! sh3add        %r1,%ret1,%ret1
                    989:
                    990: x137:  sh3add  %arg0,0,%r1             ! sh1add        %r1,%arg0,%r1   !       b       e_t0    ! sh3add        %r1,%arg0,%r1
                    991:
                    992: x138:  sh3add  %arg0,0,%r1             ! sh1add        %r1,%arg0,%r1   !       b       e_2t0   ! sh2add        %r1,%arg0,%r1
                    993:
                    994: x139:  sh3add  %arg0,0,%r1             ! sh1add        %r1,%arg0,%r1   ! b     e_2t0a0 ! sh2add        %r1,%arg0,%r1
                    995:
                    996: x140:  sh1add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_4t0   !       sh2add  %r1,%r1,%r1
                    997:
                    998: x141:  sh3add  %arg0,0,%r1             ! sh1add        %r1,%arg0,%r1   ! b     e_4t0a0 ! sh1add        %r1,%arg0,%r1
                    999:
                   1000: x142:  sh3add  %arg0,%arg0,%r1         !       sh3add  %r1,0,%r1       !       b       e_2t0   ! sub   %r1,%arg0,%r1
                   1001:
                   1002: x143: zdep     %arg0,27,28,%r1 !       sh3add  %r1,%r1,%r1     !       b       e_t0    ! sub   %r1,%arg0,%r1
                   1003:
                   1004: x144:  sh3add  %arg0,%arg0,%r1         !       sh3add  %r1,0,%r1       ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                   1005:
                   1006: x145:  sh3add  %arg0,%arg0,%r1         !       sh3add  %r1,0,%r1       !       b       e_t0    ! sh1add        %r1,%arg0,%r1
                   1007:
                   1008: x146:  sh3add  %arg0,%arg0,%r1         ! sh3add        %r1,%arg0,%r1   ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                   1009:
                   1010: x147:  sh3add  %arg0,%arg0,%r1         ! sh3add        %r1,%arg0,%r1   !       b       e_t0    ! sh1add        %r1,%arg0,%r1
                   1011:
                   1012: x148:  sh3add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                   1013:
                   1014: x149:  sh3add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_t0    ! sh2add        %r1,%arg0,%r1
                   1015:
                   1016: x150:  sh3add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_2t0   ! sh1add        %r1,%arg0,%r1
                   1017:
                   1018: x151:  sh3add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_2t0a0 ! sh1add        %r1,%arg0,%r1
                   1019:
                   1020: x152:  sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_shift ! sh3add        %r1,%ret1,%ret1
                   1021:
                   1022: x153:  sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_t0    ! sh3add        %r1,%arg0,%r1
                   1023:
                   1024: x154:  sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_2t0   ! sh2add        %r1,%arg0,%r1
                   1025:
                   1026: x155: zdep     %arg0,26,27,%r1 ! sub   %r1,%arg0,%r1   !       b       e_t0    !       sh2add  %r1,%r1,%r1
                   1027:
                   1028: x156:  sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_4t0   ! sh1add        %r1,%arg0,%r1
                   1029:
                   1030: x157: zdep     %arg0,26,27,%r1 ! sub   %r1,%arg0,%r1   ! b     e_t02a0 !       sh2add  %r1,%r1,%r1
                   1031:
                   1032: x158: zdep     %arg0,27,28,%r1 !       sh2add  %r1,%r1,%r1     !       b       e_2t0   ! sub   %r1,%arg0,%r1
                   1033:
                   1034: x159: zdep     %arg0,26,27,%r1 !       sh2add  %r1,%r1,%r1     !       b       e_t0    ! sub   %r1,%arg0,%r1
                   1035:
                   1036: x160:  sh2add  %arg0,%arg0,%r1         !       sh2add  %r1,0,%r1       ! b     e_shift ! sh3add        %r1,%ret1,%ret1
                   1037:
                   1038: x161:  sh3add  %arg0,0,%r1             !       sh2add  %r1,%r1,%r1     !       b       e_t0    ! sh2add        %r1,%arg0,%r1
                   1039:
                   1040: x162:  sh3add  %arg0,%arg0,%r1         !       sh3add  %r1,%r1,%r1     ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                   1041:
                   1042: x163:  sh3add  %arg0,%arg0,%r1         !       sh3add  %r1,%r1,%r1     !       b       e_t0    ! sh1add        %r1,%arg0,%r1
                   1043:
                   1044: x164:  sh2add  %arg0,%arg0,%r1         ! sh3add        %r1,%arg0,%r1   ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                   1045:
                   1046: x165:  sh3add  %arg0,0,%r1             ! sh2add        %r1,%arg0,%r1   !       b       e_t0    !       sh2add  %r1,%r1,%r1
                   1047:
                   1048: x166:  sh2add  %arg0,%arg0,%r1         ! sh3add        %r1,%arg0,%r1   !       b       e_2t0   ! sh1add        %r1,%arg0,%r1
                   1049:
                   1050: x167:  sh2add  %arg0,%arg0,%r1         ! sh3add        %r1,%arg0,%r1   ! b     e_2t0a0 ! sh1add        %r1,%arg0,%r1
                   1051:
                   1052: x168:  sh2add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_shift ! sh3add        %r1,%ret1,%ret1
                   1053:
                   1054: x169:  sh2add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_t0    ! sh3add        %r1,%arg0,%r1
                   1055:
                   1056: x170: zdep     %arg0,26,27,%r1 ! sh1add        %arg0,%r1,%r1   !       b       e_t0    !       sh2add  %r1,%r1,%r1
                   1057:
                   1058: x171:  sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_t0    !       sh3add  %r1,%r1,%r1
                   1059:
                   1060: x172:  sh2add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_4t0   ! sh1add        %r1,%arg0,%r1
                   1061:
                   1062: x173:  sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_t02a0 !       sh3add  %r1,%r1,%r1
                   1063:
                   1064: x174: zdep     %arg0,26,27,%r1 ! sh1add        %arg0,%r1,%r1   ! b     e_t04a0 !       sh2add  %r1,%r1,%r1
                   1065:
                   1066: x175:  sh3add  %arg0,0,%r1             ! sh1add        %r1,%arg0,%r1   !       b       e_5t0   ! sh1add        %r1,%arg0,%r1
                   1067:
                   1068: x176:  sh2add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_8t0   ! add   %r1,%arg0,%r1
                   1069:
                   1070: x177:  sh2add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_8t0a0 ! add   %r1,%arg0,%r1
                   1071:
                   1072: x178:  sh2add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_2t0   ! sh3add        %r1,%arg0,%r1
                   1073:
                   1074: x179:  sh2add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_2t0a0 ! sh3add        %r1,%arg0,%r1
                   1075:
                   1076: x180:  sh3add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                   1077:
                   1078: x181:  sh3add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_t0    ! sh2add        %r1,%arg0,%r1
                   1079:
                   1080: x182:  sh3add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_2t0   ! sh1add        %r1,%arg0,%r1
                   1081:
                   1082: x183:  sh3add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     ! b     e_2t0a0 ! sh1add        %r1,%arg0,%r1
                   1083:
                   1084: x184:  sh2add  %arg0,%arg0,%r1         !       sh3add  %r1,%r1,%r1     !       b       e_4t0   ! add   %r1,%arg0,%r1
                   1085:
                   1086: x185:  sh3add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_t0    !       sh2add  %r1,%r1,%r1
                   1087:
                   1088: x186: zdep     %arg0,26,27,%r1 ! sub   %r1,%arg0,%r1   !       b       e_2t0   !       sh1add  %r1,%r1,%r1
                   1089:
                   1090: x187:  sh3add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_t02a0 !       sh2add  %r1,%r1,%r1
                   1091:
                   1092: x188:  sh3add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_4t0   ! sh1add        %arg0,%r1,%r1
                   1093:
                   1094: x189:  sh2add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_t0    !       sh3add  %r1,%r1,%r1
                   1095:
                   1096: x190:  sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_2t0   !       sh2add  %r1,%r1,%r1
                   1097:
                   1098: x191: zdep     %arg0,25,26,%r1 !       sh1add  %r1,%r1,%r1     !       b       e_t0    ! sub   %r1,%arg0,%r1
                   1099:
                   1100: x192:  sh3add  %arg0,0,%r1             !       sh1add  %r1,%r1,%r1     ! b     e_shift ! sh3add        %r1,%ret1,%ret1
                   1101:
                   1102: x193:  sh3add  %arg0,0,%r1             !       sh1add  %r1,%r1,%r1     !       b       e_t0    ! sh3add        %r1,%arg0,%r1
                   1103:
                   1104: x194:  sh3add  %arg0,0,%r1             !       sh1add  %r1,%r1,%r1     !       b       e_2t0   ! sh2add        %r1,%arg0,%r1
                   1105:
                   1106: x195:  sh3add  %arg0,0,%r1             ! sh3add        %r1,%arg0,%r1   !       b       e_t0    !       sh1add  %r1,%r1,%r1
                   1107:
                   1108: x196:  sh3add  %arg0,0,%r1             !       sh1add  %r1,%r1,%r1     !       b       e_4t0   ! sh1add        %r1,%arg0,%r1
                   1109:
                   1110: x197:  sh3add  %arg0,0,%r1             !       sh1add  %r1,%r1,%r1     ! b     e_4t0a0 ! sh1add        %r1,%arg0,%r1
                   1111:
                   1112: x198: zdep     %arg0,25,26,%r1 ! sh1add        %arg0,%r1,%r1   !       b       e_t0    !       sh1add  %r1,%r1,%r1
                   1113:
                   1114: x199:  sh3add  %arg0,0,%r1             ! sh2add        %r1,%arg0,%r1   ! b     e_2t0a0 !       sh1add  %r1,%r1,%r1
                   1115:
                   1116: x200:  sh2add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     ! b     e_shift ! sh3add        %r1,%ret1,%ret1
                   1117:
                   1118: x201:  sh2add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_t0    ! sh3add        %r1,%arg0,%r1
                   1119:
                   1120: x202:  sh2add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_2t0   ! sh2add        %r1,%arg0,%r1
                   1121:
                   1122: x203:  sh2add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     ! b     e_2t0a0 ! sh2add        %r1,%arg0,%r1
                   1123:
                   1124: x204:  sh3add  %arg0,0,%r1             ! sh1add        %r1,%arg0,%r1   !       b       e_4t0   !       sh1add  %r1,%r1,%r1
                   1125:
                   1126: x205:  sh2add  %arg0,%arg0,%r1         ! sh3add        %r1,%arg0,%r1   !       b       e_t0    !       sh2add  %r1,%r1,%r1
                   1127:
                   1128: x206: zdep     %arg0,25,26,%r1 ! sh2add        %arg0,%r1,%r1   ! b     e_t02a0 !       sh1add  %r1,%r1,%r1
                   1129:
                   1130: x207:  sh3add  %arg0,0,%r1             ! sh1add        %r1,%arg0,%r1   !       b       e_3t0   ! sh2add        %r1,%arg0,%r1
                   1131:
                   1132: x208:  sh2add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_8t0   ! add   %r1,%arg0,%r1
                   1133:
                   1134: x209:  sh2add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     ! b     e_8t0a0 ! add   %r1,%arg0,%r1
                   1135:
                   1136: x210:  sh2add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_2t0   !       sh2add  %r1,%r1,%r1
                   1137:
                   1138: x211:  sh2add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_2t0a0 !       sh2add  %r1,%r1,%r1
                   1139:
                   1140: x212:  sh1add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_4t0   ! sh2add        %r1,%arg0,%r1
                   1141:
                   1142: x213:  sh1add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_4t0a0 ! sh2add        %r1,%arg0,%r1
                   1143:
                   1144: x214:  sh3add  %arg0,%arg0,%r1         ! sh2add        %arg0,%r1,%r1   ! b     e2t04a0 ! sh3add        %r1,%arg0,%r1
                   1145:
                   1146: x215:  sh2add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_5t0   ! sh1add        %r1,%arg0,%r1
                   1147:
                   1148: x216:  sh3add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     ! b     e_shift ! sh3add        %r1,%ret1,%ret1
                   1149:
                   1150: x217:  sh3add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     !       b       e_t0    ! sh3add        %r1,%arg0,%r1
                   1151:
                   1152: x218:  sh3add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     !       b       e_2t0   ! sh2add        %r1,%arg0,%r1
                   1153:
                   1154: x219:  sh3add  %arg0,%arg0,%r1         ! sh3add        %r1,%arg0,%r1   !       b       e_t0    !       sh1add  %r1,%r1,%r1
                   1155:
                   1156: x220:  sh1add  %arg0,%arg0,%r1         !       sh3add  %r1,%r1,%r1     !       b       e_4t0   ! sh1add        %r1,%arg0,%r1
                   1157:
                   1158: x221:  sh1add  %arg0,%arg0,%r1         !       sh3add  %r1,%r1,%r1     ! b     e_4t0a0 ! sh1add        %r1,%arg0,%r1
                   1159:
                   1160: x222:  sh3add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_2t0   !       sh1add  %r1,%r1,%r1
                   1161:
                   1162: x223:  sh3add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_2t0a0 !       sh1add  %r1,%r1,%r1
                   1163:
                   1164: x224:  sh3add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     !       b       e_8t0   ! add   %r1,%arg0,%r1
                   1165:
                   1166: x225:  sh3add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_t0    !       sh2add  %r1,%r1,%r1
                   1167:
                   1168: x226:  sh1add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_t02a0 ! zdep  %r1,26,27,%r1
                   1169:
                   1170: x227:  sh3add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     ! b     e_t02a0 !       sh2add  %r1,%r1,%r1
                   1171:
                   1172: x228:  sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_4t0   !       sh1add  %r1,%r1,%r1
                   1173:
                   1174: x229:  sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_4t0a0 !       sh1add  %r1,%r1,%r1
                   1175:
                   1176: x230:  sh3add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_5t0   ! add   %r1,%arg0,%r1
                   1177:
                   1178: x231:  sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_3t0   ! sh2add        %r1,%arg0,%r1
                   1179:
                   1180: x232:  sh1add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   !       b       e_8t0   ! sh2add        %r1,%arg0,%r1
                   1181:
                   1182: x233:  sh1add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e_8t0a0 ! sh2add        %r1,%arg0,%r1
                   1183:
                   1184: x234:  sh1add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   !       b       e_2t0   !       sh3add  %r1,%r1,%r1
                   1185:
                   1186: x235:  sh1add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e_2t0a0 !       sh3add  %r1,%r1,%r1
                   1187:
                   1188: x236:  sh3add  %arg0,%arg0,%r1         ! sh1add        %r1,%arg0,%r1   ! b     e4t08a0 !       sh1add  %r1,%r1,%r1
                   1189:
                   1190: x237: zdep     %arg0,27,28,%r1 !       sh2add  %r1,%r1,%r1     !       b       e_3t0   ! sub   %r1,%arg0,%r1
                   1191:
                   1192: x238:  sh1add  %arg0,%arg0,%r1         ! sh2add        %r1,%arg0,%r1   ! b     e2t04a0 !       sh3add  %r1,%r1,%r1
                   1193:
                   1194: x239: zdep     %arg0,27,28,%r1 !       sh2add  %r1,%r1,%r1     ! b     e_t0ma0 !       sh1add  %r1,%r1,%r1
                   1195:
                   1196: x240:  sh3add  %arg0,%arg0,%r1         ! add   %r1,%arg0,%r1   !       b       e_8t0   !       sh1add  %r1,%r1,%r1
                   1197:
                   1198: x241:  sh3add  %arg0,%arg0,%r1         ! add   %r1,%arg0,%r1   ! b     e_8t0a0 !       sh1add  %r1,%r1,%r1
                   1199:
                   1200: x242:  sh2add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     !       b       e_2t0   ! sh3add        %r1,%arg0,%r1
                   1201:
                   1202: x243:  sh3add  %arg0,%arg0,%r1         !       sh3add  %r1,%r1,%r1     !       b       e_t0    !       sh1add  %r1,%r1,%r1
                   1203:
                   1204: x244:  sh2add  %arg0,%arg0,%r1         !       sh1add  %r1,%r1,%r1     !       b       e_4t0   ! sh2add        %r1,%arg0,%r1
                   1205:
                   1206: x245:  sh3add  %arg0,0,%r1             !       sh1add  %r1,%r1,%r1     !       b       e_5t0   ! sh1add        %r1,%arg0,%r1
                   1207:
                   1208: x246:  sh2add  %arg0,%arg0,%r1         ! sh3add        %r1,%arg0,%r1   !       b       e_2t0   !       sh1add  %r1,%r1,%r1
                   1209:
                   1210: x247:  sh2add  %arg0,%arg0,%r1         ! sh3add        %r1,%arg0,%r1   ! b     e_2t0a0 !       sh1add  %r1,%r1,%r1
                   1211:
                   1212: x248: zdep     %arg0,26,27,%r1 ! sub   %r1,%arg0,%r1   ! b     e_shift ! sh3add        %r1,%ret1,%ret1
                   1213:
                   1214: x249: zdep     %arg0,26,27,%r1 ! sub   %r1,%arg0,%r1   !       b       e_t0    ! sh3add        %r1,%arg0,%r1
                   1215:
                   1216: x250:  sh2add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     !       b       e_2t0   !       sh2add  %r1,%r1,%r1
                   1217:
                   1218: x251:  sh2add  %arg0,%arg0,%r1         !       sh2add  %r1,%r1,%r1     ! b     e_2t0a0 !       sh2add  %r1,%r1,%r1
                   1219:
                   1220: x252: zdep     %arg0,25,26,%r1 ! sub   %r1,%arg0,%r1   ! b     e_shift ! sh2add        %r1,%ret1,%ret1
                   1221:
                   1222: x253: zdep     %arg0,25,26,%r1 ! sub   %r1,%arg0,%r1   !       b       e_t0    ! sh2add        %r1,%arg0,%r1
                   1223:
                   1224: x254: zdep     %arg0,24,25,%r1 ! sub   %r1,%arg0,%r1   ! b     e_shift ! sh1add        %r1,%ret1,%ret1
                   1225:
                   1226: x255: zdep     %arg0,23,24,%r1 ! comb,<>       %arg1,0,l0      ! sub   %r1,%arg0,%r1   ! b,n   ret_t0
                   1227:
                   1228: ;1040 insts before this.
                   1229: ret_t0: bv     0(%rp)
                   1230:
                   1231: e_t0:  add     %ret1,%r1,%ret1
                   1232:
                   1233: e_shift: comb,<>       %arg1,0,l2
                   1234:
                   1235:        zdep    %arg0,23,24,%arg0       ; %arg0 <<= 8 ***********
                   1236:        bv,n  0(%rp)
                   1237: e_t0ma0: comb,<>       %arg1,0,l0
                   1238:
                   1239:        sub     %r1,%arg0,%r1
                   1240:        bv      0(%rp)
                   1241:        add     %ret1,%r1,%ret1
                   1242: e_t0a0: comb,<>        %arg1,0,l0
                   1243:
                   1244:        add     %r1,%arg0,%r1
                   1245:        bv      0(%rp)
                   1246:        add     %ret1,%r1,%ret1
                   1247: e_t02a0: comb,<>       %arg1,0,l0
                   1248:
                   1249:        sh1add  %arg0,%r1,%r1
                   1250:        bv      0(%rp)
                   1251:        add     %ret1,%r1,%ret1
                   1252: e_t04a0: comb,<>       %arg1,0,l0
                   1253:
                   1254:        sh2add  %arg0,%r1,%r1
                   1255:        bv      0(%rp)
                   1256:        add     %ret1,%r1,%ret1
                   1257: e_2t0: comb,<> %arg1,0,l1
                   1258:
                   1259:        sh1add  %r1,%ret1,%ret1
                   1260:        bv,n  0(%rp)
                   1261: e_2t0a0: comb,<>       %arg1,0,l0
                   1262:
                   1263:        sh1add  %r1,%arg0,%r1
                   1264:        bv      0(%rp)
                   1265:        add     %ret1,%r1,%ret1
                   1266: e2t04a0: sh1add        %arg0,%r1,%r1
                   1267:
                   1268:        comb,<> %arg1,0,l1
                   1269:        sh1add  %r1,%ret1,%ret1
                   1270:        bv,n  0(%rp)
                   1271: e_3t0: comb,<> %arg1,0,l0
                   1272:
                   1273:        sh1add  %r1,%r1,%r1
                   1274:        bv      0(%rp)
                   1275:        add     %ret1,%r1,%ret1
                   1276: e_4t0: comb,<> %arg1,0,l1
                   1277:
                   1278:        sh2add  %r1,%ret1,%ret1
                   1279:        bv,n  0(%rp)
                   1280: e_4t0a0: comb,<>       %arg1,0,l0
                   1281:
                   1282:        sh2add  %r1,%arg0,%r1
                   1283:        bv      0(%rp)
                   1284:        add     %ret1,%r1,%ret1
                   1285: e4t08a0: sh1add        %arg0,%r1,%r1
                   1286:
                   1287:        comb,<> %arg1,0,l1
                   1288:        sh2add  %r1,%ret1,%ret1
                   1289:        bv,n  0(%rp)
                   1290: e_5t0: comb,<> %arg1,0,l0
                   1291:
                   1292:        sh2add  %r1,%r1,%r1
                   1293:        bv      0(%rp)
                   1294:        add     %ret1,%r1,%ret1
                   1295: e_8t0: comb,<> %arg1,0,l1
                   1296:
                   1297:        sh3add  %r1,%ret1,%ret1
                   1298:        bv,n  0(%rp)
                   1299: e_8t0a0: comb,<>       %arg1,0,l0
                   1300:
                   1301:        sh3add  %r1,%arg0,%r1
                   1302:        bv      0(%rp)
                   1303:        add     %ret1,%r1,%ret1
                   1304:
                   1305:        .procend
                   1306:        .end
                   1307:
                   1308:        .import $$divI_2,millicode
                   1309:        .import $$divI_3,millicode
                   1310:        .import $$divI_4,millicode
                   1311:        .import $$divI_5,millicode
                   1312:        .import $$divI_6,millicode
                   1313:        .import $$divI_7,millicode
                   1314:        .import $$divI_8,millicode
                   1315:        .import $$divI_9,millicode
                   1316:        .import $$divI_10,millicode
                   1317:        .import $$divI_12,millicode
                   1318:        .import $$divI_14,millicode
                   1319:        .import $$divI_15,millicode
                   1320:        .export $$divI,millicode
                   1321:        .export $$divoI,millicode
                   1322: $$divoI:
                   1323:        .proc
                   1324:        .callinfo       NO_CALLS
                   1325:        comib,=,n  -1,%arg1,negative1   ; when divisor == -1
                   1326: $$divI:
                   1327:        comib,>>=,n 15,%arg1,small_divisor
                   1328:        add,>=  0,%arg0,%ret1           ; move dividend, if %ret1 < 0,
                   1329: normal1:
                   1330:          sub   0,%ret1,%ret1           ;   make it positive
                   1331:        sub     0,%arg1,%r1             ; clear carry,
                   1332:                                        ;   negate the divisor
                   1333:        ds      0,%r1,0         ; set V-bit to the comple-
                   1334:                                        ;   ment of the divisor sign
                   1335:        add     %ret1,%ret1,%ret1       ; shift msb bit into carry
                   1336:        ds      %r0,%arg1,%r1           ; 1st divide step, if no carry
                   1337:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1338:        ds      %r1,%arg1,%r1           ; 2nd divide step
                   1339:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1340:        ds      %r1,%arg1,%r1           ; 3rd divide step
                   1341:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1342:        ds      %r1,%arg1,%r1           ; 4th divide step
                   1343:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1344:        ds      %r1,%arg1,%r1           ; 5th divide step
                   1345:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1346:        ds      %r1,%arg1,%r1           ; 6th divide step
                   1347:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1348:        ds      %r1,%arg1,%r1           ; 7th divide step
                   1349:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1350:        ds      %r1,%arg1,%r1           ; 8th divide step
                   1351:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1352:        ds      %r1,%arg1,%r1           ; 9th divide step
                   1353:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1354:        ds      %r1,%arg1,%r1           ; 10th divide step
                   1355:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1356:        ds      %r1,%arg1,%r1           ; 11th divide step
                   1357:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1358:        ds      %r1,%arg1,%r1           ; 12th divide step
                   1359:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1360:        ds      %r1,%arg1,%r1           ; 13th divide step
                   1361:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1362:        ds      %r1,%arg1,%r1           ; 14th divide step
                   1363:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1364:        ds      %r1,%arg1,%r1           ; 15th divide step
                   1365:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1366:        ds      %r1,%arg1,%r1           ; 16th divide step
                   1367:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1368:        ds      %r1,%arg1,%r1           ; 17th divide step
                   1369:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1370:        ds      %r1,%arg1,%r1           ; 18th divide step
                   1371:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1372:        ds      %r1,%arg1,%r1           ; 19th divide step
                   1373:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1374:        ds      %r1,%arg1,%r1           ; 20th divide step
                   1375:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1376:        ds      %r1,%arg1,%r1           ; 21st divide step
                   1377:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1378:        ds      %r1,%arg1,%r1           ; 22nd divide step
                   1379:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1380:        ds      %r1,%arg1,%r1           ; 23rd divide step
                   1381:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1382:        ds      %r1,%arg1,%r1           ; 24th divide step
                   1383:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1384:        ds      %r1,%arg1,%r1           ; 25th divide step
                   1385:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1386:        ds      %r1,%arg1,%r1           ; 26th divide step
                   1387:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1388:        ds      %r1,%arg1,%r1           ; 27th divide step
                   1389:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1390:        ds      %r1,%arg1,%r1           ; 28th divide step
                   1391:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1392:        ds      %r1,%arg1,%r1           ; 29th divide step
                   1393:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1394:        ds      %r1,%arg1,%r1           ; 30th divide step
                   1395:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1396:        ds      %r1,%arg1,%r1           ; 31st divide step
                   1397:        addc    %ret1,%ret1,%ret1       ; shift %ret1 with/into carry
                   1398:        ds      %r1,%arg1,%r1           ; 32nd divide step,
                   1399:        addc    %ret1,%ret1,%ret1       ; shift last %ret1 bit into %ret1
                   1400:        xor,>=  %arg0,%arg1,0           ; get correct sign of quotient
                   1401:          sub   0,%ret1,%ret1           ;   based on operand signs
                   1402:        bv,n  0(%rp)
                   1403:        nop
                   1404: ;______________________________________________________________________
                   1405: small_divisor:
                   1406:        depd    %r0,31,32,%arg1
                   1407:        blr,n   %arg1,%r0
                   1408:        nop
                   1409: ; table for divisor == 0,1, ... ,15
                   1410:        addit,= 0,%arg1,%r0     ; trap if divisor == 0
                   1411:        nop
                   1412:        bv      %r0(%rp)        ; divisor == 1
                   1413:        copy    %arg0,%ret1
                   1414:         b,n    $$divI_2        ; divisor == 2
                   1415:        nop
                   1416:         b,n    $$divI_3        ; divisor == 3
                   1417:        nop
                   1418:         b,n    $$divI_4        ; divisor == 4
                   1419:        nop
                   1420:         b,n    $$divI_5        ; divisor == 5
                   1421:        nop
                   1422:         b,n    $$divI_6        ; divisor == 6
                   1423:        nop
                   1424:         b,n    $$divI_7        ; divisor == 7
                   1425:        nop
                   1426:         b,n    $$divI_8        ; divisor == 8
                   1427:        nop
                   1428:         b,n    $$divI_9        ; divisor == 9
                   1429:        nop
                   1430:         b,n    $$divI_10       ; divisor == 10
                   1431:        nop
                   1432:        b       normal1         ; divisor == 11
                   1433:        add,>=  0,%arg0,%ret1
                   1434:         b,n    $$divI_12       ; divisor == 12
                   1435:        nop
                   1436:        b       normal1         ; divisor == 13
                   1437:        add,>=  0,%arg0,%ret1
                   1438:         b,n    $$divI_14       ; divisor == 14
                   1439:        nop
                   1440:         b,n    $$divI_15       ; divisor == 15
                   1441:        nop
                   1442: ;______________________________________________________________________
                   1443: negative1:
                   1444:        sub     %r0,%arg0,%ret1 ; result is negation of dividend
                   1445:        bv      0(%rp)
                   1446:        addo    %arg0,%arg1,%r0 ; trap iff dividend==0x80000000 && divisor==-1
                   1447:        .procend
                   1448:        .end

CVSweb