Annotation of MiNT/src/gas/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:        .globl  _quickzero
                     12: 
                     13: _quickzero:
                     14: 
                     15:        movel   sp@(4), a0      | place to zero at
                     16: 
                     17:        movel   sp@(8), d0      | number of blocks
                     18: 
                     19:        moveml  d1-d7/a1, sp@-  | save registers
                     20: 
                     21:        clrl    d1              | zero them out
                     22: 
                     23:        movel   d1, d2
                     24: 
                     25:        movel   d1, d3
                     26: 
                     27:        movel   d1, d4
                     28: 
                     29:        movel   d1, d5
                     30: 
                     31:        movel   d1, d6
                     32: 
                     33:        movel   d1, d7
                     34: 
                     35:        movel   d1, a1
                     36: 
                     37:        subql   #1, d0          | adjust for dbra loop
                     38: 
                     39: loop:
                     40: 
                     41:        moveml  d1-d7/a1, a0@   | zero the memory, 32 bytes at a time
                     42: 
                     43:        moveml  d1-d7/a1, a0@(32)
                     44: 
                     45:        moveml  d1-d7/a1, a0@(64)
                     46: 
                     47:        moveml  d1-d7/a1, a0@(96)
                     48: 
                     49:        moveml  d1-d7/a1, a0@(128)
                     50: 
                     51:        moveml  d1-d7/a1, a0@(160)
                     52: 
                     53:        moveml  d1-d7/a1, a0@(192)
                     54: 
                     55:        moveml  d1-d7/a1, a0@(224)
                     56: 
                     57:        lea     a0@(256), a0
                     58: 
                     59:        dbra    d0, loop
                     60: 
                     61: |
                     62: 
                     63:        moveml  sp@+, d1-d7/a1  | restore regs
                     64: 
                     65:        rts                     | and leave
                     66: 

unix.superglobalmegacorp.com

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