Annotation of pgp/src/68000.s, revision 1.1.1.3

1.1.1.3 ! root        1: ; This is the assembler source code for amiga 68000
        !             2: ; It assumes Lattice-C is used. (v5.04 or higher)
        !             3: ; Written by S. Fishman
        !             4: 
        !             5:     SECTION text
        !             6: 
        !             7:        XREF    _global_precision
        !             8:        XDEF    _P_ADDC         ;make the linker know we're here
        !             9: 
        !            10: _P_ADDC:       link    a6,#0
        !            11:        movem.l d4-d5/a0-a1,-(a7)       
        !            12:        move.l  8(a6),a0        
        !            13:        move.l  12(a6),a1       
        !            14:        move.l  16(a6),d4
        !            15:        sne     d4              
        !            16:        moveq.l #0,d5
        !            17:        move.w  _global_precision,d5
        !            18:        asl.l   #2,d5           
        !            19:        add.l   d5,a0   
        !            20:        add.l   d5,a1
        !            21:        asr.l   #2,d5           
        !            22:        sub.l   #1,d5   
        !            23:        asr.b   #1,d4   
        !            24: add_loop:      addx.l  -(a1),-(a0)     
        !            25:        dbra    d5,add_loop
        !            26:        scs     d0              
        !            27:        ext.w   d0
        !            28:        ext.l   d0              
        !            29:        movem.l (a7)+,d4-d5/a0-a1       
        !            30:        unlk    a6              ;get A6 & A7 back
        !            31:        rts
        !            32: 
        !            33:        XDEF    _P_SUBB         
        !            34: 
        !            35: _P_SUBB:       link    a6,#0
        !            36:        movem.l d4-d5/a0-a1,-(a7)       
        !            37:        move.l  8(a6),a0        
        !            38:        move.l  12(a6),a1       
        !            39:        move.l  16(a6),d4
        !            40:        sne     d4              ;fix old borrow bits
        !            41:        moveq.l #0,d5
        !            42:        move.w  _global_precision,d5
        !            43:        asl.l   #2,d5   
        !            44:        add.l   d5,a0
        !            45:        add.l   d5,a1           
        !            46:        asr.l   #2,d5   
        !            47:        sub.l   #1,d5
        !            48:        asr.b   #1,d4           
        !            49: sub_loop:      subx.l  -(a1),-(a0)     ;come'n, let's do it !!!
        !            50:        dbra    d5,sub_loop
        !            51:        scs     d0              
        !            52:        ext.w   d0
        !            53:        ext.l   d0              
        !            54:        movem.l (a7)+,d4-d5/a0-a1       
        !            55:        unlk    a6      
        !            56:        rts
        !            57: 
        !            58:        XDEF    _P_ROTL         
        !            59: 
        !            60: _P_ROTL:       link    a6,#0   
        !            61:        movem.l d4-d5/a0,-(a7)
        !            62:        move.l  8(a6),a0        
        !            63:        move.l  12(a6),d4
        !            64:        moveq.l #0,d5
        !            65:        move.w  _global_precision,d5
        !            66:        asl.l   #1,d5           
        !            67:                                
        !            68:        sub.l   #2,d5   
        !            69:        asl     (a0)+
        !            70:        scs     d0              
        !            71:        ext.w   d0
        !            72:     ext.l      d0              
        !            73: rotl_loop:     asl     (a0)+
        !            74:        bcc     rotl_no_carry
        !            75:        bset    #0,-3(a0)       
        !            76: rotl_no_carry: dbra    d5,rotl_loop    
        !            77:        tst.l   d4              
        !            78:        beq     rotl_no_old_carry
        !            79:        bset    #0,-1(a0)       
        !            80: rotl_no_old_carry:
        !            81:        movem.l (a7)+,d4-d5/a0  
        !            82:        unlk    a6              
        !            83:        rts
        !            84: 
        !            85:    XDEF     _P_SETP    
        !            86: 
        !            87: _P_SETP: rts
        !            88:        END
        !            89: 

unix.superglobalmegacorp.com

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