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