ppc64-isa207-atomic-inst.S revision 1.1.1.5 1 1.1 christos /* This file is part of GDB, the GNU debugger.
2 1.1 christos
3 1.1.1.5 christos Copyright 2017-2024 Free Software Foundation, Inc.
4 1.1 christos
5 1.1 christos This program is free software; you can redistribute it and/or modify
6 1.1 christos it under the terms of the GNU General Public License as published by
7 1.1 christos the Free Software Foundation; either version 3 of the License, or
8 1.1 christos (at your option) any later version.
9 1.1 christos
10 1.1 christos This program is distributed in the hope that it will be useful,
11 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of
12 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 1.1 christos GNU General Public License for more details.
14 1.1 christos
15 1.1 christos You should have received a copy of the GNU General Public License
16 1.1 christos along with this program. If not, see <http://www.gnu.org/licenses/>. */
17 1.1 christos
18 1.1 christos .align 2
19 1.1 christos .globl test_atomic_sequences
20 1.1 christos #if _CALL_ELF == 2
21 1.1 christos .type test_atomic_sequences,@function
22 1.1 christos test_atomic_sequences:
23 1.1 christos #else
24 1.1 christos .section ".opd","aw"
25 1.1 christos .align 3
26 1.1 christos test_atomic_sequences:
27 1.1 christos .quad .test_atomic_sequences,.TOC.@tocbase,0
28 1.1 christos .size test_atomic_sequences,.-test_atomic_sequences
29 1.1 christos .previous
30 1.1 christos .globl .test_atomic_sequences
31 1.1 christos .type .test_atomic_sequences,@function
32 1.1 christos .test_atomic_sequences:
33 1.1 christos #endif
34 1.1 christos
35 1.1 christos li 0,0
36 1.1 christos addi 4,1,-8
37 1.1 christos
38 1.1 christos stb 0,0(4)
39 1.1 christos 1: lbarx 5,0,4
40 1.1 christos cmpdi 5,0
41 1.1 christos bne 2f
42 1.1 christos addi 5,5,1
43 1.1 christos stbcx. 5,0,4
44 1.1 christos bne 1b
45 1.1 christos
46 1.1 christos sth 0,0(4)
47 1.1 christos 2: lharx 5,0,4
48 1.1 christos cmpdi 5,0
49 1.1 christos bne 3f
50 1.1 christos addi 5,5,1
51 1.1 christos sthcx. 5,0,4
52 1.1 christos bne 2b
53 1.1 christos
54 1.1 christos #ifdef __BIG_ENDIAN__
55 1.1 christos li 10,0
56 1.1 christos li 6,0
57 1.1 christos li 7,1
58 1.1 christos std 10,-16(1)
59 1.1 christos li 10,1
60 1.1 christos std 10,-8(1)
61 1.1 christos addi 4,1,-16
62 1.1 christos #else
63 1.1 christos std 9,40(1)
64 1.1 christos li 9,1
65 1.1 christos addi 4,1,32
66 1.1 christos std 9,32(1)
67 1.1 christos mr 8,9
68 1.1 christos ld 3,8(4)
69 1.1 christos #endif
70 1.1 christos 3: lqarx 10,0,4
71 1.1 christos #ifdef __BIG_ENDIAN__
72 1.1 christos li 8,0
73 1.1 christos li 9,2
74 1.1 christos mr 5,10
75 1.1 christos xor 10,11,7
76 1.1 christos xor 5,5,6
77 1.1 christos or. 4,5,10
78 1.1 christos bne 4f
79 1.1 christos addi 10,1,-16
80 1.1 christos stqcx. 8,0,10
81 1.1 christos #else
82 1.1 christos xor 9,11,8
83 1.1 christos mr 6,11
84 1.1 christos xor 11,10,3
85 1.1 christos or. 0,9,11
86 1.1 christos bne 4f
87 1.1 christos li 14,0
88 1.1 christos li 15,2
89 1.1 christos stqcx. 14,0,4
90 1.1 christos #endif
91 1.1 christos bne 3b
92 1.1 christos
93 1.1 christos 4: li 3,0
94 1.1 christos blr
95 1.1 christos
96 1.1 christos #if _CALL_ELF == 2
97 1.1 christos .size test_atomic_sequences,.-test_atomic_sequences
98 1.1 christos #else
99 1.1 christos .size .test_atomic_sequences,.-.test_atomic_sequences
100 1.1 christos #endif
101 1.1.1.4 christos .section .note.GNU-stack,"",@progbits
102