]>
Commit | Line | Data |
---|---|---|
3a58abaf AM |
1 | 2007-11-04 Jan Kratochvil <jan.kratochvil@redhat.com> |
2 | ||
3 | * gdb.arch/ppc-clobbered-registers-O2.exp: `powerpc64' changed to | |
4 | `powerpc*'. | |
5 | ||
6 | Testcase for: | |
7 | ||
8 | http://sourceware.org/ml/gdb-patches/2007-09/msg00228.html | |
9 | ||
10 | 2007-10-21 Luis Machado <luisgpm@br.ibm.com> | |
11 | ||
12 | * rs6000-tdep.c (ppc_dwarf2_frame_init_reg): New function. | |
13 | * (rs6000_gdbarch_init): Install ppc_dwarf2_frame_init_reg as | |
14 | default dwarf2_frame_set_init_reg function. | |
15 | ||
16 | --- /dev/null 1 Jan 1970 00:00:00 -0000 | |
17 | +++ ./gdb/testsuite/gdb.arch/ppc-clobbered-registers-O2.c 3 Nov 2007 22:22:28 -0000 | |
18 | @@ -0,0 +1,21 @@ | |
19 | + | |
20 | +unsigned * __attribute__((noinline)) | |
21 | +start_sequence (unsigned * x, unsigned * y) | |
22 | +{ | |
23 | + return (unsigned *)0xdeadbeef; | |
24 | +}; | |
25 | + | |
26 | +unsigned __attribute__((noinline)) | |
27 | +gen_movsd (unsigned * operand0, unsigned * operand1) | |
28 | +{ | |
29 | + return *start_sequence(operand0, operand1); | |
30 | +} | |
31 | + | |
32 | +int main(void) | |
33 | +{ | |
34 | + unsigned x, y; | |
35 | + | |
36 | + x = 13; | |
37 | + y = 14; | |
38 | + return (int)gen_movsd (&x, &y); | |
39 | +} | |
40 | --- /dev/null 1 Jan 1970 00:00:00 -0000 | |
41 | +++ ./gdb/testsuite/gdb.arch/ppc-clobbered-registers-O2.exp 3 Nov 2007 22:22:28 -0000 | |
42 | @@ -0,0 +1,61 @@ | |
43 | +# Copyright 2006 Free Software Foundation, Inc. | |
44 | +# | |
45 | +# This program is free software; you can redistribute it and/or modify | |
46 | +# it under the terms of the GNU General Public License as published by | |
47 | +# the Free Software Foundation; either version 2 of the License, or | |
48 | +# (at your option) any later version. | |
49 | +# | |
50 | +# This program is distributed in the hope that it will be useful, | |
51 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
52 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
53 | +# GNU General Public License for more details. | |
54 | +# | |
55 | +# You should have received a copy of the GNU General Public License | |
56 | +# along with this program; if not, write to the Free Software | |
57 | +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
58 | +# | |
59 | +# This file is part of the gdb testsuite. | |
60 | + | |
61 | +if $tracelevel { | |
62 | + strace $tracelevel | |
63 | +} | |
64 | + | |
65 | +# Test displaying call clobbered registers in optimized binaries for ppc. | |
66 | +# GDB should not show incorrect values. | |
67 | + | |
68 | +set prms_id 0 | |
69 | +set bug_id 0 | |
70 | + | |
71 | +if ![istarget "powerpc*-*"] then { | |
72 | + verbose "Skipping powerpc* call clobbered registers testing." | |
73 | + return | |
74 | +} | |
75 | + | |
76 | +set testfile "ppc-clobbered-registers-O2" | |
77 | +set srcfile ${testfile}.c | |
78 | +set binfile ${objdir}/${subdir}/${testfile} | |
79 | +set compile_flags "debug additional_flags=-O2" | |
80 | + | |
81 | +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable ${compile_flags}] != "" } { | |
82 | + unsupported "Testcase compile failed." | |
83 | + return -1 | |
84 | +} | |
85 | + | |
86 | +gdb_exit | |
87 | +gdb_start | |
88 | +gdb_reinitialize_dir $srcdir/$subdir | |
89 | +gdb_load ${binfile} | |
90 | + | |
91 | +if ![runto_main] then { | |
92 | + perror "Couldn't run to breakpoint" | |
93 | + continue | |
94 | +} | |
95 | + | |
96 | +gdb_test "b start_sequence" ".*Breakpoint 2 at.*line 6.*" \ | |
97 | + "Insert breakpoint at problematic function" | |
98 | + | |
99 | +gdb_test continue ".*Breakpoint 2.*in start_sequence.*" \ | |
100 | + "Run until problematic function" | |
101 | + | |
102 | +gdb_test backtrace ".*operand0=<value optimized out>.*operand1=<value optimized out>.*" \ | |
103 | + "Check value of call clobbered registers" |