~oif-team/ubuntu/natty/qt4-x11/xi2.1

« back to all changes in this revision

Viewing changes to src/corelib/arch/sparc/qatomic64.s

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-08-24 04:09:09 UTC
  • Revision ID: james.westby@ubuntu.com-20050824040909-xmxe9jfr4a0w5671
Tags: upstream-4.0.0
ImportĀ upstreamĀ versionĀ 4.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
        .section ".text"
 
2
 
 
3
        .align 4
 
4
        .type q_atomic_test_and_set_int,#function
 
5
        .global q_atomic_test_and_set_int
 
6
q_atomic_test_and_set_int:
 
7
        cas [%o0],%o1,%o2
 
8
        cmp %o1,%o2
 
9
        clr %o0
 
10
        retl
 
11
        move %icc,1,%o0
 
12
        .size q_atomic_test_and_set_int,.-q_atomic_test_and_set_int
 
13
 
 
14
        .align 4
 
15
        .type q_atomic_test_and_set_ptr,#function
 
16
        .global q_atomic_test_and_set_ptr
 
17
q_atomic_test_and_set_ptr:
 
18
        casx [%o0],%o1,%o2
 
19
        cmp %o1,%o2
 
20
        clr %o0
 
21
        retl
 
22
        move %icc,1,%o0
 
23
        .size q_atomic_test_and_set_ptr,.-q_atomic_test_and_set_ptr
 
24
 
 
25
        .align 4
 
26
        .type q_atomic_increment,#function
 
27
        .global q_atomic_increment
 
28
q_atomic_increment:
 
29
q_atomic_increment_retry:
 
30
        ld [%o0],%o3
 
31
        add %o3,1,%o4
 
32
        cas [%o0],%o3,%o4
 
33
        cmp %o3,%o4
 
34
        bne q_atomic_increment_retry
 
35
        nop
 
36
        cmp %o4,-1
 
37
        clr %o0
 
38
        retl
 
39
        movne %icc,1,%o0
 
40
        .size q_atomic_increment,.-q_atomic_increment
 
41
 
 
42
        .align 4
 
43
        .type q_atomic_decrement,#function
 
44
        .global q_atomic_decrement
 
45
q_atomic_decrement:
 
46
q_atomic_decrement_retry:
 
47
        ld [%o0],%o3
 
48
        add %o3,-1,%o4
 
49
        cas [%o0],%o3,%o4
 
50
        cmp %o3,%o4
 
51
        bne q_atomic_decrement_retry
 
52
        nop
 
53
        cmp %o4,1
 
54
        clr %o0
 
55
        retl
 
56
        movne %icc,1,%o0
 
57
        .size q_atomic_decrement,.-q_atomic_decrement
 
58
 
 
59
        .align 4
 
60
        .type q_atomic_set_int,#function
 
61
        .global q_atomic_set_int
 
62
q_atomic_set_int:
 
63
q_atomic_set_int_retry:
 
64
        ld [%o0],%o2
 
65
        cas [%o0],%o2,%o1
 
66
        cmp %o2,%o1
 
67
        bne q_atomic_set_int_retry
 
68
        nop
 
69
        retl
 
70
        mov %o1,%o0
 
71
        .size q_atomic_set_int,.-q_atomic_set_int
 
72
 
 
73
        .align 4
 
74
        .type q_atomic_set_ptr,#function
 
75
        .global q_atomic_set_ptr
 
76
q_atomic_set_ptr:
 
77
q_atomic_set_ptr_retry:
 
78
        ldx [%o0],%o2
 
79
        casx [%o0],%o2,%o1
 
80
        cmp %o2,%o1
 
81
        bne q_atomic_set_ptr_retry
 
82
        nop
 
83
        retl
 
84
        mov %o1,%o0
 
85
        .size q_atomic_set_ptr,.-q_atomic_set_ptr
 
86