Annotation of MiNT/src/asm/quickzer.s, revision 1.1.1.1

1.1       root        1: ;
                      2: 
                      3: ; quickzero(char *place, long size): zero an area of memory. "size" is
                      4: 
                      5: ; the number of 256 byte blocks in the area, and must be > 0.
                      6: 
                      7: ; registers changed: d0 and a0
                      8: 
                      9: ;
                     10: 
                     11: ; $Log: quickzer.s,v $
                     12: 
                     13: ; Revision 1.1  1991/05/30  17:23:58  AGK
                     14: 
                     15: ; Initial revision
                     16: 
                     17: ;
                     18: 
                     19:        SECTION TEXT
                     20: 
                     21:        
                     22: 
                     23:        XDEF    _quickzero
                     24: 
                     25: _quickzero:
                     26: 
                     27:        move.l  4(sp),a0        ; place to zero at
                     28: 
                     29:        move.l  8(sp),d0        ; number of blocks
                     30: 
                     31:        movem.l d1-d7/a1,-(sp)  ; save registers
                     32: 
                     33:        moveq.l #0,d1           ; zero them out
                     34: 
                     35:        moveq.l #0,d2
                     36: 
                     37:        moveq.l #0,d3
                     38: 
                     39:        moveq.l #0,d4
                     40: 
                     41:        moveq.l #0,d5
                     42: 
                     43:        moveq.l #0,d6
                     44: 
                     45:        moveq.l #0,d7
                     46: 
                     47:        move.l  d1,a1
                     48: 
                     49:        subq.l  #1,d0           ; adjust for dbra loop
                     50: 
                     51: loop:
                     52: 
                     53:        movem.l d1-d7/a1,(a0)   ; zero the memory, 32 bytes at a time
                     54: 
                     55:        movem.l d1-d7/a1,32(a0)
                     56: 
                     57:        movem.l d1-d7/a1,64(a0)
                     58: 
                     59:        movem.l d1-d7/a1,96(a0)
                     60: 
                     61:        movem.l d1-d7/a1,128(a0)
                     62: 
                     63:        movem.l d1-d7/a1,160(a0)
                     64: 
                     65:        movem.l d1-d7/a1,192(a0)
                     66: 
                     67:        movem.l d1-d7/a1,224(a0)
                     68: 
                     69:        lea     256(a0),a0
                     70: 
                     71:        dbra    d0,loop
                     72: 
                     73: ;
                     74: 
                     75:        movem.l (sp)+,d1-d7/a1  ; restore regs
                     76: 
                     77:        rts                     ; and leave
                     78: 
                     79:        END
                     80: 

unix.superglobalmegacorp.com

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