[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     ! 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