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

1.1       root        1: !
                      2: ! SPARC assembler primitives for rsalib.c
                      3: ! written by Branko Lankester, [email protected]     8/29/91
                      4: !
                      5: ! other sources must be compiled with UNIT32 and HIGHFIRST defined
                      6: !
                      7:        .seg    "text"
                      8:         .proc   4
                      9:         .global _P_SETP
                     10: _P_SETP:
                     11:        retl
                     12:        nop
                     13: 
                     14: 
                     15:         .proc   4
                     16:         .global _P_ADDC
                     17: _P_ADDC:
                     18:        sethi   %hi(_global_precision), %o3
                     19:        ldsh    [%o3+%lo(_global_precision)], %o3
                     20:        and     %o2, 1, %o2
                     21:        dec     %o3
                     22:        sll     %o3, 2, %o3
                     23:        ld      [%o0+%o3], %o4
                     24: add_loop:
                     25:        ld      [%o1+%o3], %o5
                     26:        subcc   %g0, %o2, %g0
                     27:        addxcc  %o4, %o5, %o4
                     28:        addx    %g0, %g0, %o2
                     29:        st      %o4, [%o0+%o3]
                     30:        subcc   %o3, 4, %o3
                     31:        bge,a   add_loop
                     32:        ld      [%o0+%o3], %o4
                     33:        retl
                     34:        mov     %o2, %o0                ! return carry
                     35: 
                     36: 
                     37:         .proc   4
                     38:         .global _P_SUBB
                     39: _P_SUBB:
                     40:        sethi   %hi(_global_precision), %o3
                     41:        ldsh    [%o3+%lo(_global_precision)], %o3
                     42:        and     %o2, 1, %o2
                     43:        dec     %o3
                     44:        sll     %o3, 2, %o3
                     45:        ld      [%o0+%o3], %o4
                     46: sub_loop:
                     47:        ld      [%o1+%o3], %o5
                     48:        subcc   %g0, %o2, %g0
                     49:        subxcc  %o4, %o5, %o4
                     50:        addx    %g0, %g0, %o2
                     51:        st      %o4, [%o0+%o3]
                     52:        subcc   %o3, 4, %o3
                     53:        bge,a   sub_loop
                     54:        ld      [%o0+%o3], %o4
                     55:        retl
                     56:        mov     %o2, %o0
                     57: 
                     58: 
                     59:         .proc   4
                     60:         .global _P_ROTL
                     61: _P_ROTL:
                     62:        sethi   %hi(_global_precision), %o3
                     63:        ldsh    [%o3+%lo(_global_precision)], %o3
                     64:        and     %o1, 1, %o1
                     65:        dec     %o3
                     66:        sll     %o3, 2, %o3
                     67:        ld      [%o0+%o3], %o4
                     68: rot_loop:
                     69:        sll     %o4, 1, %o5
                     70:        or      %o5, %o1, %o5
                     71:        st      %o5, [%o0+%o3]
                     72:        srl     %o4, 31, %o1
                     73:        subcc   %o3, 4, %o3
                     74:        bge,a   rot_loop
                     75:        ld      [%o0+%o3], %o4
                     76:        retl
                     77:        mov     %o1, %o0
                     78: 
                     79:        .seg    "data"
                     80: 

unix.superglobalmegacorp.com

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