Annotation of researchv10no/cmd/PDP11/fpp/ilongops.s, revision 1.1

1.1     ! root        1: / C library-- versions of long *, /, % for non-floating point hardware
        !             2: /  also =* =% =/
        !             3: 
        !             4: .globl lmul, almul
        !             5: .globl csv, cret
        !             6: 
        !             7: /
        !             8: / called:2(sp):LHS 6(sp):RHS
        !             9: lmul:
        !            10:        jsr     r5,csv
        !            11:        mov     4.(r5),r2
        !            12:        mov     6.(r5),r3
        !            13:        clr     r0
        !            14:        clr     r1
        !            15:        mov     $32.,r4
        !            16: 1:
        !            17:        asl     r1
        !            18:        rol     r0
        !            19:        rol     r3
        !            20:        rol     r2
        !            21:        bcc     2f
        !            22:        add     10.(r5),r1
        !            23:        adc     r0
        !            24:        add     8.(r5),r0
        !            25: 2:
        !            26:        sob     r4,1b
        !            27:        jmp     cret
        !            28: 
        !            29: / call is 2(sp):LHSptr 4(sp):RHS
        !            30: almul:
        !            31:        jsr     r5,csv
        !            32:        mov     4.(r5),r3
        !            33:        mov     (r3)+,r2
        !            34:        mov     (r3)+,r3
        !            35:        clr     r0
        !            36:        clr     r1
        !            37:        mov     $32.,r4
        !            38: 1:
        !            39:        asl     r1
        !            40:        rol     r0
        !            41:        rol     r3
        !            42:        rol     r2
        !            43:        bcc     2f
        !            44:        add     8.(r5),r1
        !            45:        adc     r0
        !            46:        add     6.(r5),r0
        !            47: 2:
        !            48:        sob     r4,1b
        !            49:        mov     4.(r5),r3
        !            50:        mov     r0,(r3)+
        !            51:        mov     r1,(r3)+
        !            52:        jmp     cret
        !            53: 
        !            54: .globl ldiv
        !            55: .globl lrem
        !            56: 
        !            57: / Both called 2(sp):LHS 6(sp):RHS
        !            58: lrem:
        !            59:        jsr     r5,csv
        !            60:        mov     $100,-(sp)
        !            61:        br      1f
        !            62: 
        !            63: ldiv:
        !            64:        jsr     r5,csv
        !            65:        clr     -(sp)
        !            66: 1:
        !            67:        mov     6.(r5),r3
        !            68:        mov     4.(r5),r2
        !            69:        bpl     1f
        !            70:        inc     (sp)
        !            71:        neg     r2
        !            72:        neg     r3
        !            73:        sbc     r2
        !            74: 1:
        !            75:        clr     r0
        !            76:        clr     r1
        !            77:        tst     8.(r5)
        !            78:        bge     1f
        !            79:        neg     8.(r5)
        !            80:        neg     10.(r5)
        !            81:        sbc     8.(r5)
        !            82:        inc     (sp)
        !            83: 1:
        !            84:        mov     $32.,r4
        !            85: 1:
        !            86:        ashc    $1,r2
        !            87:        rol     r1
        !            88:        rol     r0
        !            89:        cmp     8.(r5),r0
        !            90:        blt     2f
        !            91:        bgt     3f
        !            92:        cmp     10.(r5),r1
        !            93:        blos    2f
        !            94: 3:
        !            95:        sob     r4,1b
        !            96:        br      1f
        !            97: 2:
        !            98:        sub     10.(r5),r1
        !            99:        sbc     r0
        !           100:        sub     8.(r5),r0
        !           101:        inc     r3
        !           102:        sob     r4,1b
        !           103: 1:
        !           104:        bit     $100,(sp)
        !           105:        beq     3f
        !           106:        tst     4.(r5)
        !           107:        bpl     1f
        !           108:        br      2f
        !           109: 3:
        !           110:        mov     r2,r0
        !           111:        mov     r3,r1
        !           112:        bit     $1,(sp)+
        !           113:        beq     1f
        !           114: 2:
        !           115:        neg     r0
        !           116:        neg     r1
        !           117:        sbc     r0
        !           118: 1:
        !           119:        jmp     cret
        !           120: 
        !           121: .globl alrem, aldiv
        !           122: 
        !           123: / Called 2(sp):LHSptr 4(sp):RHS
        !           124: 
        !           125: alrem:
        !           126:        jsr     r5,csv
        !           127:        mov     $100,-(sp)
        !           128:        br      1f
        !           129: 
        !           130: aldiv:
        !           131:        jsr     r5,csv
        !           132:        clr     -(sp)
        !           133: 1:
        !           134:        mov     4.(r5),r2
        !           135:        mov     2(r2),r3
        !           136:        mov     (r2),r2
        !           137:        bpl     1f
        !           138:        inc     (sp)
        !           139:        neg     r2
        !           140:        neg     r3
        !           141:        sbc     r2
        !           142: 1:
        !           143:        clr     r0
        !           144:        clr     r1
        !           145:        tst     6.(r5)
        !           146:        bge     1f
        !           147:        neg     6.(r5)
        !           148:        neg     8.(r5)
        !           149:        sbc     6.(r5)
        !           150:        inc     (sp)
        !           151: 1:
        !           152:        mov     $32.,r4
        !           153: 1:
        !           154:        ashc    $1,r2
        !           155:        rol     r1
        !           156:        rol     r0
        !           157:        cmp     6.(r5),r0
        !           158:        blt     2f
        !           159:        bgt     3f
        !           160:        cmp     8.(r5),r1
        !           161:        blos    2f
        !           162: 3:
        !           163:        sob     r4,1b
        !           164:        br      1f
        !           165: 2:
        !           166:        sub     8.(r5),r1
        !           167:        sbc     r0
        !           168:        sub     6.(r5),r0
        !           169:        inc     r3
        !           170:        sob     r4,1b
        !           171: 1:
        !           172:        mov     4(r5),r4
        !           173:        bit     $100,(sp)
        !           174:        beq     3f
        !           175:        tst     (r4)
        !           176:        bpl     1f
        !           177:        br      2f
        !           178: 3:
        !           179:        mov     r2,r0
        !           180:        mov     r3,r1
        !           181:        bit     $1,(sp)+
        !           182:        beq     1f
        !           183: 2:
        !           184:        neg     r0
        !           185:        neg     r1
        !           186:        sbc     r0
        !           187: 1:
        !           188:        mov     r0,(r4)+
        !           189:        mov     r1,(r4)
        !           190:        jmp     cret

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.