diff options
Diffstat (limited to 'gdb/testsuite/gdb.arch/ppc64-atomic-inst.S')
-rw-r--r-- | gdb/testsuite/gdb.arch/ppc64-atomic-inst.S | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.arch/ppc64-atomic-inst.S b/gdb/testsuite/gdb.arch/ppc64-atomic-inst.S new file mode 100644 index 0000000..15ccfd9 --- /dev/null +++ b/gdb/testsuite/gdb.arch/ppc64-atomic-inst.S @@ -0,0 +1,61 @@ +/* This file is part of GDB, the GNU debugger. + + Copyright 2008-2014 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + + .align 2 + .globl main +#if _CALL_ELF == 2 + .type main,@function +main: +#else + .section ".opd","aw" + .align 3 +main: + .quad .main,.TOC.@tocbase,0 + .size main,.-main + .previous + .globl .main + .type .main,@function +.main: +#endif + + li 0,0 + addi 4,1,-8 + + stw 0,0(4) +1: lwarx 5,0,4 + cmpwi 5,0 + bne 2f + addi 5,5,1 + stwcx. 5,0,4 + bne 1b + + std 0,0(4) +2: ldarx 5,0,4 + cmpdi 5,0 + bne 3f + addi 5,5,1 + stdcx. 5,0,4 + bne 1b + +3: li 3,0 + blr + +#if _CALL_ELF == 2 + .size main,.-main +#else + .size .main,.-.main +#endif |