~ubuntu-branches/ubuntu/vivid/golang/vivid

« back to all changes in this revision

Viewing changes to src/pkg/sync/atomic/asm_amd64.s

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2013-08-20 14:06:23 UTC
  • mfrom: (14.1.23 saucy-proposed)
  • Revision ID: package-import@ubuntu.com-20130820140623-b414jfxi3m0qkmrq
Tags: 2:1.1.2-2ubuntu1
* Merge from Debian unstable (LP: #1211749, #1202027). Remaining changes:
  - 016-armhf-elf-header.patch: Use correct ELF header for armhf binaries.
  - d/control,control.cross: Update Breaks/Replaces for Ubuntu
    versions to ensure smooth upgrades, regenerate control file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
// Use of this source code is governed by a BSD-style
3
3
// license that can be found in the LICENSE file.
4
4
 
 
5
// +build !race
 
6
 
5
7
TEXT ·CompareAndSwapInt32(SB),7,$0
6
8
        JMP     ·CompareAndSwapUint32(SB)
7
9
 
8
10
TEXT ·CompareAndSwapUint32(SB),7,$0
9
 
        MOVQ    valptr+0(FP), BP
 
11
        MOVQ    addr+0(FP), BP
10
12
        MOVL    old+8(FP), AX
11
13
        MOVL    new+12(FP), CX
12
14
        LOCK
13
15
        CMPXCHGL        CX, 0(BP)
14
 
        SETEQ   ret+16(FP)
 
16
        SETEQ   swapped+16(FP)
15
17
        RET
16
18
 
17
19
TEXT ·CompareAndSwapUintptr(SB),7,$0
24
26
        JMP     ·CompareAndSwapUint64(SB)
25
27
 
26
28
TEXT ·CompareAndSwapUint64(SB),7,$0
27
 
        MOVQ    valptr+0(FP), BP
 
29
        MOVQ    addr+0(FP), BP
28
30
        MOVQ    old+8(FP), AX
29
31
        MOVQ    new+16(FP), CX
30
32
        LOCK
31
33
        CMPXCHGQ        CX, 0(BP)
32
 
        SETEQ   ret+24(FP)
 
34
        SETEQ   swapped+24(FP)
33
35
        RET
34
36
 
35
37
TEXT ·AddInt32(SB),7,$0
36
38
        JMP     ·AddUint32(SB)
37
39
 
38
40
TEXT ·AddUint32(SB),7,$0
39
 
        MOVQ    valptr+0(FP), BP
 
41
        MOVQ    addr+0(FP), BP
40
42
        MOVL    delta+8(FP), AX
41
43
        MOVL    AX, CX
42
44
        LOCK
43
45
        XADDL   AX, 0(BP)
44
46
        ADDL    AX, CX
45
 
        MOVL    CX, ret+16(FP)
 
47
        MOVL    CX, new+16(FP)
46
48
        RET
47
49
 
48
50
TEXT ·AddUintptr(SB),7,$0
52
54
        JMP     ·AddUint64(SB)
53
55
 
54
56
TEXT ·AddUint64(SB),7,$0
55
 
        MOVQ    valptr+0(FP), BP
 
57
        MOVQ    addr+0(FP), BP
56
58
        MOVQ    delta+8(FP), AX
57
59
        MOVQ    AX, CX
58
60
        LOCK
59
61
        XADDQ   AX, 0(BP)
60
62
        ADDQ    AX, CX
61
 
        MOVQ    CX, ret+16(FP)
 
63
        MOVQ    CX, new+16(FP)
62
64
        RET
63
65
 
64
66
TEXT ·LoadInt32(SB),7,$0
65
67
        JMP     ·LoadUint32(SB)
66
68
 
67
69
TEXT ·LoadUint32(SB),7,$0
68
 
        MOVQ    addrptr+0(FP), AX
 
70
        MOVQ    addr+0(FP), AX
69
71
        MOVL    0(AX), AX
70
 
        MOVL    AX, ret+8(FP)
 
72
        MOVL    AX, val+8(FP)
71
73
        RET
72
74
 
73
75
TEXT ·LoadInt64(SB),7,$0
74
76
        JMP     ·LoadUint64(SB)
75
77
 
76
78
TEXT ·LoadUint64(SB),7,$0
77
 
        MOVQ    addrptr+0(FP), AX
 
79
        MOVQ    addr+0(FP), AX
78
80
        MOVQ    0(AX), AX
79
 
        MOVQ    AX, ret+8(FP)
 
81
        MOVQ    AX, val+8(FP)
80
82
        RET
81
83
 
82
84
TEXT ·LoadUintptr(SB),7,$0
83
85
        JMP     ·LoadPointer(SB)
84
86
 
85
87
TEXT ·LoadPointer(SB),7,$0
86
 
        MOVQ    addrptr+0(FP), AX
 
88
        MOVQ    addr+0(FP), AX
87
89
        MOVQ    0(AX), AX
88
 
        MOVQ    AX, ret+8(FP)
 
90
        MOVQ    AX, val+8(FP)
89
91
        RET
90
92
 
91
93
TEXT ·StoreInt32(SB),7,$0
92
94
        JMP     ·StoreUint32(SB)
93
95
 
94
96
TEXT ·StoreUint32(SB),7,$0
95
 
        MOVQ    addrptr+0(FP), BP
 
97
        MOVQ    addr+0(FP), BP
96
98
        MOVL    val+8(FP), AX
97
99
        XCHGL   AX, 0(BP)
98
100
        RET
101
103
        JMP     ·StoreUint64(SB)
102
104
 
103
105
TEXT ·StoreUint64(SB),7,$0
104
 
        MOVQ    addrptr+0(FP), BP
 
106
        MOVQ    addr+0(FP), BP
105
107
        MOVQ    val+8(FP), AX
106
108
        XCHGQ   AX, 0(BP)
107
109
        RET
110
112
        JMP     ·StorePointer(SB)
111
113
 
112
114
TEXT ·StorePointer(SB),7,$0
113
 
        MOVQ    addrptr+0(FP), BP
 
115
        MOVQ    addr+0(FP), BP
114
116
        MOVQ    val+8(FP), AX
115
117
        XCHGQ   AX, 0(BP)
116
118
        RET