Annotation of quake2/linux/r_scana.s, revision 1.1.1.1

1.1       root        1: //
                      2: // d_scana.s
                      3: // x86 assembly-language turbulent texture mapping code
                      4: //
                      5: 
                      6: #include "qasm.h"
                      7: #include "d_ifacea.h"
                      8: 
                      9: #if id386
                     10: 
                     11:        .data
                     12: 
                     13:        .text
                     14: 
                     15: //----------------------------------------------------------------------
                     16: // turbulent texture mapping code
                     17: //----------------------------------------------------------------------
                     18: 
                     19:        .align 4
                     20: .globl C(D_DrawTurbulent8Span)
                     21: C(D_DrawTurbulent8Span):
                     22:        pushl   %ebp                            // preserve caller's stack frame pointer
                     23:        pushl   %esi                            // preserve register variables
                     24:        pushl   %edi
                     25:        pushl   %ebx
                     26: 
                     27:        movl    C(r_turb_s),%esi
                     28:        movl    C(r_turb_t),%ecx
                     29:        movl    C(r_turb_pdest),%edi
                     30:        movl    C(r_turb_spancount),%ebx
                     31: 
                     32: Llp:
                     33:        movl    %ecx,%eax
                     34:        movl    %esi,%edx
                     35:        sarl    $16,%eax
                     36:        movl    C(r_turb_turb),%ebp
                     37:        sarl    $16,%edx
                     38:        andl    $(CYCLE-1),%eax
                     39:        andl    $(CYCLE-1),%edx
                     40:        movl    (%ebp,%eax,4),%eax
                     41:        movl    (%ebp,%edx,4),%edx
                     42:        addl    %esi,%eax
                     43:        sarl    $16,%eax
                     44:        addl    %ecx,%edx
                     45:        sarl    $16,%edx
                     46:        andl    $(TURB_TEX_SIZE-1),%eax
                     47:        andl    $(TURB_TEX_SIZE-1),%edx
                     48:        shll    $6,%edx
                     49:        movl    C(r_turb_pbase),%ebp
                     50:        addl    %eax,%edx
                     51:        incl    %edi
                     52:        addl    C(r_turb_sstep),%esi
                     53:        addl    C(r_turb_tstep),%ecx
                     54:        movb    (%ebp,%edx,1),%dl
                     55:        decl    %ebx
                     56:        movb    %dl,-1(%edi)
                     57:        jnz             Llp
                     58: 
                     59:        movl    %edi,C(r_turb_pdest)
                     60: 
                     61:        popl    %ebx                            // restore register variables
                     62:        popl    %edi
                     63:        popl    %esi
                     64:        popl    %ebp                            // restore caller's stack frame pointer
                     65:        ret
                     66: 
                     67: #endif // id386
                     68: 

unix.superglobalmegacorp.com

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