This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Specify architecture for SPARC gas tests


Hi jose,

> I just checked and you can set OBJDUMPFLAGS before running
> run_dump_test.  What about doing something like this in sparc.exp:
>
> proc set_tests_arch {arch} {
>   global OBJDUMPFLAGS
>
>   if [istarget "sparc-solaris*"] {
>      set OBJDUMPFLAGS "-msparc:$arch"
>   }
> }
>
> [...]
>
> set_tests_mach v9m8
> run_dump_test "on"
> run_list_test "on-diag" "-64"
> ; ... other M8 tests
>
> set_tests_mach v9m
> run_dump_test "xcrypto"
> ; ... other M7 tests
>
> wdyt?

works for me.  The following patch passed testing on both
sparc-sun-solaris2.11 and sparcv9-sun-solaris2.11.

At the occasion, I noticed that the ldtxa hadn't been run at all
before.  It's now included as well.

Ok for mainline?


Now, only two (quite weird) failures remain:

FAIL: sparc LDM/STM/LDMA/STMA

regexp_diff match failure
regexp "^  1c:  c7 88 64 66     ldmuh  \[ %g1 \+ 0x66 \], %g3$"
line   "  1c:   c7 88 64 66     ldmuh  [ 0x66 + %g1 ], %g3"
regexp_diff match failure
regexp "^  20:  c7 88 64 66     ldmuh  \[ %g1 \+ 0x66 \], %g3$"
line   "  20:   c7 88 64 66     ldmuh  [ 0x66 + %g1 ], %g3"
regexp_diff match failure
regexp "^  30:  c7 88 68 66     ldmsw  \[ %g1 \+ 0x66 \], %g3$"
line   "  30:   c7 88 68 66     ldmsw  [ 0x66 + %g1 ], %g3"
regexp_diff match failure
regexp "^  34:  c7 88 68 66     ldmsw  \[ %g1 \+ 0x66 \], %g3$"
line   "  34:   c7 88 68 66     ldmsw  [ 0x66 + %g1 ], %g3"
regexp_diff match failure
regexp "^  44:  c7 88 6c 66     ldmuw  \[ %g1 \+ 0x66 \], %g3$"
line   "  44:   c7 88 6c 66     ldmuw  [ 0x66 + %g1 ], %g3"
regexp_diff match failure
regexp "^  48:  c7 88 6c 66     ldmuw  \[ %g1 \+ 0x66 \], %g3$"
line   "  48:   c7 88 6c 66     ldmuw  [ 0x66 + %g1 ], %g3"

FAIL: sparc LDMF/STMF/LDMFA/STMFA

regexp_diff match failure
regexp "^  54:  c3 a8 7c 66     stmfd  %f32, \[ %g1 \+ 0x66 \]$"
line   "  54:   c3 a8 7c 66     stmfd  %f32, [ 0x66 + %g1 ]"
regexp_diff match failure
regexp "^  58:  c3 a8 7c 66     stmfd  %f32, \[ %g1 \+ 0x66 \]$"
line   "  58:   c3 a8 7c 66     stmfd  %f32, [ 0x66 + %g1 ]"

I can see no pattern here: in the first case, ldmsh, ldmx, and st* are
correct, in the second stmfs is.

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2018-02-12  Jose E. Marchesi  <jose.marchesi@oracle.com>
            Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* testsuite/gas/sparc/sparc.exp (set_tests_arch): New proc.
	Prefix v9c, v9d, v9v, v9m, v9m8 tests with corresponding
	set_tests_arch.

# HG changeset patch
# Parent  e9edce3b659de9093e265b4f0c544ec7d188143f
Specify architecture for SPARC gas tests

diff --git a/gas/testsuite/gas/sparc/sparc.exp b/gas/testsuite/gas/sparc/sparc.exp
--- a/gas/testsuite/gas/sparc/sparc.exp
+++ b/gas/testsuite/gas/sparc/sparc.exp
@@ -31,6 +31,20 @@ proc gas_64_check { } {
     return [regexp "elf64\[_-\]sparc" [lindex $status 1]]
 }
 
