OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-6.8/] [gdb/] [testsuite/] [gdb.base/] [pc-fp.exp] - Blame information for rev 157

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 24 jeremybenn
#   Copyright 2002, 2004, 2007, 2008 Free Software Foundation, Inc.
2
 
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.
7
#
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.
12
#
13
# You should have received a copy of the GNU General Public License
14
# along with this program.  If not, see .
15
 
16
# Please email any bugs, comments, and/or additions to this file to:
17
# bug-gdb@prep.ai.mit.edu
18
 
19
# The doco makes reference to built-in registers -- $pc and $fp.  If
20
# the ISA contains registers by that name then they should be
21
# displayed.  If the ISA contains registers identified as being
22
# equivalent, but have different names, then GDB will provide these as
23
# aliases.  If the ISA doesn't provide any equivalent registers, then
24
# GDB will provide registers that map onto the frame's PC and FP.
25
 
26
if $tracelevel then {
27
    strace $tracelevel
28
}
29
 
30
#
31
# test running programs
32
#
33
set prms_id 0
34
set bug_id 0
35
 
36
set testfile "pc-fp"
37
set srcfile ${testfile}.c
38
set binfile ${objdir}/${subdir}/${testfile}
39
 
40
if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } {
41
    untested pc-fp.exp
42
    return -1
43
}
44
 
45
if [get_compiler_info ${binfile}] {
46
    return -1
47
}
48
 
49
gdb_exit
50
gdb_start
51
gdb_reinitialize_dir $srcdir/$subdir
52
gdb_load ${binfile}
53
 
54
if ![runto_main] then {
55
    perror "couldn't run to breakpoint"
56
    continue
57
}
58
 
59
proc get_valueofx { fmt exp default } {
60
    global gdb_prompt
61
    send_gdb "print${fmt} ${exp}\n"
62
    gdb_expect {
63
        -re "\\$\[0-9\]* = (0x\[0-9a-zA-Z\]+).*$gdb_prompt $" {
64
            set val $expect_out(1,string)
65
            pass "get value of ${exp}"
66
        }
67
        timeout {
68
            set val ${default}
69
            fail "get value of ${exp} (timeout)"
70
        }
71
    }
72
    return ${val}
73
}
74
 
75
# Get the value of PC and FP
76
 
77
set valueof_pc [get_valueofx "/x" "\$pc" "0"]
78
set valueof_fp [get_valueofx "/x" "\$fp" "0"]
79
 
80
# Check that the sequence $REGNAME -> REGNUM -> $REGNAME works.  Use
81
# display since that encodes and then decodes the expression parameter
82
# (and hence uses the mechanisms we're trying to test).
83
 
84
gdb_test "display/i \$pc" "1: x/i +\\\$pc( +|\r\n)${valueof_pc}.*"
85
gdb_test "display/w \$fp" "2: x/xw +\\\$fp +${valueof_fp}.*"
86
 
87
# FIXME: cagney/2002-09-04: Should also check that ``info registers
88
# $pc'' et.al.'' come back with the same value as the above displays
89
# and a print --- assuming that is that people agree to such behavour.
90
# Need to re-write default_print_registers_info() for it to work (and
91
# such a rewrite is on the reggroups branch).
92
 
93
# gdb_test "info registers \$pc" "${valueof_pc}"
94
# gdb_test "info registers \$fp" "${valueof_fp}"

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.