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]

[PATCH, binutils/ARM] Remove _S version or MSR/MRS special registers


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
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

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