3fa77a0ade5b1415080cbe95e8468d51e88a4471
[openssl.git] / crypto / alphacpuid.s
1 .text
2
3 .set    noat
4
5 .globl  OPENSSL_cpuid_setup
6 .ent    OPENSSL_cpuid_setup
7 OPENSSL_cpuid_setup:
8         .frame  $30,0,$26
9         .prologue 0
10         ret     ($26)
11 .end    OPENSSL_cpuid_setup
12
13 .globl  OPENSSL_wipe_cpu
14 .ent    OPENSSL_wipe_cpu
15 OPENSSL_wipe_cpu:
16         .frame  $30,0,$26
17         .prologue 0
18         clr     $1
19         clr     $2
20         clr     $3
21         clr     $4
22         clr     $5
23         clr     $6
24         clr     $7
25         clr     $8
26         clr     $16
27         clr     $17
28         clr     $18
29         clr     $19
30         clr     $20
31         clr     $21
32         clr     $22
33         clr     $23
34         clr     $24
35         clr     $25
36         clr     $27
37         clr     $at
38         clr     $29
39         fclr    $f0
40         fclr    $f1
41         fclr    $f10
42         fclr    $f11
43         fclr    $f12
44         fclr    $f13
45         fclr    $f14
46         fclr    $f15
47         fclr    $f16
48         fclr    $f17
49         fclr    $f18
50         fclr    $f19
51         fclr    $f20
52         fclr    $f21
53         fclr    $f22
54         fclr    $f23
55         fclr    $f24
56         fclr    $f25
57         fclr    $f26
58         fclr    $f27
59         fclr    $f28
60         fclr    $f29
61         fclr    $f30
62         mov     $sp,$0
63         ret     ($26)
64 .end    OPENSSL_wipe_cpu
65
66 .globl  OPENSSL_atomic_add
67 .ent    OPENSSL_atomic_add
68 OPENSSL_atomic_add:
69         .frame  $30,0,$26
70         .prologue 0
71 1:      ldl_l   $0,($16)
72         addl    $0,$17,$1
73         stl_c   $1,($16)
74         beq     $1,1b
75         addl    $0,$17,$0
76         ret     ($26)
77 .end    OPENSSL_atomic_add
78
79 .globl  OPENSSL_rdtsc
80 .ent    OPENSSL_rdtsc
81 OPENSSL_rdtsc:
82         .frame  $30,0,$26
83         .prologue 0
84         rpcc    $0
85         ret     ($26)
86 .end    OPENSSL_rdtsc
87
88 .globl  OPENSSL_cleanse
89 .ent    OPENSSL_cleanse
90 OPENSSL_cleanse:
91         .frame  $30,0,$26
92         .prologue 0
93         beq     $17,.Ldone
94         and     $16,7,$0
95         bic     $17,7,$at
96         beq     $at,.Little
97         beq     $0,.Laligned
98
99 .Little:
100         ldq_u   $1,0($16)
101         mov     $16,$2
102 .Lalign:
103         mskbl   $1,$16,$1
104         lda     $16,1($16)
105         subq    $17,1,$17
106         subq    $0,1,$0
107         beq     $17,.Lout
108         bne     $0,.Lalign
109 .Lout:  stq_u   $1,0($2)
110         beq     $17,.Ldone
111         bic     $17,7,$at
112         mov     $17,$0
113         beq     $at,.Little
114
115 .Laligned:
116         stq     $31,0($16)
117         subq    $17,8,$17
118         lda     $16,8($16)
119         bic     $17,7,$at
120         bne     $at,.Laligned
121         beq     $17,.Ldone
122         mov     $17,$0
123         br      .Little
124 .Ldone: ret     ($26)
125 .end    OPENSSL_cleanse