Annotation of pgp/src/sparc.s, revision 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.