ghashp8-ppc.S revision 1.1 1 .machine "any"
2
3 .text
4
5 .globl gcm_init_p8
6 .type gcm_init_p8,@function
7 .align 5
8 gcm_init_p8:
9 lis 0,0xfff0
10 li 8,0x10
11 mfspr 12,256
12 li 9,0x20
13 mtspr 256,0
14 li 10,0x30
15 .long 0x7D202699
16
17 vspltisb 8,-16
18 vspltisb 5,1
19 vaddubm 8,8,8
20 vxor 4,4,4
21 vor 8,8,5
22 vsldoi 8,8,4,15
23 vsldoi 6,4,5,1
24 vaddubm 8,8,8
25 vspltisb 7,7
26 vor 8,8,6
27 vspltb 6,9,0
28 vsl 9,9,5
29 vsrab 6,6,7
30 vand 6,6,8
31 vxor 9,9,6
32
33 vsldoi 9,9,9,8
34 vsldoi 8,4,8,8
35 vsldoi 11,4,9,8
36 vsldoi 10,9,4,8
37
38 .long 0x7D001F99
39 .long 0x7D681F99
40 .long 0x7D291F99
41 .long 0x7D4A1F99
42
43 mtspr 256,12
44 blr
45 .long 0
46 .byte 0,12,0x14,0,0,0,2,0
47 .long 0
48
49
50 .globl gcm_gmult_p8
51 .type gcm_gmult_p8,@function
52 .align 5
53 gcm_gmult_p8:
54 lis 0,0xfff8
55 li 8,0x10
56 mfspr 12,256
57 li 9,0x20
58 mtspr 256,0
59 li 10,0x30
60 .long 0x7C601E99
61
62 .long 0x7D682699
63
64 .long 0x7D292699
65
66 .long 0x7D4A2699
67
68 .long 0x7D002699
69
70 vxor 4,4,4
71
72 .long 0x10035CC8
73 .long 0x10234CC8
74 .long 0x104354C8
75
76 .long 0x10E044C8
77
78 vsldoi 5,1,4,8
79 vsldoi 6,4,1,8
80 vxor 0,0,5
81 vxor 2,2,6
82
83 vsldoi 0,0,0,8
84 vxor 0,0,7
85
86 vsldoi 6,0,0,8
87 .long 0x100044C8
88 vxor 6,6,2
89 vxor 0,0,6
90
91
92 .long 0x7C001F99
93
94 mtspr 256,12
95 blr
96 .long 0
97 .byte 0,12,0x14,0,0,0,2,0
98 .long 0
99
100
101 .globl gcm_ghash_p8
102 .type gcm_ghash_p8,@function
103 .align 5
104 gcm_ghash_p8:
105 lis 0,0xfff8
106 li 8,0x10
107 mfspr 12,256
108 li 9,0x20
109 mtspr 256,0
110 li 10,0x30
111 .long 0x7C001E99
112
113 .long 0x7D682699
114
115 .long 0x7D292699
116
117 .long 0x7D4A2699
118
119 .long 0x7D002699
120
121 vxor 4,4,4
122
123 .long 0x7C602E99
124 addi 5,5,16
125 subi 6,6,16
126
127 vxor 3,3,0
128 b .Loop
129
130 .align 5
131 .Loop:
132 subic 6,6,16
133 .long 0x10035CC8
134 subfe. 0,0,0
135 .long 0x10234CC8
136 and 0,0,6
137 .long 0x104354C8
138 add 5,5,0
139
140 .long 0x10E044C8
141
142 vsldoi 5,1,4,8
143 vsldoi 6,4,1,8
144 vxor 0,0,5
145 vxor 2,2,6
146
147 vsldoi 0,0,0,8
148 vxor 0,0,7
149 .long 0x7C602E99
150 addi 5,5,16
151
152 vsldoi 6,0,0,8
153 .long 0x100044C8
154
155 vxor 6,6,2
156 vxor 3,3,6
157 vxor 3,3,0
158 beq .Loop
159
160 vxor 0,0,6
161
162 .long 0x7C001F99
163
164 mtspr 256,12
165 blr
166 .long 0
167 .byte 0,12,0x14,0,0,0,4,0
168 .long 0
169
170
171 .byte 71,72,65,83,72,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
172 .align 2
173 .align 2
174