aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2004-10-08 13:55:11 +0000
committerDaniel Jacobowitz <drow@false.org>2004-10-08 13:55:11 +0000
commitd2b2c203e1ff2daf8cfeab0906084f9389e66246 (patch)
treeb26661436e0599afd2ba5bd7f05a8e346fec61bb /gas/testsuite
parentd67a454c81bb8395692342d517d935e8bcaa882e (diff)
downloadfsf-binutils-gdb-d2b2c203e1ff2daf8cfeab0906084f9389e66246.zip
fsf-binutils-gdb-d2b2c203e1ff2daf8cfeab0906084f9389e66246.tar.gz
fsf-binutils-gdb-d2b2c203e1ff2daf8cfeab0906084f9389e66246.tar.bz2
bfd/
* config.bfd: Include 64-bit support for i[3-7]86-*-solaris2*. * elf64-x86-64.c (elf64_x86_64_section_from_shdr): New function. (elf_backend_section_from_shdr): Define. binutils/ * readelf.c (get_x86_64_section_type_name): New function. (get_section_type_name): Use it. gas/ * config/tc-i386.c: Include "elf/x86-64.h". (i386_elf_section_type): New function. * config/tc-i386.h (md_elf_section_type): Define. (i386_elf_section_type): New prototype. gas/testsuite/ * gas/i386/i386.exp: Don't run divide test for targets where '/' is a comment. Run x86-64-unwind for 64-bit ELF targets. * gas/i386/x86-64-unwind.d, gas/i386/x86-64-unwind.s: New. include/ * elf/common.h (PT_SUNW_EH_FRAME): Define. * elf/x86-64.h (SHT_X86_64_UNWIND): Define. ld/ * configure.tgt: Include elf_x86_64 for i[3-7]86-*-solaris2*.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/ChangeLog6
-rw-r--r--gas/testsuite/gas/i386/i386.exp20
-rw-r--r--gas/testsuite/gas/i386/x86-64-unwind.d28
-rw-r--r--gas/testsuite/gas/i386/x86-64-unwind.s8
4 files changed, 61 insertions, 1 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index f0c2c52..cde6dd6 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2004-10-08 Daniel Jacobowitz <dan@debian.org>
+
+ * gas/i386/i386.exp: Don't run divide test for targets where '/'
+ is a comment. Run x86-64-unwind for 64-bit ELF targets.
+ * gas/i386/x86-64-unwind.d, gas/i386/x86-64-unwind.s: New.
+
2004-10-08 Alan Modra <amodra@bigpond.net.au>
* gas/cfi/cfi-common-4.d: Correct for 64 bit targets.
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 31b0b94..2fe7ffb 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -55,7 +55,17 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
run_dump_test "sse2"
run_dump_test "sub"
run_dump_test "prescott"
- run_dump_test "divide"
+
+ if {![istarget "*-*-aix*"]
+ && (![is_elf_format] || [istarget "*-*-linux*"]
+ || [istarget "*-*-netbsd*"]
+ || [istarget "*-*-freebsd*"]
+ || [istarget "*-*-netware*"])} {
+ # Don't run this test on targets where '/' starts comments.
+ run_dump_test "divide"
+ }
+
+
run_dump_test "padlock"
# These tests require support for 8 and 16 bit relocs,
@@ -107,5 +117,13 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
run_dump_test "x86-64-rip"
run_list_test "x86-64-inval" "-al"
+ # For ELF targets verify that @unwind works.
+ if { ([istarget "*-*-elf*"] || [istarget "*-*-linux*"]
+ || [istarget "*-*-solaris2.*"])
+ && ![istarget *-*-linux*aout*]
+ && ![istarget *-*-linux*oldld*] } then {
+ run_dump_test "x86-64-unwind"
+ }
+
set ASFLAGS "$old_ASFLAGS"
}
diff --git a/gas/testsuite/gas/i386/x86-64-unwind.d b/gas/testsuite/gas/i386/x86-64-unwind.d
new file mode 100644
index 0000000..6ce528a
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-unwind.d
@@ -0,0 +1,28 @@
+#readelf: -S
+#name: x86-64 unwind
+
+There are 8 section headers, starting at offset 0x80:
+
+Section Headers:
+ \[Nr\] Name Type Address Offset
+ Size EntSize Flags Link Info Align
+ \[ 0\] NULL 0000000000000000 00000000
+ 0000000000000000 0000000000000000 0 0 0
+ \[ 1\] \.text PROGBITS 0000000000000000 00000040
+ 0000000000000000 0000000000000000 AX 0 0 4
+ \[ 2\] \.data PROGBITS 0000000000000000 00000040
+ 0000000000000000 0000000000000000 WA 0 0 4
+ \[ 3\] \.bss NOBITS 0000000000000000 00000040
+ 0000000000000000 0000000000000000 WA 0 0 4
+ \[ 4\] \.eh_frame X86_64_UNWIND 0000000000000000 00000040
+ 0000000000000008 0000000000000000 A 0 0 1
+ \[ 5\] \.shstrtab STRTAB 0000000000000000 00000048
+ 0000000000000036 0000000000000000 0 0 1
+ \[ 6\] \.symtab SYMTAB 0000000000000000 00000280
+ 0000000000000078 0000000000000018 7 5 8
+ \[ 7\] \.strtab STRTAB 0000000000000000 000002f8
+ 0000000000000001 0000000000000000 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
+ I \(info\), L \(link order\), G \(group\), x \(unknown\)
+ O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
diff --git a/gas/testsuite/gas/i386/x86-64-unwind.s b/gas/testsuite/gas/i386/x86-64-unwind.s
new file mode 100644
index 0000000..da6f0f5
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-unwind.s
@@ -0,0 +1,8 @@
+# First create .eh_frame with the right type.
+.section .eh_frame,"a",@unwind
+.long 0
+
+# Verify that switching back into .eh_frame does not change
+# its type.
+.section .eh_frame
+.long 1