public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH, binutils/ARM] Remove _S version or MSR/MRS special registers
@ 2016-08-12 13:41 Thomas Preudhomme
  2016-08-15 10:56 ` Nick Clifton
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas Preudhomme @ 2016-08-12 13:41 UTC (permalink / raw)
  To: binutils, Richard Earnshaw, Nick Clifton, Alan Modra

[-- Attachment #1: Type: text/plain, Size: 1232 bytes --]

Hi,

When adding support for ARMv8-M in GAS, MRS/MSR special registers were extended 
with MSP_S/MSP_NS and PSP_S/PSP_NS. While _NS versions make sense as they 
correspond to a different encoding, _S version do not. They are artifacts of 
previous version of the patch where a special CLI switch was considered to 
assemble ARMv8-M Secure code. In their current form they are a source of 
confusion because they would lead to read or write the non secure version of MSP 
and PSP when in non secure state.

Since this is early 2.27 days, we believe it to be best to remove them now 
rather than keep them in. Patch is in attachment.

ChangeLog entrie is as follows:

*** gas/ChangeLog ***

2016-08-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>

         * config/tc-arm.c (v7m_psrs): Remove msp_s, MSP_S, psp_s and PSP_S
         special registers.
         * testsuite/gas/arm/archv8m-cmse-msr.s: Remove test for above special
         registers.
         * testsuite/gas/arm/archv8m-cmse-msr-base.d: Likewise.
         * testsuite/gas/arm/archv8m-cmse-msr-main.d: Likewise.
         * testsuite/gas/arm/archv8m-main-dsp-4.d: Likewise.


Is this ok for master and more importantly binutils-2_27-branch?

Best regards,

Thomas

[-- Attachment #2: remove_s_msr_special_regs.patch --]
[-- Type: text/x-patch, Size: 5205 bytes --]

diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 73d0531639a9f8b277729122999122a423cc7549..4fa0bfc5bb19c8d61550618dc6d496793f4580ba 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -18788,8 +18788,8 @@ static const struct asm_psr v7m_psrs[] =
   {"ipsr",	  5 }, {"IPSR",		5 },
   {"epsr",	  6 }, {"EPSR",		6 },
   {"iepsr",	  7 }, {"IEPSR",	7 },
-  {"msp",	  8 }, {"MSP",		8 }, {"msp_s",     8 }, {"MSP_S",     8 },
-  {"psp",	  9 }, {"PSP",		9 }, {"psp_s",     9 }, {"PSP_S",     9 },
+  {"msp",	  8 }, {"MSP",		8 },
+  {"psp",	  9 }, {"PSP",		9 },
   {"primask",	  16}, {"PRIMASK",	16},
   {"basepri",	  17}, {"BASEPRI",	17},
   {"basepri_max", 18}, {"BASEPRI_MAX",	18},
diff --git a/gas/testsuite/gas/arm/archv8m-cmse-msr-base.d b/gas/testsuite/gas/arm/archv8m-cmse-msr-base.d
index 4bbb82d79b2c1f6277d93dd49270250748fb61f6..0c46a44a3e160c2e8957085c1a59faed3136b00a 100644
--- a/gas/testsuite/gas/arm/archv8m-cmse-msr-base.d
+++ b/gas/testsuite/gas/arm/archv8m-cmse-msr-base.d
@@ -7,26 +7,18 @@
 
 Disassembly of section .text:
 0+.* <[^>]*> f380 8808 	msr	MSP, r0
-0+.* <[^>]*> f380 8808 	msr	MSP, r0
 0+.* <[^>]*> f380 8888 	msr	MSP_NS, r0
 0+.* <[^>]*> f380 8809 	msr	PSP, r0
-0+.* <[^>]*> f380 8809 	msr	PSP, r0
 0+.* <[^>]*> f380 8889 	msr	PSP_NS, r0
 0+.* <[^>]*> f380 8808 	msr	MSP, r0
-0+.* <[^>]*> f380 8808 	msr	MSP, r0
 0+.* <[^>]*> f380 8888 	msr	MSP_NS, r0
 0+.* <[^>]*> f380 8809 	msr	PSP, r0
-0+.* <[^>]*> f380 8809 	msr	PSP, r0
 0+.* <[^>]*> f380 8889 	msr	PSP_NS, r0
 0+.* <[^>]*> f3ef 8008 	mrs	r0, MSP
-0+.* <[^>]*> f3ef 8008 	mrs	r0, MSP
 0+.* <[^>]*> f3ef 8088 	mrs	r0, MSP_NS
 0+.* <[^>]*> f3ef 8009 	mrs	r0, PSP
-0+.* <[^>]*> f3ef 8009 	mrs	r0, PSP
 0+.* <[^>]*> f3ef 8089 	mrs	r0, PSP_NS
 0+.* <[^>]*> f3ef 8008 	mrs	r0, MSP
-0+.* <[^>]*> f3ef 8008 	mrs	r0, MSP
 0+.* <[^>]*> f3ef 8088 	mrs	r0, MSP_NS
 0+.* <[^>]*> f3ef 8009 	mrs	r0, PSP
-0+.* <[^>]*> f3ef 8009 	mrs	r0, PSP
 0+.* <[^>]*> f3ef 8089 	mrs	r0, PSP_NS
diff --git a/gas/testsuite/gas/arm/archv8m-cmse-msr-main.d b/gas/testsuite/gas/arm/archv8m-cmse-msr-main.d
index 30a3361c37458c8894fa76bd2dd5b8425664668b..42d3ba9b0c8350243b42dc418d2e4e317a071211 100644
--- a/gas/testsuite/gas/arm/archv8m-cmse-msr-main.d
+++ b/gas/testsuite/gas/arm/archv8m-cmse-msr-main.d
@@ -7,26 +7,18 @@
 
 Disassembly of section .text:
 0+.* <[^>]*> f380 8808 	msr	MSP, r0
-0+.* <[^>]*> f380 8808 	msr	MSP, r0
 0+.* <[^>]*> f380 8888 	msr	MSP_NS, r0
 0+.* <[^>]*> f380 8809 	msr	PSP, r0
-0+.* <[^>]*> f380 8809 	msr	PSP, r0
 0+.* <[^>]*> f380 8889 	msr	PSP_NS, r0
 0+.* <[^>]*> f380 8808 	msr	MSP, r0
-0+.* <[^>]*> f380 8808 	msr	MSP, r0
 0+.* <[^>]*> f380 8888 	msr	MSP_NS, r0
 0+.* <[^>]*> f380 8809 	msr	PSP, r0
-0+.* <[^>]*> f380 8809 	msr	PSP, r0
 0+.* <[^>]*> f380 8889 	msr	PSP_NS, r0
 0+.* <[^>]*> f3ef 8008 	mrs	r0, MSP
-0+.* <[^>]*> f3ef 8008 	mrs	r0, MSP
 0+.* <[^>]*> f3ef 8088 	mrs	r0, MSP_NS
 0+.* <[^>]*> f3ef 8009 	mrs	r0, PSP
-0+.* <[^>]*> f3ef 8009 	mrs	r0, PSP
 0+.* <[^>]*> f3ef 8089 	mrs	r0, PSP_NS
 0+.* <[^>]*> f3ef 8008 	mrs	r0, MSP
-0+.* <[^>]*> f3ef 8008 	mrs	r0, MSP
 0+.* <[^>]*> f3ef 8088 	mrs	r0, MSP_NS
 0+.* <[^>]*> f3ef 8009 	mrs	r0, PSP
-0+.* <[^>]*> f3ef 8009 	mrs	r0, PSP
 0+.* <[^>]*> f3ef 8089 	mrs	r0, PSP_NS
diff --git a/gas/testsuite/gas/arm/archv8m-cmse-msr.s b/gas/testsuite/gas/arm/archv8m-cmse-msr.s
index 897be1a9256195de85a7b8869e942a298faf92ec..66a3b64f86bde5ed26201c6365b1fa0ab3846627 100644
--- a/gas/testsuite/gas/arm/archv8m-cmse-msr.s
+++ b/gas/testsuite/gas/arm/archv8m-cmse-msr.s
@@ -1,25 +1,17 @@
 T:
 msr   MSP, r0
-msr   MSP_S, r0
 msr   MSP_NS, r0
 msr   PSP, r0
-msr   PSP_S, r0
 msr   PSP_NS, r0
 msr   msp, r0
-msr   msp_s, r0
 msr   msp_ns, r0
 msr   psp, r0
-msr   psp_s, r0
 msr   psp_ns, r0
 mrs   r0, MSP
-mrs   r0, MSP_S
 mrs   r0, MSP_NS
 mrs   r0, PSP
-mrs   r0, PSP_S
 mrs   r0, PSP_NS
 mrs   r0, msp
-mrs   r0, msp_s
 mrs   r0, msp_ns
 mrs   r0, psp
-mrs   r0, psp_s
 mrs   r0, psp_ns
diff --git a/gas/testsuite/gas/arm/archv8m-main-dsp-4.d b/gas/testsuite/gas/arm/archv8m-main-dsp-4.d
index 248f75e00af6d1a7a43f80bcfc6e4f80556ae1d4..7ebc9c1178543710358b7ff76f415261891429bf 100644
--- a/gas/testsuite/gas/arm/archv8m-main-dsp-4.d
+++ b/gas/testsuite/gas/arm/archv8m-main-dsp-4.d
@@ -7,26 +7,18 @@
 
 Disassembly of section .text:
 0+.* <[^>]*> f380 8808 	msr	MSP, r0
-0+.* <[^>]*> f380 8808 	msr	MSP, r0
 0+.* <[^>]*> f380 8888 	msr	MSP_NS, r0
 0+.* <[^>]*> f380 8809 	msr	PSP, r0
-0+.* <[^>]*> f380 8809 	msr	PSP, r0
 0+.* <[^>]*> f380 8889 	msr	PSP_NS, r0
 0+.* <[^>]*> f380 8808 	msr	MSP, r0
-0+.* <[^>]*> f380 8808 	msr	MSP, r0
 0+.* <[^>]*> f380 8888 	msr	MSP_NS, r0
 0+.* <[^>]*> f380 8809 	msr	PSP, r0
-0+.* <[^>]*> f380 8809 	msr	PSP, r0
 0+.* <[^>]*> f380 8889 	msr	PSP_NS, r0
 0+.* <[^>]*> f3ef 8008 	mrs	r0, MSP
-0+.* <[^>]*> f3ef 8008 	mrs	r0, MSP
 0+.* <[^>]*> f3ef 8088 	mrs	r0, MSP_NS
 0+.* <[^>]*> f3ef 8009 	mrs	r0, PSP
-0+.* <[^>]*> f3ef 8009 	mrs	r0, PSP
 0+.* <[^>]*> f3ef 8089 	mrs	r0, PSP_NS
 0+.* <[^>]*> f3ef 8008 	mrs	r0, MSP
-0+.* <[^>]*> f3ef 8008 	mrs	r0, MSP
 0+.* <[^>]*> f3ef 8088 	mrs	r0, MSP_NS
 0+.* <[^>]*> f3ef 8009 	mrs	r0, PSP
-0+.* <[^>]*> f3ef 8009 	mrs	r0, PSP
 0+.* <[^>]*> f3ef 8089 	mrs	r0, PSP_NS

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-08-25  8:54 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-12 13:41 [PATCH, binutils/ARM] Remove _S version or MSR/MRS special registers Thomas Preudhomme
2016-08-15 10:56 ` Nick Clifton
2016-08-15 16:27   ` Thomas Preudhomme
2016-08-23 10:35     ` [PATCH, binutils/ARM, ping] Remove _S version or MSR/MRS special registers in binutils 2.27 Thomas Preudhomme
2016-08-24 13:37       ` Tristan Gingold
2016-08-25  8:54   ` [PATCH, binutils/ARM] Remove _S version or MSR/MRS special registers Thomas Preudhomme

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).