blob: 6b8a204427e25dcd4c0f98d051d127f304ebd615 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
.pred.safe_across_calls p1-p5,p16-p63
.text
.align 16
.global q_atomic_test_and_set_int#
.proc q_atomic_test_and_set_int#
q_atomic_test_and_set_int:
.prologue
.body
mov ar.ccv=r33
;;
cmpxchg4.acq r34=[r32],r34,ar.ccv
;;
cmp4.eq p6, p7 = r33, r34
;;
(p6) addl r8 = 1, r0
(p7) mov r8 = r0
br.ret.sptk.many b0
.endp q_atomic_test_and_set_int#
.align 16
.global q_atomic_test_and_set_ptr#
.proc q_atomic_test_and_set_ptr#
q_atomic_test_and_set_ptr:
.prologue
.body
mov ar.ccv=r33
;;
cmpxchg8.acq r34=[r32],r34,ar.ccv
;;
cmp.eq p6, p7 = r33, r34
;;
(p6) addl r8 = 1, r0
(p7) mov r8 = r0
br.ret.sptk.many b0
.endp q_atomic_test_and_set_ptr#
|