1 # Copyright
2008 Free Software Foundation
, Inc.
3 # This
program is free software
; you can redistribute it and
/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation
; either version
3 of the License
, or
6 #
(at your option
) any later version.
8 # This
program is distributed in the hope that it will be useful
,
9 # but WITHOUT
ANY WARRANTY
; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License
for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this
program; if not
, write to the Free Software
15 # Foundation
, Inc.
, 59 Temple Place
- Suite
330, Boston
, MA
02111-1307, USA.
17 # This file is part of the gdb testsuite.
23 # Test single stepping through atomic sequences beginning with
24 # a lwarx
/ldarx instruction and ending with a stwcx
/stdcx
30 if ![istarget
"powerpc64-*"] then {
31 verbose
"Skipping testing of powerpc64 single stepping over atomic sequences."
35 set testfile
"ppc64-atomic-inst"
36 set srcfile $
{testfile
}.c
37 set binfile $
{objdir
}/$
{subdir
}/$
{testfile
}
38 set compile_flags
"debug"
40 if { [gdb_compile
"${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [concat debug additional_flags=-m64]] != "" } {
41 unsupported
"Testcase compile failed."
47 gdb_reinitialize_dir $srcdir
/$subdir
50 if ![runto_main
] then {
51 perror
"Couldn't run to breakpoint"
55 set bp1
[gdb_get_line_number
"lwarx"]
56 gdb_breakpoint
"$bp1" "Breakpoint $decimal at $hex" \
57 "Set the breakpoint at the start of the sequence"
59 gdb_test
continue "Continuing.*Breakpoint $decimal.*" \
60 "Continue until breakpoint"
62 gdb_test next
".*__asm __volatile.*" \
63 "Step through the lwarx/stwcx sequence"
65 gdb_test next
".*return 0.*" \
66 "Step through the ldarx/stdcx sequence"