e22f8b7c8c
Switch the license of all .f and .f90 files to GPLv3. Switch the license of all .s and .S files to GPLv3.
81 lines
2.5 KiB
Text
81 lines
2.5 KiB
Text
# Copyright 2004, 2007 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/>.
|
|
#
|
|
# This file is part of the gdb testsuite.
|
|
|
|
if $tracelevel {
|
|
strace $tracelevel
|
|
}
|
|
|
|
# Test rs6000 prologue analyzer.
|
|
|
|
set prms_id 0
|
|
set bug_id 0
|
|
|
|
if ![istarget "powerpc-*-aix*"] then {
|
|
verbose "Skipping powerpc-aix prologue tests."
|
|
return
|
|
}
|
|
|
|
set testfile "powerpc-aix-prologue"
|
|
set srcfile ${testfile}.c
|
|
set binfile ${objdir}/${subdir}/${testfile}
|
|
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {}] != "" } {
|
|
unsupported "Testcase compile failed."
|
|
return -1
|
|
}
|
|
|
|
gdb_exit
|
|
gdb_start
|
|
gdb_reinitialize_dir $srcdir/$subdir
|
|
gdb_load ${binfile}
|
|
|
|
# Insert a breakpoint in FUNCTION and verifies that the breakpoint was
|
|
# inserted at the expected location. EXPECTED_LOCATION should be an
|
|
# offset relative to the function start address.
|
|
proc insert_breakpoint {function expected_location} {
|
|
global gdb_prompt
|
|
global expect_out
|
|
global hex
|
|
|
|
set address ""
|
|
|
|
# Insert a breakpoint using the given function name, and extract
|
|
# the breakpoint address for the output.
|
|
gdb_test_multiple "break $function" "set breakpoint in $function" {
|
|
-re "Breakpoint 1 at ($hex).*$gdb_prompt $" {
|
|
set address $expect_out(1,string)
|
|
}
|
|
default {
|
|
fail "set breakpoint in $function"
|
|
}
|
|
}
|
|
|
|
# If we managed to get the breakpoing address, then check that
|
|
# we inserted it at the expected location by examining the
|
|
# instruction at that address (we're not interested in the insn
|
|
# itself, but rather at the address printed at the begining of
|
|
# the instruction).
|
|
if { $address != "" } then {
|
|
gdb_test "x /i $address" \
|
|
".*<$function\\+$expected_location>.*" \
|
|
"check $function breakpoint address"
|
|
} else {
|
|
fail "unable to compute breakpoint address"
|
|
}
|
|
|
|
}
|
|
|
|
insert_breakpoint "li_stw" 12
|