+# Until binutils support Solaris-style capabilities, specify the arch
+# necessary to disassemble the ISA extensions used.
+proc set_tests_arch {arch} {
+    global OBJDUMPFLAGS
+
+    if [istarget "sparc*-*-solaris*"] {
+	if { $arch != "" } {
+	    set OBJDUMPFLAGS "-msparc:$arch"
+	} else {
+	    set OBJDUMPFLAGS ""
+	}
+    }
+}
+
 if [istarget sparc*-*-*] {
 
     if [is_elf_format] {
@@ -50,40 +64,53 @@ if [istarget sparc*-*-*] {
         run_list_test "pr4587" ""
         run_dump_test "ticc-imm-reg"
         run_dump_test "v8-movwr-imm"
-        run_dump_test "pause"
         run_dump_test "save-args"
-        run_dump_test "cbcond"
+
+	set_tests_arch "v9c"
+	run_dump_test "ldtxa"
+
+	set_tests_arch "v9d"
+	run_dump_test "edge"
+
+	set_tests_arch "v9v"
+	run_dump_test "cbcond"
+	run_dump_test "cfr"
+	run_dump_test "crypto"
+	run_dump_test "hpcvis3"
+	run_dump_test "ima"
+	run_dump_test "pause"
+
+	set_tests_arch "v9m"
+	run_dump_test "mcdper"
+	run_dump_test "mwait"
+	run_dump_test "sparc5vis4"
+	run_dump_test "xcrypto"
+
+	set_tests_arch "v9m8"
+	run_dump_test "fpcmpshl"
+	run_dump_test "ldm-stm"
+	run_dump_test "ldmf-stmf"
+	run_dump_test "on"
+	run_dump_test "rle"
+	run_dump_test "sparc6"
+	set_tests_arch ""
+
         run_list_test "cbcond-diag" "-64"
-        run_dump_test "cfr"
-        run_dump_test "crypto"
-        run_dump_test "edge"
         run_dump_test "flush"
-        run_dump_test "hpcvis3"
-        run_dump_test "ima"
         run_dump_test "ld_st_fsr"
         run_dump_test "ldtw_sttw"
         run_dump_test "ldd_std"
         run_dump_test "ldx_stx"
         run_dump_test "ldx_efsr"
-        run_dump_test "mwait"
-        run_dump_test "mcdper"
-        run_dump_test "sparc5vis4"
-        run_dump_test "xcrypto"
         run_dump_test "v9branch1"
         run_dump_test "imm-plus-rreg"
         run_dump_test "dcti-couples-v9"
         run_dump_test "call-relax"
-        run_dump_test "sparc6"
         run_list_test "sparc6-diag" "-64"
-        run_dump_test "fpcmpshl"
         run_list_test "fpcmpshl-diag" "-64"
-        run_dump_test "ldm-stm"
         run_list_test "ldm-stm-diag" "-64"
-        run_dump_test "ldmf-stmf"
         run_list_test "ldmf-stmf-diag" "-64"
-        run_dump_test "on"
         run_list_test "on-diag" "-64"
-        run_dump_test "rle"
     } else {
         # The next tests are a.out only.
         run_dump_test "call-relax-aout"
@@ -95,12 +122,6 @@ if [istarget sparc*-*-*] {
 	run_dump_test "prefetch"
 	run_dump_test "set64"
 	run_dump_test "synth64"
-        run_dump_test "rdasr"
-	run_dump_test "rdpr"
-	run_dump_test "rdhpr"
-        run_dump_test "wrasr"
-	run_dump_test "wrpr"
-	run_dump_test "wrhpr"
 	run_dump_test "window"
 	run_dump_test "reloc64"
 	run_dump_test "pcrel64"
@@ -109,6 +130,17 @@ if [istarget sparc*-*-*] {
         run_list_test "hwcaps-bump" "-64 -bump"
         run_list_test "asi-bump-warn" "-64 -bump"
         run_list_test "asi-arch-error" "-Av9"
+
+	set_tests_arch "v9m"
+	run_dump_test "rdhpr"
+	run_dump_test "rdpr"
+	run_dump_test "wrasr"
+	run_dump_test "wrhpr"
+	run_dump_test "wrpr"
+
+	set_tests_arch "v9m8"
+	run_dump_test "rdasr"
+	set_tests_arch ""
     }
 
     run_dump_test "synth"

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]