1
2	.align 2
3	.globl q_atomic_test_and_set_int
4	.globl .q_atomic_test_and_set_int
5q_atomic_test_and_set_int:
6.q_atomic_test_and_set_int:
7	lwarx  6,0,3
8        xor.   6,6,4
9        bne    $+12
10	stwcx. 5,0,3
11	bne-   $-16
12        subfic 3,6,0
13        adde   3,3,6
14	blr
15LT..q_atomic_test_and_set_int:
16	.long 0
17	.byte 0,9,32,64,0,0,3,0
18	.long 0
19	.long LT..q_atomic_test_and_set_int-.q_atomic_test_and_set_int
20	.short 25
21	.byte "q_atomic_test_and_set_int"
22	.align 2
23
24	.align 2
25	.globl q_atomic_test_and_set_acquire_int
26	.globl .q_atomic_test_and_set_acquire_int
27q_atomic_test_and_set_acquire_int:
28.q_atomic_test_and_set_acquire_int:
29	lwarx  6,0,3
30        xor.   6,6,4
31        bne    $+16
32	stwcx. 5,0,3
33	bne-   $-16
34        isync
35        subfic 3,6,0
36        adde   3,3,6
37	blr
38LT..q_atomic_test_and_set_acquire_int:
39	.long 0
40	.byte 0,9,32,64,0,0,3,0
41	.long 0
42	.long LT..q_atomic_test_and_set_acquire_int-.q_atomic_test_and_set_acquire_int
43	.short 33
44	.byte "q_atomic_test_and_set_acquire_int"
45	.align 2
46
47	.align 2
48	.globl q_atomic_test_and_set_release_int
49	.globl .q_atomic_test_and_set_release_int
50q_atomic_test_and_set_release_int:
51.q_atomic_test_and_set_release_int:
52	lwarx  6,0,3
53        xor.   6,6,4
54        bne    $+12
55	stwcx. 5,0,3
56	bne-   $-16
57        subfic 3,6,0
58        adde   3,3,6
59	blr
60LT..q_atomic_test_and_set_release_int:
61	.long 0
62	.byte 0,9,32,64,0,0,3,0
63	.long 0
64	.long LT..q_atomic_test_and_set_release_int-.q_atomic_test_and_set_release_int
65	.short 33
66	.byte "q_atomic_test_and_set_release_int"
67	.align 2
68
69	.align 2
70	.globl q_atomic_test_and_set_ptr
71	.globl .q_atomic_test_and_set_ptr
72q_atomic_test_and_set_ptr:
73.q_atomic_test_and_set_ptr:
74	lwarx  6,0,3
75        xor.   6,6,4
76        bne    $+12
77	stwcx. 5,0,3
78	bne-   $-16
79        subfic 3,6,0
80        adde   3,3,6
81	blr
82LT..q_atomic_test_and_set_ptr:
83	.long 0
84	.byte 0,9,32,64,0,0,3,0
85	.long 0
86	.long LT..q_atomic_test_and_set_ptr-.q_atomic_test_and_set_ptr
87	.short 25
88	.byte "q_atomic_test_and_set_ptr"
89	.align 2
90
91	.align 2
92	.globl q_atomic_test_and_set_acquire_ptr
93	.globl .q_atomic_test_and_set_acquire_ptr
94q_atomic_test_and_set_acquire_ptr:
95.q_atomic_test_and_set_acquire_ptr:
96	lwarx  6,0,3
97        xor.   6,6,4
98        bne    $+16
99	stwcx. 5,0,3
100	bne-   $-16
101        isync
102        subfic 3,6,0
103        adde   3,3,6
104	blr
105LT..q_atomic_test_and_set_acquire_ptr:
106	.long 0
107	.byte 0,9,32,64,0,0,3,0
108	.long 0
109	.long LT..q_atomic_test_and_set_acquire_ptr-.q_atomic_test_and_set_acquire_ptr
110	.short 25
111	.byte "q_atomic_test_and_set_acquire_ptr"
112	.align 2
113
114	.align 2
115	.globl q_atomic_test_and_set_release_ptr
116	.globl .q_atomic_test_and_set_release_ptr
117q_atomic_test_and_set_release_ptr:
118.q_atomic_test_and_set_release_ptr:
119	lwarx  6,0,3
120        xor.   6,6,4
121        bne    $+12
122	stwcx. 5,0,3
123	bne-   $-16
124        subfic 3,6,0
125        adde   3,3,6
126	blr
127LT..q_atomic_test_and_set_release_ptr:
128	.long 0
129	.byte 0,9,32,64,0,0,3,0
130	.long 0
131	.long LT..q_atomic_test_and_set_release_ptr-.q_atomic_test_and_set_release_ptr
132	.short 33
133	.byte "q_atomic_test_and_set_release_ptr"
134	.align 2
135
136	.align 2
137	.globl q_atomic_increment
138	.globl .q_atomic_increment
139q_atomic_increment:
140.q_atomic_increment:
141	lwarx  4,0,3
142	addi   4,4,1
143	stwcx. 4,0,3
144	bne-   $-12
145	mr     3,4
146	blr
147LT..q_atomic_increment:
148	.long 0
149	.byte 0,9,32,64,0,0,1,0
150	.long 0
151	.long LT..q_atomic_increment-.q_atomic_increment
152	.short 18
153	.byte "q_atomic_increment"
154	.align 2
155
156	.align 2
157	.globl q_atomic_decrement
158	.globl .q_atomic_decrement
159q_atomic_decrement:
160.q_atomic_decrement:
161	lwarx  4,0,3
162	subi   4,4,1
163	stwcx. 4,0,3
164	bne-   $-12
165	mr     3,4
166	blr
167LT..q_atomic_decrement:
168	.long 0
169	.byte 0,9,32,64,0,0,1,0
170	.long 0
171	.long LT..q_atomic_decrement-.q_atomic_decrement
172	.short 18
173	.byte "q_atomic_decrement"
174	.align 2
175
176	.align 2
177	.globl q_atomic_set_int
178	.globl .q_atomic_set_int
179q_atomic_set_int:
180.q_atomic_set_int:
181	lwarx  5,0,3
182	stwcx. 4,0,3
183	bne-   $-8
184	mr     3,5
185	blr
186LT..q_atomic_set_int:
187	.long 0
188	.byte 0,9,32,64,0,0,2,0
189	.long 0
190	.long LT..q_atomic_set_int-.q_atomic_set_int
191	.short 16
192	.byte "q_atomic_set_int"
193	.align 2
194
195	.align 2
196	.globl q_atomic_fetch_and_store_acquire_int
197	.globl .q_atomic_fetch_and_store_acquire_int
198q_atomic_fetch_and_store_acquire_int:
199.q_atomic_fetch_and_store_acquire_int:
200	lwarx  5,0,3
201	stwcx. 4,0,3
202	bne-   $-8
203        isync
204	mr     3,5
205	blr
206LT..q_atomic_fetch_and_store_acquire_int:
207	.long 0
208	.byte 0,9,32,64,0,0,2,0
209	.long 0
210	.long LT..q_atomic_fetch_and_store_acquire_int-.q_atomic_fetch_and_store_acquire_int
211	.short 16
212	.byte "q_atomic_fetch_and_store_acquire_int"
213	.align 2
214
215	.align 2
216	.globl q_atomic_fetch_and_store_release_int
217	.globl .q_atomic_fetch_and_store_release_int
218q_atomic_fetch_and_store_release_int:
219.q_atomic_fetch_and_store_release_int:
220	lwarx  5,0,3
221	stwcx. 4,0,3
222	bne-   $-8
223	mr     3,5
224	blr
225LT..q_atomic_fetch_and_store_release_int:
226	.long 0
227	.byte 0,9,32,64,0,0,2,0
228	.long 0
229	.long LT..q_atomic_fetch_and_store_release_int-.q_atomic_fetch_and_store_release_int
230	.short 16
231	.byte "q_atomic_fetch_and_store_release_int"
232	.align 2
233
234        .align 2
235	.globl q_atomic_set_ptr
236	.globl .q_atomic_set_ptr
237q_atomic_set_ptr:
238.q_atomic_set_ptr:
239	lwarx  5,0,3
240	stwcx. 4,0,3
241	bne-   $-8
242	mr     3,5
243	blr
244LT..q_atomic_set_ptr:
245	.long 0
246	.byte 0,9,32,64,0,0,2,0
247	.long 0
248	.long LT..q_atomic_set_ptr-.q_atomic_set_ptr
249	.short 16
250	.byte "q_atomic_set_ptr"
251	.align 2
252
253	.align 2
254	.globl q_atomic_fetch_and_store_acquire_ptr
255	.globl .q_atomic_fetch_and_store_acquire_ptr
256q_atomic_fetch_and_store_acquire_ptr:
257.q_atomic_fetch_and_store_acquire_ptr:
258	lwarx  5,0,3
259	stwcx. 4,0,3
260	bne-   $-8
261        isync
262	mr     3,5
263	blr
264LT..q_atomic_fetch_and_store_acquire_ptr:
265	.long 0
266	.byte 0,9,32,64,0,0,2,0
267	.long 0
268	.long LT..q_atomic_fetch_and_store_acquire_ptr-.q_atomic_fetch_and_store_acquire_ptr
269	.short 16
270	.byte "q_atomic_fetch_and_store_acquire_ptr"
271	.align 2
272
273        .align 2
274	.globl q_atomic_fetch_and_store_release_ptr
275	.globl .q_atomic_fetch_and_store_release_ptr
276q_atomic_fetch_and_store_release_ptr:
277.q_atomic_fetch_and_store_release_ptr:
278	lwarx  5,0,3
279	stwcx. 4,0,3
280	bne-   $-8
281	mr     3,5
282	blr
283LT..q_atomic_fetch_and_store_release_ptr:
284	.long 0
285	.byte 0,9,32,64,0,0,2,0
286	.long 0
287	.long LT..q_atomic_fetch_and_store_release_ptr-.q_atomic_fetch_and_store_release_ptr
288	.short 16
289	.byte "q_atomic_fetch_and_store_release_ptr"
290	.align 2
291
292	.align 2
293	.globl q_atomic_fetch_and_add_int
294	.globl .q_atomic_fetch_and_add_int
295q_atomic_fetch_and_add_int:
296.q_atomic_fetch_and_add_int:
297	lwarx  5,0,3
298	add    6,4,5
299	stwcx. 6,0,3
300	bne-   $-12
301	mr     3,5
302	blr
303LT..q_atomic_fetch_and_add_int:
304	.long 0
305	.byte 0,9,32,64,0,0,1,0
306	.long 0
307	.long LT..q_atomic_fetch_and_add_int-.q_atomic_fetch_and_add_int
308	.short 18
309	.byte "q_atomic_fetch_and_add_int"
310	.align 2
311
312	.align 2
313	.globl q_atomic_fetch_and_add_acquire_int
314	.globl .q_atomic_fetch_and_add_acquire_int
315q_atomic_fetch_and_add_acquire_int:
316.q_atomic_fetch_and_add_acquire_int:
317	lwarx  5,0,3
318	add    6,4,5
319	stwcx. 6,0,3
320	bne-   $-12
321        isync
322	mr     3,5
323	blr
324LT..q_atomic_fetch_and_add_acquire_int:
325	.long 0
326	.byte 0,9,32,64,0,0,1,0
327	.long 0
328	.long LT..q_atomic_fetch_and_add_acquire_int-.q_atomic_fetch_and_add_acquire_int
329	.short 18
330	.byte "q_atomic_fetch_and_add_acquire_int"
331	.align 2
332
333	.align 2
334	.globl q_atomic_fetch_and_add_release_int
335	.globl .q_atomic_fetch_and_add_release_int
336q_atomic_fetch_and_add_release_int:
337.q_atomic_fetch_and_add_release_int:
338	lwarx  5,0,3
339	add    6,4,5
340	stwcx. 6,0,3
341	bne-   $-12
342	mr     3,5
343	blr
344LT..q_atomic_fetch_and_add_release_int:
345	.long 0
346	.byte 0,9,32,64,0,0,1,0
347	.long 0
348	.long LT..q_atomic_fetch_and_add_release_int-.q_atomic_fetch_and_add_release_int
349	.short 34
350	.byte "q_atomic_fetch_and_add_release_int"
351	.align 2
352
353	.align 2
354	.globl q_atomic_fetch_and_add_ptr
355	.globl .q_atomic_fetch_and_add_ptr
356q_atomic_fetch_and_add_ptr:
357.q_atomic_fetch_and_add_ptr:
358	lwarx  5,0,3
359	add    6,4,5
360	stwcx. 6,0,3
361	bne-   $-12
362	mr     3,5
363	blr
364LT..q_atomic_fetch_and_add_ptr:
365	.long 0
366	.byte 0,9,32,64,0,0,1,0
367	.long 0
368	.long LT..q_atomic_fetch_and_add_ptr-.q_atomic_fetch_and_add_ptr
369	.short 26
370	.byte "q_atomic_fetch_and_add_ptr"
371	.align 2
372
373	.align 2
374	.globl q_atomic_fetch_and_add_acquire_ptr
375	.globl .q_atomic_fetch_and_add_acquire_ptr
376q_atomic_fetch_and_add_acquire_ptr:
377.q_atomic_fetch_and_add_acquire_ptr:
378	lwarx  5,0,3
379	add    6,4,5
380	stwcx. 6,0,3
381	bne-   $-12
382        isync
383	mr     3,5
384	blr
385LT..q_atomic_fetch_and_add_acquire_ptr:
386	.long 0
387	.byte 0,9,32,64,0,0,1,0
388	.long 0
389	.long LT..q_atomic_fetch_and_add_acquire_ptr-.q_atomic_fetch_and_add_acquire_ptr
390	.short 34
391	.byte "q_atomic_fetch_and_add_acquire_ptr"
392	.align 2
393
394	.align 2
395	.globl q_atomic_fetch_and_add_release_ptr
396	.globl .q_atomic_fetch_and_add_release_ptr
397q_atomic_fetch_and_add_release_ptr:
398.q_atomic_fetch_and_add_release_ptr:
399	lwarx  5,0,3
400	add    6,4,5
401	stwcx. 6,0,3
402	bne-   $-12
403	mr     3,5
404	blr
405LT..q_atomic_fetch_and_add_release_ptr:
406	.long 0
407	.byte 0,9,32,64,0,0,1,0
408	.long 0
409	.long LT..q_atomic_fetch_and_add_release_ptr-.q_atomic_fetch_and_add_release_ptr
410	.short 34
411	.byte "q_atomic_fetch_and_add_release_ptr"
412	.align 2
413
414_section_.text:
415	.long _section_.text
416