2011-07-26 Pedro Alves <pedro@codesourcery.com>
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.base / pc-fp.exp
CommitLineData
7b6bb8da 1# Copyright 2002, 2004, 2007, 2008, 2009, 2010, 2011
4c38e0a4 2# Free Software Foundation, Inc.
e36180d7
AC
3
4# This program is free software; you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by
e22f8b7c 6# the Free Software Foundation; either version 3 of the License, or
e36180d7 7# (at your option) any later version.
e22f8b7c 8#
e36180d7
AC
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU General Public License for more details.
e22f8b7c 13#
e36180d7 14# You should have received a copy of the GNU General Public License
e22f8b7c 15# along with this program. If not, see <http://www.gnu.org/licenses/>.
e36180d7 16
e36180d7
AC
17# The doco makes reference to built-in registers -- $pc and $fp. If
18# the ISA contains registers by that name then they should be
19# displayed. If the ISA contains registers identified as being
20# equivalent, but have different names, then GDB will provide these as
21# aliases. If the ISA doesn't provide any equivalent registers, then
22# GDB will provide registers that map onto the frame's PC and FP.
23
24if $tracelevel then {
25 strace $tracelevel
26}
27
28#
29# test running programs
30#
e36180d7
AC
31
32set testfile "pc-fp"
33set srcfile ${testfile}.c
34set binfile ${objdir}/${subdir}/${testfile}
35
fc91c6c2 36if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } {
b60f0898
JB
37 untested pc-fp.exp
38 return -1
e36180d7
AC
39}
40
41if [get_compiler_info ${binfile}] {
42 return -1
43}
44
45gdb_exit
46gdb_start
47gdb_reinitialize_dir $srcdir/$subdir
48gdb_load ${binfile}
49
50if ![runto_main] then {
51 perror "couldn't run to breakpoint"
52 continue
53}
54
e36180d7
AC
55
56# Get the value of PC and FP
57
faafb047
PM
58set valueof_pc [get_hexadecimal_valueof "\$pc" "0"]
59set valueof_fp [get_hexadecimal_valueof "\$fp" "0"]
e36180d7
AC
60
61# Check that the sequence $REGNAME -> REGNUM -> $REGNAME works. Use
62# display since that encodes and then decodes the expression parameter
63# (and hence uses the mechanisms we're trying to test).
64
2b28d209 65gdb_test "display/i \$pc" "1: x/i +\\\$pc( +|\r\n)=> ${valueof_pc}.*"
e36180d7
AC
66gdb_test "display/w \$fp" "2: x/xw +\\\$fp +${valueof_fp}.*"
67
68# FIXME: cagney/2002-09-04: Should also check that ``info registers
69# $pc'' et.al.'' come back with the same value as the above displays
70# and a print --- assuming that is that people agree to such behavour.
71# Need to re-write default_print_registers_info() for it to work (and
72# such a rewrite is on the reggroups branch).
73
74# gdb_test "info registers \$pc" "${valueof_pc}"
75# gdb_test "info registers \$fp" "${valueof_fp}"
This page took 1.103645 seconds and 4 git commands to generate.