• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.text
2
3.globl	RC4
4.type	RC4,@function
5.align	64
6RC4:
7	stm	%r6,%r11,6*4(%r15)
8	llgfr	%r3,%r3
9	llgc	%r6,0(%r2)
10	llgc	%r10,1(%r2)
11	la	%r6,1(%r6)
12	nill	%r6,0xff
13	srlg	%r1,%r3,3
14	ltgr	%r1,%r1
15	llgc	%r8,2(%r6,%r2)
16	jz	.Lshort
17	j	.Loop8
18
19.align	64
20.Loop8:
21	la	%r10,0(%r10,%r8)	# 0
22	nill	%r10,255
23	la	%r7,1(%r6)
24	nill	%r7,255
25	llgc	%r11,2(%r10,%r2)
26	stc	%r8,2(%r10,%r2)
27	llgc	%r9,2(%r7,%r2)
28	stc	%r11,2(%r6,%r2)
29	cr	%r7,%r10
30	jne	.Lcmov0
31	la	%r9,0(%r8)
32.Lcmov0:
33	la	%r11,0(%r11,%r8)
34	nill	%r11,255
35	la	%r10,0(%r10,%r9)	# 1
36	nill	%r10,255
37	la	%r6,1(%r7)
38	nill	%r6,255
39	llgc	%r0,2(%r11,%r2)
40	llgc	%r11,2(%r10,%r2)
41	stc	%r9,2(%r10,%r2)
42	llgc	%r8,2(%r6,%r2)
43	stc	%r11,2(%r7,%r2)
44	cr	%r6,%r10
45	jne	.Lcmov1
46	la	%r8,0(%r9)
47.Lcmov1:
48	la	%r11,0(%r11,%r9)
49	nill	%r11,255
50	la	%r10,0(%r10,%r8)	# 2
51	nill	%r10,255
52	la	%r7,1(%r6)
53	nill	%r7,255
54	sllg	%r0,%r0,8
55	ic	%r0,2(%r11,%r2)
56	llgc	%r11,2(%r10,%r2)
57	stc	%r8,2(%r10,%r2)
58	llgc	%r9,2(%r7,%r2)
59	stc	%r11,2(%r6,%r2)
60	cr	%r7,%r10
61	jne	.Lcmov2
62	la	%r9,0(%r8)
63.Lcmov2:
64	la	%r11,0(%r11,%r8)
65	nill	%r11,255
66	la	%r10,0(%r10,%r9)	# 3
67	nill	%r10,255
68	la	%r6,1(%r7)
69	nill	%r6,255
70	sllg	%r0,%r0,8
71	ic	%r0,2(%r11,%r2)
72	llgc	%r11,2(%r10,%r2)
73	stc	%r9,2(%r10,%r2)
74	llgc	%r8,2(%r6,%r2)
75	stc	%r11,2(%r7,%r2)
76	cr	%r6,%r10
77	jne	.Lcmov3
78	la	%r8,0(%r9)
79.Lcmov3:
80	la	%r11,0(%r11,%r9)
81	nill	%r11,255
82	la	%r10,0(%r10,%r8)	# 4
83	nill	%r10,255
84	la	%r7,1(%r6)
85	nill	%r7,255
86	sllg	%r0,%r0,8
87	ic	%r0,2(%r11,%r2)
88	llgc	%r11,2(%r10,%r2)
89	stc	%r8,2(%r10,%r2)
90	llgc	%r9,2(%r7,%r2)
91	stc	%r11,2(%r6,%r2)
92	cr	%r7,%r10
93	jne	.Lcmov4
94	la	%r9,0(%r8)
95.Lcmov4:
96	la	%r11,0(%r11,%r8)
97	nill	%r11,255
98	la	%r10,0(%r10,%r9)	# 5
99	nill	%r10,255
100	la	%r6,1(%r7)
101	nill	%r6,255
102	sllg	%r0,%r0,8
103	ic	%r0,2(%r11,%r2)
104	llgc	%r11,2(%r10,%r2)
105	stc	%r9,2(%r10,%r2)
106	llgc	%r8,2(%r6,%r2)
107	stc	%r11,2(%r7,%r2)
108	cr	%r6,%r10
109	jne	.Lcmov5
110	la	%r8,0(%r9)
111.Lcmov5:
112	la	%r11,0(%r11,%r9)
113	nill	%r11,255
114	la	%r10,0(%r10,%r8)	# 6
115	nill	%r10,255
116	la	%r7,1(%r6)
117	nill	%r7,255
118	sllg	%r0,%r0,8
119	ic	%r0,2(%r11,%r2)
120	llgc	%r11,2(%r10,%r2)
121	stc	%r8,2(%r10,%r2)
122	llgc	%r9,2(%r7,%r2)
123	stc	%r11,2(%r6,%r2)
124	cr	%r7,%r10
125	jne	.Lcmov6
126	la	%r9,0(%r8)
127.Lcmov6:
128	la	%r11,0(%r11,%r8)
129	nill	%r11,255
130	la	%r10,0(%r10,%r9)	# 7
131	nill	%r10,255
132	la	%r6,1(%r7)
133	nill	%r6,255
134	sllg	%r0,%r0,8
135	ic	%r0,2(%r11,%r2)
136	llgc	%r11,2(%r10,%r2)
137	stc	%r9,2(%r10,%r2)
138	llgc	%r8,2(%r6,%r2)
139	stc	%r11,2(%r7,%r2)
140	cr	%r6,%r10
141	jne	.Lcmov7
142	la	%r8,0(%r9)
143.Lcmov7:
144	la	%r11,0(%r11,%r9)
145	nill	%r11,255
146	lg	%r9,0(%r4)
147	sllg	%r0,%r0,8
148	la	%r4,8(%r4)
149	ic	%r0,2(%r11,%r2)
150	xgr	%r0,%r9
151	stg	%r0,0(%r5)
152	la	%r5,8(%r5)
153	brctg	%r1,.Loop8
154
155.Lshort:
156	lghi	%r0,7
157	ngr	%r3,%r0
158	jz	.Lexit
159	j	.Loop1
160
161.align	16
162.Loop1:
163	la	%r10,0(%r10,%r8)
164	nill	%r10,255
165	llgc	%r11,2(%r10,%r2)
166	stc	%r8,2(%r10,%r2)
167	stc	%r11,2(%r6,%r2)
168	ar	%r11,%r8
169	ahi	%r6,1
170	nill	%r11,255
171	nill	%r6,255
172	llgc	%r0,0(%r4)
173	la	%r4,1(%r4)
174	llgc	%r11,2(%r11,%r2)
175	llgc	%r8,2(%r6,%r2)
176	xr	%r0,%r11
177	stc	%r0,0(%r5)
178	la	%r5,1(%r5)
179	brct	%r3,.Loop1
180
181.Lexit:
182	ahi	%r6,-1
183	stc	%r6,0(%r2)
184	stc	%r10,1(%r2)
185	lm	%r6,%r11,6*4(%r15)
186	br	%r14
187.size	RC4,.-RC4
188.string	"RC4 for s390x, CRYPTOGAMS by <appro@openssl.org>"
189
190.globl	RC4_set_key
191.type	RC4_set_key,@function
192.align	64
193RC4_set_key:
194	stm	%r6,%r8,6*4(%r15)
195	lhi	%r0,256
196	la	%r1,0
197	sth	%r1,0(%r2)
198.align	4
199.L1stloop:
200	stc	%r1,2(%r1,%r2)
201	la	%r1,1(%r1)
202	brct	%r0,.L1stloop
203
204	lghi	%r7,-256
205	lr	%r0,%r3
206	la	%r8,0
207	la	%r1,0
208.align	16
209.L2ndloop:
210	llgc	%r5,2+256(%r7,%r2)
211	llgc	%r6,0(%r8,%r4)
212	la	%r1,0(%r1,%r5)
213	la	%r7,1(%r7)
214	la	%r1,0(%r1,%r6)
215	nill	%r1,255
216	la	%r8,1(%r8)
217	tml	%r7,255
218	llgc	%r6,2(%r1,%r2)
219	stc	%r6,2+256-1(%r7,%r2)
220	stc	%r5,2(%r1,%r2)
221	jz	.Ldone
222	brct	%r0,.L2ndloop
223	lr	%r0,%r3
224	la	%r8,0
225	j	.L2ndloop
226.Ldone:
227	lm	%r6,%r8,6*4(%r15)
228	br	%r14
229.size	RC4_set_key,.-RC4_set_key
230
231.globl	RC4_options
232.type	RC4_options,@function
233.align	16
234RC4_options:
235	larl	%r2,.Loptions
236	br	%r14
237.size	RC4_options,.-RC4_options
238.section	.rodata
239.Loptions:
240.align	8
241.string	"rc4(8x,char)"
242