This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH, gas/testsuite/arm] Make ARMv8-M GAS tests pass on non ELF targets
- From: Thomas Preudhomme <thomas dot preudhomme at foss dot arm dot com>
- To: binutils at sourceware dot org
- Cc: nickc at redhat dot com, amodra at gmail dot com, christophe dot lyon at linaro dot org
- Date: Fri, 13 May 2016 17:33:03 +0100
- Subject: [PATCH, gas/testsuite/arm] Make ARMv8-M GAS tests pass on non ELF targets
- Authentication-results: sourceware.org; auth=none
Hi all,
ARMv8-M related GAS tests fail on non ELF targets because these assume that
all instructions in an object file are of the same ISA (ARM or Thumb) and use
the first symbol to determine the ISA. Since these tests do not have any label,
they would use the section symbol and deduce the ISA is ARM. This patch use -M
force-thumb to tell objdump that the instructions are Thumb. It also allows
for nop at the end of the output as emitted when alignment of the last
instruction is not enough for non ELF format (at least coff and PE). Finally,
it adds label to the testcases so that the output of objdump with --prefix-
addresses for aout format has the <> that dumps expect.
ChangeLog entry is as follows:
2016-05-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
* testsuite/gas/arm/archv8m-cmse-msr-base.d: Force Thumb when
disassembling and stop skipping targets.
* testsuite/gas/arm/archv8m-cmse-msr-main.d: Likewise.
* testsuite/gas/arm/archv8m-main-dsp-4.d: Likewise.
* testsuite/gas/arm/archv8m-base.d: Also allow nops after the last
instruction for targets that have stronger alignment requirement.
* testsuite/gas/arm/archv8m-cmse-base.d: Likewise.
* testsuite/gas/arm/archv8m-cmse-main-1.d: Likewise.
* testsuite/gas/arm/archv8m-cmse-main-2.d: Likewise.
* testsuite/gas/arm/archv8m-main-dsp-1.d: Likewise.
* testsuite/gas/arm/archv8m-main-dsp-2.d: Likewise.
* testsuite/gas/arm/archv8m-main-dsp-3.d: Likewise.
* testsuite/gas/arm/archv8m-main.d: Likewise.
* testsuite/gas/arm/archv8m.s: Add label.
* testsuite/gas/arm/archv8m-cmse.s: Likewise.
* testsuite/gas/arm/archv8m-cmse-msr.s: Likewise.
* testsuite/gas/arm/archv8m-cmse-main.s: Likewise.
diff --git a/gas/testsuite/gas/arm/archv8m-base.d
b/gas/testsuite/gas/arm/archv8m-base.d
index
60df240008be1f4d429b23de1e3d82b5ee9b7fc9..6a2ee87f3b6eb90754c91c78788276b2bfd92880
100644
--- a/gas/testsuite/gas/arm/archv8m-base.d
+++ b/gas/testsuite/gas/arm/archv8m-base.d
@@ -1,8 +1,7 @@
#name: ARM V8-M baseline instructions
#source: archv8m.s
#as: -march=armv8-m.base
-#objdump: -dr --prefix-addresses --show-raw-insn
-#skip: *-*-pe *-wince-* *-*-coff
+#objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
.*: +file format .*arm.*
@@ -46,3 +45,4 @@ Disassembly of section .text:
0+.* <[^>]*> e8c2 1fe0 stlex r0, r1, \[r2\]
0+.* <[^>]*> e8c2 1fc0 stlexb r0, r1, \[r2\]
0+.* <[^>]*> e8c2 1fd0 stlexh r0, r1, \[r2\]
+#...
diff --git a/gas/testsuite/gas/arm/archv8m-cmse-base.d
b/gas/testsuite/gas/arm/archv8m-cmse-base.d
index
ba6ff3ac9b917b86b75f6f9dcd965c4b6255ac41..23576376a23786daeb739e08fd31b4c4a1f2c11c
100644
--- a/gas/testsuite/gas/arm/archv8m-cmse-base.d
+++ b/gas/testsuite/gas/arm/archv8m-cmse-base.d
@@ -1,8 +1,7 @@
#name: ARMv8-M Baseline Security Extensions instructions
#source: archv8m-cmse.s
#as: -march=armv8-m.base
-#objdump: -dr --prefix-addresses --show-raw-insn
-#skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+#objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
.*: +file format .*arm.*
@@ -16,3 +15,4 @@ Disassembly of section .text:
0+.* <[^>]*> e849 f880 tta r8, r9
0+.* <[^>]*> e841 f0c0 ttat r0, r1
0+.* <[^>]*> e849 f8c0 ttat r8, r9
+#...
diff --git a/gas/testsuite/gas/arm/archv8m-cmse-main-1.d
b/gas/testsuite/gas/arm/archv8m-cmse-main-1.d
index
f4937df31868b39e9f501945e1556bec14e4aead..edb398222796c8cf3b8f0b57aab66a5d70ee7b8a
100644
--- a/gas/testsuite/gas/arm/archv8m-cmse-main-1.d
+++ b/gas/testsuite/gas/arm/archv8m-cmse-main-1.d
@@ -1,8 +1,7 @@
#name: ARMv8-M Mainline Security Extensions instructions (1)
#source: archv8m-cmse.s
#as: -march=armv8-m.main
-#objdump: -dr --prefix-addresses --show-raw-insn
-#skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+#objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
.*: +file format .*arm.*
@@ -16,3 +15,4 @@ Disassembly of section .text:
0+.* <[^>]*> e849 f880 tta r8, r9
0+.* <[^>]*> e841 f0c0 ttat r0, r1
0+.* <[^>]*> e849 f8c0 ttat r8, r9
+#...
diff --git a/gas/testsuite/gas/arm/archv8m-cmse-main-2.d
b/gas/testsuite/gas/arm/archv8m-cmse-main-2.d
index
0aa67e44220470a9d3d1833cf6f9ae874270fbce..bf37ecc6e4f7452377c8eca22710a09a3053e2a8
100644
--- a/gas/testsuite/gas/arm/archv8m-cmse-main-2.d
+++ b/gas/testsuite/gas/arm/archv8m-cmse-main-2.d
@@ -1,11 +1,11 @@
#name: ARMv8-M Mainline Security Extensions instructions (2)
#source: archv8m-cmse-main.s
#as: -march=armv8-m.main
-#objdump: -dr --prefix-addresses --show-raw-insn
-#skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+#objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
.*: +file format .*arm.*
Disassembly of section .text:
0+.* <[^>]*> ec31 0a00 vlldm r1
0+.* <[^>]*> ec22 0a00 vlstm r2
+#...
diff --git a/gas/testsuite/gas/arm/archv8m-cmse-main.s
b/gas/testsuite/gas/arm/archv8m-cmse-main.s
index
069cad6b22a200d3b2077d1be275480b776269e2..871414fd19fe6fcd95284e2f7089275c696b716a
100644
--- a/gas/testsuite/gas/arm/archv8m-cmse-main.s
+++ b/gas/testsuite/gas/arm/archv8m-cmse-main.s
@@ -1,5 +1,6 @@
.thumb
.syntax unified
+T:
vlldm r1
vlstm r2
diff --git a/gas/testsuite/gas/arm/archv8m-cmse-msr-base.d
b/gas/testsuite/gas/arm/archv8m-cmse-msr-base.d
index
ded24ef19dbaab9befa6f45534af3be1bfb03b66..4bbb82d79b2c1f6277d93dd49270250748fb61f6
100644
--- a/gas/testsuite/gas/arm/archv8m-cmse-msr-base.d
+++ b/gas/testsuite/gas/arm/archv8m-cmse-msr-base.d
@@ -1,8 +1,7 @@
#name: ARMv8-M Baseline Security Extensions MSR/MRS instructions
#source: archv8m-cmse-msr.s
#as: -march=armv8-m.base
-#objdump: -dr --prefix-addresses --show-raw-insn
-#skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+#objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
.*: +file format .*arm.*
diff --git a/gas/testsuite/gas/arm/archv8m-cmse-msr-main.d
b/gas/testsuite/gas/arm/archv8m-cmse-msr-main.d
index
df531509bd4f694a743df4bd5575452ae194dbda..30a3361c37458c8894fa76bd2dd5b8425664668b
100644
--- a/gas/testsuite/gas/arm/archv8m-cmse-msr-main.d
+++ b/gas/testsuite/gas/arm/archv8m-cmse-msr-main.d
@@ -1,8 +1,7 @@
#name: ARMv8-M Mainline Security Extensions MSR/MRS instructions
#source: archv8m-cmse-msr.s
#as: -march=armv8-m.main
-#objdump: -dr --prefix-addresses --show-raw-insn
-#skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+#objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
.*: +file format .*arm.*
diff --git a/gas/testsuite/gas/arm/archv8m-cmse-msr.s
b/gas/testsuite/gas/arm/archv8m-cmse-msr.s
index
4a617610139630ac66bdaa95d005fa27c6e098fb..897be1a9256195de85a7b8869e942a298faf92ec
100644
--- a/gas/testsuite/gas/arm/archv8m-cmse-msr.s
+++ b/gas/testsuite/gas/arm/archv8m-cmse-msr.s
@@ -1,3 +1,4 @@
+T:
msr MSP, r0
msr MSP_S, r0
msr MSP_NS, r0
diff --git a/gas/testsuite/gas/arm/archv8m-cmse.s
b/gas/testsuite/gas/arm/archv8m-cmse.s
index
520550c8709d9cc8b73756fabc6147cb3009505e..cac82c5fcbf1f42f81c6738eb2c79b259f432fdd
100644
--- a/gas/testsuite/gas/arm/archv8m-cmse.s
+++ b/gas/testsuite/gas/arm/archv8m-cmse.s
@@ -1,6 +1,7 @@
.thumb
.syntax unified
+T:
sg
blxns r4
blxns r9
diff --git a/gas/testsuite/gas/arm/archv8m-main-dsp-1.d
b/gas/testsuite/gas/arm/archv8m-main-dsp-1.d
index
17714b8ac3cd03d4492120b5408d1f5e4cc1ab21..c8f9d7b81bf1af3949afffa7d4d3df7f3065f4bc
100644
--- a/gas/testsuite/gas/arm/archv8m-main-dsp-1.d
+++ b/gas/testsuite/gas/arm/archv8m-main-dsp-1.d
@@ -1,8 +1,7 @@
#name: ARMv8-M Mainline with DSP instructions (base)
#source: archv8m.s
#as: -march=armv8-m.main+dsp
-#objdump: -dr --prefix-addresses --show-raw-insn
-#skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+#objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
.*: +file format .*arm.*
@@ -46,3 +45,4 @@ Disassembly of section .text:
0+.* <[^>]*> e8c2 1fe0 stlex r0, r1, \[r2\]
0+.* <[^>]*> e8c2 1fc0 stlexb r0, r1, \[r2\]
0+.* <[^>]*> e8c2 1fd0 stlexh r0, r1, \[r2\]
+#...
diff --git a/gas/testsuite/gas/arm/archv8m-main-dsp-2.d
b/gas/testsuite/gas/arm/archv8m-main-dsp-2.d
index
7730a032bcc39cfe92668bb324b3dad80f00a748..59b860ae3cb5e0ad50b965c756802458a2b73467
100644
--- a/gas/testsuite/gas/arm/archv8m-main-dsp-2.d
+++ b/gas/testsuite/gas/arm/archv8m-main-dsp-2.d
@@ -1,8 +1,7 @@
#name: ARMv8-M Mainline with DSP instructions (Security Extensions 1)
#source: archv8m-cmse.s
#as: -march=armv8-m.main+dsp
-#objdump: -dr --prefix-addresses --show-raw-insn
-#skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+#objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
.*: +file format .*arm.*
@@ -16,3 +15,4 @@ Disassembly of section .text:
0+.* <[^>]*> e849 f880 tta r8, r9
0+.* <[^>]*> e841 f0c0 ttat r0, r1
0+.* <[^>]*> e849 f8c0 ttat r8, r9
+#...
diff --git a/gas/testsuite/gas/arm/archv8m-main-dsp-3.d
b/gas/testsuite/gas/arm/archv8m-main-dsp-3.d
index
fdd9c780252f4a4d8449124170355979374c67d3..5ac1ddfdf795d11061364f93bcc1bc3ab19bbf77
100644
--- a/gas/testsuite/gas/arm/archv8m-main-dsp-3.d
+++ b/gas/testsuite/gas/arm/archv8m-main-dsp-3.d
@@ -1,11 +1,11 @@
#name: ARMv8-M Mainline with DSP instructions (Security Extensions 2)
#source: archv8m-cmse-main.s
#as: -march=armv8-m.main+dsp
-#objdump: -dr --prefix-addresses --show-raw-insn
-#skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+#objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
.*: +file format .*arm.*
Disassembly of section .text:
0+.* <[^>]*> ec31 0a00 vlldm r1
0+.* <[^>]*> ec22 0a00 vlstm r2
+#...
diff --git a/gas/testsuite/gas/arm/archv8m-main-dsp-4.d
b/gas/testsuite/gas/arm/archv8m-main-dsp-4.d
index
1bb19ea8f35b3fd1d098d2ee9eb182054f73a107..248f75e00af6d1a7a43f80bcfc6e4f80556ae1d4
100644
--- a/gas/testsuite/gas/arm/archv8m-main-dsp-4.d
+++ b/gas/testsuite/gas/arm/archv8m-main-dsp-4.d
@@ -1,8 +1,7 @@
#name: ARMv8-M Mainline with DSP instructions (Security Extensions 3)
#source: archv8m-cmse-msr.s
#as: -march=armv8-m.main+dsp
-#objdump: -dr --prefix-addresses --show-raw-insn
-#skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+#objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
.*: +file format .*arm.*
diff --git a/gas/testsuite/gas/arm/archv8m-main.d
b/gas/testsuite/gas/arm/archv8m-main.d
index
055721a03391cb51c7553d6f657e7e6113edcb11..a0c40e99c89cef9aaef41c252bc37806d776f278
100644
--- a/gas/testsuite/gas/arm/archv8m-main.d
+++ b/gas/testsuite/gas/arm/archv8m-main.d
@@ -1,8 +1,7 @@
#name: ARM V8-M mainline instructions
#source: archv8m.s
#as: -march=armv8-m.main
-#objdump: -dr --prefix-addresses --show-raw-insn
-#skip: *-*-pe *-wince-* *-*-coff
+#objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
.*: +file format .*arm.*
@@ -46,3 +45,4 @@ Disassembly of section .text:
0+.* <[^>]*> e8c2 1fe0 stlex r0, r1, \[r2\]
0+.* <[^>]*> e8c2 1fc0 stlexb r0, r1, \[r2\]
0+.* <[^>]*> e8c2 1fd0 stlexh r0, r1, \[r2\]
+#...
diff --git a/gas/testsuite/gas/arm/archv8m.s b/gas/testsuite/gas/arm/archv8m.s
index
8aca8bae50c9b8bc9f1e717acf35debe9902984b..5f8aafed48746e19056a33405104a9768ed9feab
100644
--- a/gas/testsuite/gas/arm/archv8m.s
+++ b/gas/testsuite/gas/arm/archv8m.s
@@ -1,6 +1,7 @@
.thumb
.syntax unified
+T:
blx r4
blx r9
bx r4
With this patch, non of the ARMv8-M patches fail for arm-wince-pe, arm-coff and
arm-aout.
Best regards,
Thomas