-# Copyright (C) 1996 Free Software Foundation, Inc.
+# Copyright (C) 1996, 2002, 2003, 2004, 2005, 2007
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
# Please email any bugs, comments, and/or additions to this file to:
-# DejaGnu@cygnus.com
+# dejagnu@gnu.org
# Written by Cygnus Support.
while 1 {
expect {
-re "^ +\[0-9\]+ 0000 8F05\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0002 8E05\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0004 8605\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0006 8705\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0008 8B05\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 000a 8905\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 000c 8105\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 000e 8305\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0010 8205\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0012 8A05\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0014 8005\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0016 8805\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0018 8405\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 001a 8C05\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 001c 8105\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 001e 8905\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0020 8205\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0022 8A05\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0024 8505\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0026 8D05\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0002 FEFD\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0004 E6FD\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0006 D7FD\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0008 CBFD\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 000a B9FD\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 000c A1FD\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 000e 93FD\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0010 82FD\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0012 FAF5\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0014 E0F5\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0016 D8F5\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0018 C4F5\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 001a BCF5\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 001c A1F5\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 001e 99F5\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0020 82F5\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0022 FAED\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0024 E5ED\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0026 DDED\[^\n\]*\n" { set x [expr $x+1] }
-re "\[^\n\]*\n" { }
timeout { perror "timeout\n"; break }
eof { break }
# of instructions (as these tests to).
while 1 {
expect {
- -re "^ +\[0-9\]+ 0000\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0004\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0006\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0000 802F0000\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0004 6500\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0006 BF07FAFF\[^\n\]*\n" { set x [expr $x+1] }
-re "\[^\n\]*\n" { }
timeout { perror "timeout\n"; break }
eof { break }
# of instructions (as these tests to).
while 1 {
expect {
- -re "^ +\[0-9\]+ 0000\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0002\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0006\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 000a\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 000c\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0010\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0012\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0000 4531\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0002 C5360700\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0006 2530\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0008 0531\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 000a 85360700\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 000e 2531\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0010 A5360700\[^\n\]*\n" { set x [expr $x+1] }
-re "\[^\n\]*\n" { }
timeout { perror "timeout\n"; break }
eof { break }
# of instructions (as these tests to).
while 1 {
expect {
- -re "^ +\[0-9\]+ 0000\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0004\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0008\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 000c\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 000e\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0010\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0012\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0016\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 001a\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 001e\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0020\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0022\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0000 05370500\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0004 25370400\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0008 25370500\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 000c 4033\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 000e 4034\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0010 4035\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0012 462F0500\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0016 662F0400\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 001a 662F0500\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 001e C033\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0020 C034\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0022 4135\[^\n\]*\n" { set x [expr $x+1] }
-re "\[^\n\]*\n" { }
timeout { perror "timeout\n"; break }
eof { break }
# of instructions (as these tests to).
while 1 {
expect {
- -re "^ +\[0-9\]+ 0000\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0004\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0008\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 000c\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 000e\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0012\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0016\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 001a\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 001e\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0000 E0076001\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0004 E0876001\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0008 E0072001\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 000c 0000\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 000e E0074001\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0012 E0070001\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0016 FF070001\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 001a E72F2000\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 001e E53F4000\[^\n\]*\n" { set x [expr $x+1] }
-re "\[^\n\]*\n" { }
timeout { perror "timeout\n"; break }
eof { break }
# of instructions (as these tests to).
while 1 {
expect {
- -re "^ +\[0-9\]+ 0000\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0002\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0004\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0008\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0000 0530\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0002 0532\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0004 25360700\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0008 45360700\[^\n\]*\n" { set x [expr $x+1] }
-re "\[^\n\]*\n" { }
timeout { perror "timeout\n"; break }
eof { break }
gas_finish
# Did we find what we were looking for? If not, flunk it.
- if [expr $x==4] then { pass $testname } else { setup_xfail "*-*-*" ; fail $testname }
+ if [expr $x==4] then { pass $testname } else { fail $testname }
+}
+
+proc do_hilo {} {
+ set testname "hilo.s: hilo tests"
+ set x 0
+
+ gas_start "hilo.s" "-al"
+
+ # Instead of having a variable for each match string just increment the
+ # total number of matches seen. That's simpler when testing large numbers
+ # of instructions (as these tests to).
+ while 1 {
+ expect {
+ -re "^ +\[0-9\]+ 0000 200EEFBE\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0004 410EAEDE\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0008 410EADDE\[^\n\]*\n" { set x [expr $x+1] }
+ -re "\[^\n\]*\n" { }
+ timeout { perror "timeout\n"; break }
+ eof { break }
+ }
+ }
+
+ # This was intended to do any cleanup necessary. It kinda looks like it
+ # isn't needed, but just in case, please keep it in for now.
+ gas_finish
+
+ # Did we find what we were looking for? If not, flunk it.
+ if [expr $x==3] then { pass $testname } else { fail $testname }
+}
+
+
+proc do_simple_reloc_tests {} {
+ set testname "reloc.s: Test for proper relocations (part 2)"
+ set x 0
+
+ if [gas_test_old "reloc.s" "" "Test for proper relocation (part 1)"] then {
+ objdump_start_no_subdir "a.out" "-r"
+
+ while 1 {
+ expect {
+ -re "^00000002\[^\n\]*R_V850_LO16\[^\n\]*\n"
+ { set x [expr $x+1] }
+ -re "^00000006\[^\n\]*R_V850_HI16_S\[^\n\]*\n"
+ { set x [expr $x+1] }
+ -re "^0000000a\[^\n\]*R_V850_HI16\[^\n\]*\n"
+ { set x [expr $x+1] }
+ -re "^0000000e\[^\n\]*R_V850_ZDA_16_16_OFFSET\[^\n\]*\n"
+ { set x [expr $x+1] }
+ -re "^00000012\[^\n\]*R_V850_TDA_16_16_OFFSET\[^\n\]*\n"
+ { set x [expr $x+1] }
+ -re "^00000016\[^\n\]*R_V850_SDA_16_16_OFFSET\[^\n\]*\n"
+ { set x [expr $x+1] }
+ -re "\[^\n\]*\n" { }
+ timeout { perror "timeout\n"; break }
+ eof { break }
+ }
+ }
+ }
+
+ # This was intended to do any cleanup necessary. It kinda looks like it
+ # isn't needed, but just in case, please keep it in for now.
+ objdump_finish
+
+ # Did we find what we were looking for? If not, flunk it.
+ if [expr $x==6] then { pass $testname } else { fail $testname }
}
if [istarget v850*-*-*] then {
do_mem
do_misc
do_move
+
+ # Make sure we handle lo() hi() and hi0() correctly.
+ do_hilo
+
+ # Check for proper relocs on lo, hi, hi0, zdaoff, tdaoff and sdaoff
+ # expressions
+ do_simple_reloc_tests
+
+ gas_test "hilo2.s" "" "" "hi/lo regression test"
+ gas_test "fepsw.s" "" "" "eqsw regression test"
+
+ gas_test_error "range.s" "-mwarn-signed-overflow" "Check for range error on byte load/store"
+ run_dump_test "v850e1"
+ run_dump_test "split-lo16"
}