PR: 2089
[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         and     $16,7,$0
94         bic     $17,7,$at
95         beq     $at,.Little
96         beq     $0,.Laligned
97
98 .Little:
99         ldq_u   $1,0($16)
100         mov     $16,$2
101 .Lalign:
102         mskbl   $1,$16,$1
103         lda     $16,1($16)
104         subq    $17,1,$17
105         subq    $0,1,$0
106         beq     $17,.Lout
107         bne     $0,.Lalign
108 .Lout:  stq_u   $1,0($2)
109         beq     $17,.Ldone
110         bic     $17,7,$at
111         mov     $17,$0
112         beq     $at,.Little
113
114 .Laligned:
115         stq     $31,0($16)
116         subq    $17,8,$17
117         lda     $16,8($16)
118         bic     $17,7,$at
119         bne     $at,.Laligned
120         beq     $17,.Ldone
121         mov     $17,$0
122         br      .Little
123 .Ldone: ret     ($26)
124 .end    OPENSSL_cleanse