1 # Copyright
2004, 2005 Free Software Foundation
, Inc.
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.
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.
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.
17 # Please email
any bugs
, comments
, and
/or additions to this file to
:
20 # This file is part of the gdb testsuite.
29 if ![istarget
"i?86-*-*"] then {
30 verbose
"Skipping i386 SSE tests."
34 set testfile
"i386-sse"
35 set srcfile $
{testfile
}.c
36 set binfile $
{objdir
}/$
{subdir
}/$
{testfile
}
38 if [get_compiler_info $
{binfile
}] {
42 set additional_flags
""
43 if [test_compiler_info gcc
*] {
44 set additional_flags
"additional_flags=-msse"
47 if { [gdb_compile
"${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug $additional_flags]] != "" } {
48 unsupported
"compiler does not support SSE"
54 gdb_reinitialize_dir $srcdir
/$subdir
57 if ![runto_main
] then {
61 send_gdb
"print have_sse ()\r"
63 -re
".. = 1\r\n$gdb_prompt " {
64 pass
"check whether processor supports SSE"
66 -re
".. = 0\r\n$gdb_prompt " {
67 verbose
"processor does not support SSE; skipping SSE tests"
70 -re
".*$gdb_prompt $" {
71 fail
"check whether processor supports SSE"
74 fail
"check whether processor supports SSE (timeout)"
78 gdb_test
"break [gdb_get_line_number "first breakpoint here"]" \
79 "Breakpoint .* at .*i386-sse.c.*" \
80 "set breakpoint in main"
81 gdb_continue_to_breakpoint
"continue to first breakpoint in main"
83 foreach r
{0 1 2 3 4 5 6 7} {
84 gdb_test
"print \$xmm$r.v4_float" \
85 ".. = \\{$r, $r.25, $r.5, $r.75\\}.*" \
86 "check contents of %xmm$r"
89 foreach r
{0 1 2 3 4 5 6 7} {
90 gdb_test
"set var \$xmm$r.v4_float\[0\] = $r + 10" "" "set %xmm$r"
93 gdb_test
"break [gdb_get_line_number "second breakpoint here"]" \
94 "Breakpoint .* at .*i386-sse.c.*" \
95 "set breakpoint in main"
96 gdb_continue_to_breakpoint
"continue to second breakpoint in main"
98 foreach r
{0 1 2 3 4 5 6 7} {
99 gdb_test
"print data\[$r\]" \
100 ".. = \\{f = \\{[expr $r + 10], $r.25, $r.5, $r.75\\}\\}.*" \
101 "check contents of data\[$r\]"