xref: /netbsd-src/crypto/external/bsd/openssl.old/lib/libcrypto/arch/powerpc/ghashp8-ppc.S (revision aef5eb5f59cdfe8314f1b5f78ac04eb144e44010)
1.machine	"any"
2
3.text
4
5.globl	gcm_init_p8
6.type	gcm_init_p8,@function
7.align	5
8gcm_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
53gcm_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
104gcm_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