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

1.1       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.