1# Copyright 2003 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 2 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, write to the Free Software 15# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 16 17# Please email any bugs, comments, and/or additions to this file to: 18# bug-gdb@gnu.org 19 20# This file is part of the gdb testsuite. 21 22if $tracelevel { 23 strace $tracelevel 24} 25 26# 27# Test floating-point related functionality. 28# 29 30set prms_id 0 31set bug_id 0 32 33set testfile "run" 34set srcfile ${testfile}.c 35set binfile ${objdir}/${subdir}/${testfile} 36if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { 37 gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." 38} 39 40gdb_exit 41gdb_start 42gdb_reinitialize_dir $srcdir/$subdir 43gdb_load ${binfile} 44 45# Set it up at a breakpoint so we have its registers. 46 47if ![runto_main] then { 48 perror "couldn't run to breakpoint" 49 continue 50} 51 52# Test "info float". 53 54if { [istarget "alpha*-*-*"] } then { 55 gdb_test "info float" "f0.*" "info float" 56} elseif { [istarget "arm*-*-*"] || \ 57 [istarget "xscale*-*-*"] || \ 58 [istarget "strongarm*-*-*"] } then { 59 gdb_test "info float" "Software FPU type.*mask:.*flags:.*" "info float" 60} elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } then { 61 gdb_test "info float" "R7:.*Status Word:.*Opcode:.*" "info float" 62} elseif [istarget "ia64-*-*"] then { 63 gdb_test "info float" "f0.*f1.*f127.*" "info float" 64} elseif [istarget "m68k-*-*"] then { 65 gdb_test "info float" "fp0.*fp1.*fp7.*" "info float" 66} elseif [istarget "mips*-*-*"] then { 67 gdb_test "info float" "f0:.*flt:.*dbl:.*" "info float" 68} elseif [istarget "s390*-*-*"] then { 69 gdb_test "info float" "fpc.*f0.*f1.*f15.*" "info float" 70} elseif [istarget "sh*-*"] then { 71 # SH may or may not have an FPU 72 gdb_test_multiple "info float" "info float" { 73 -re "fpul.*fr0.*fr1.*fr15.*$gdb_prompt $" { 74 pass "info float (with FPU)" 75 } 76 -re "No floating.point info available for this processor.*" { 77 pass "info float (without FPU)" 78 } 79 } 80} elseif [istarget "hppa*-*"] then { 81 gdb_test "info float" "fr4.*fr4R.*fr31R.*" "info float" 82} else { 83 gdb_test "info float" "No floating.point info available for this processor." "info float (unknown target)" 84} 85