• R/O
  • HTTP
  • SSH
  • HTTPS

提交

標籤
無標籤

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

GNU Binutils with patches for OS216


Commit MetaInfo

修訂ea5c7acffa6ddf695474979d9657bb817e1eec77 (tree)
時間2016-08-26 22:30:04
作者Thomas Preud'homme <thomas.preudhomme@arm....>
CommiterThomas Preud'homme

Log Message

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

Backport from mainline
2016-08-26 Thomas Preud'homme <thomas.preudhomme@arm.com>

gas/
* config/tc-arm.c (v7m_psrs): Add MSPLIM, PSPLIM, MSPLIM_NS,
PSPLIM_NS, PRIMASK_NS, BASEPRI_NS, FAULTMASK_NS, CONTROL_NS, SP_NS and
their lowecase counterpart special registers. Write register
identifier in hex.
* testsuite/gas/arm/archv8m-cmse-msr.s: Reorganize tests per
operation, special register and then case. Use different register for
each operation. Add tests for new special registers.
* testsuite/gas/arm/archv8m-cmse-msr-base.d: Adapt expected result
accordingly.
* testsuite/gas/arm/archv8m-cmse-msr-main.d: Likewise.
* testsuite/gas/arm/archv8m-main-dsp-4.d: Likewise.

opcodes/
* arm-dis.c (psr_name): Use hex as case labels. Add detection for
MSPLIM, PSPLIM, MSPLIM_NS, PSPLIM_NS, PRIMASK_NS, BASEPRI_NS,
FAULTMASK_NS, CONTROL_NS and SP_NS special registers.

Change Summary

差異

--- a/gas/ChangeLog.arm
+++ b/gas/ChangeLog.arm
@@ -1,3 +1,20 @@
1+2016-08-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
2+
3+ Backport from mainline
4+ 2016-08-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
5+
6+ * config/tc-arm.c (v7m_psrs): Add MSPLIM, PSPLIM, MSPLIM_NS,
7+ PSPLIM_NS, PRIMASK_NS, BASEPRI_NS, FAULTMASK_NS, CONTROL_NS, SP_NS and
8+ their lowecase counterpart special registers. Write register
9+ identifier in hex.
10+ * testsuite/gas/arm/archv8m-cmse-msr.s: Reorganize tests per
11+ operation, special register and then case. Use different register for
12+ each operation. Add tests for new special registers.
13+ * testsuite/gas/arm/archv8m-cmse-msr-base.d: Adapt expected result
14+ accordingly.
15+ * testsuite/gas/arm/archv8m-cmse-msr-main.d: Likewise.
16+ * testsuite/gas/arm/archv8m-main-dsp-4.d: Likewise.
17+
118 2016-08-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
219
320 Backport from mainline
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -18388,24 +18388,33 @@ static const struct asm_psr psrs[] =
1838818388 /* Table of V7M psr names. */
1838918389 static const struct asm_psr v7m_psrs[] =
1839018390 {
18391- {"apsr", 0 }, {"APSR", 0 },
18392- {"iapsr", 1 }, {"IAPSR", 1 },
18393- {"eapsr", 2 }, {"EAPSR", 2 },
18394- {"psr", 3 }, {"PSR", 3 },
18395- {"xpsr", 3 }, {"XPSR", 3 }, {"xPSR", 3 },
18396- {"ipsr", 5 }, {"IPSR", 5 },
18397- {"epsr", 6 }, {"EPSR", 6 },
18398- {"iepsr", 7 }, {"IEPSR", 7 },
18399- {"msp", 8 }, {"MSP", 8 },
18400- {"psp", 9 }, {"PSP", 9 },
18401- {"primask", 16}, {"PRIMASK", 16},
18402- {"basepri", 17}, {"BASEPRI", 17},
18403- {"basepri_max", 18}, {"BASEPRI_MAX", 18},
18404- {"basepri_max", 18}, {"BASEPRI_MASK", 18}, /* Typo, preserved for backwards compatibility. */
18405- {"faultmask", 19}, {"FAULTMASK", 19},
18406- {"control", 20}, {"CONTROL", 20},
18407- {"msp_ns", 0x88}, {"MSP_NS", 0x88},
18408- {"psp_ns", 0x89}, {"PSP_NS", 0x89}
18391+ {"apsr", 0x0 }, {"APSR", 0x0 },
18392+ {"iapsr", 0x1 }, {"IAPSR", 0x1 },
18393+ {"eapsr", 0x2 }, {"EAPSR", 0x2 },
18394+ {"psr", 0x3 }, {"PSR", 0x3 },
18395+ {"xpsr", 0x3 }, {"XPSR", 0x3 }, {"xPSR", 3 },
18396+ {"ipsr", 0x5 }, {"IPSR", 0x5 },
18397+ {"epsr", 0x6 }, {"EPSR", 0x6 },
18398+ {"iepsr", 0x7 }, {"IEPSR", 0x7 },
18399+ {"msp", 0x8 }, {"MSP", 0x8 },
18400+ {"psp", 0x9 }, {"PSP", 0x9 },
18401+ {"msplim", 0xa }, {"MSPLIM", 0xa },
18402+ {"psplim", 0xb }, {"PSPLIM", 0xb },
18403+ {"primask", 0x10}, {"PRIMASK", 0x10},
18404+ {"basepri", 0x11}, {"BASEPRI", 0x11},
18405+ {"basepri_max", 0x12}, {"BASEPRI_MAX", 0x12},
18406+ {"basepri_max", 0x12}, {"BASEPRI_MASK", 0x12}, /* Typo, preserved for backwards compatibility. */
18407+ {"faultmask", 0x13}, {"FAULTMASK", 0x13},
18408+ {"control", 0x14}, {"CONTROL", 0x14},
18409+ {"msp_ns", 0x88}, {"MSP_NS", 0x88},
18410+ {"psp_ns", 0x89}, {"PSP_NS", 0x89},
18411+ {"msplim_ns", 0x8a}, {"MSPLIM_NS", 0x8a},
18412+ {"psplim_ns", 0x8b}, {"PSPLIM_NS", 0x8b},
18413+ {"primask_ns", 0x90}, {"PRIMASK_NS", 0x90},
18414+ {"basepri_ns", 0x91}, {"BASEPRI_NS", 0x91},
18415+ {"faultmask_ns", 0x93}, {"FAULTMASK_NS", 0x93},
18416+ {"control_ns", 0x94}, {"CONTROL_NS", 0x94},
18417+ {"sp_ns", 0x98}, {"SP_NS", 0x98 }
1840918418 };
1841018419
1841118420 /* Table of all shift-in-operand names. */
--- a/gas/testsuite/gas/arm/archv8m-cmse-msr-base.d
+++ b/gas/testsuite/gas/arm/archv8m-cmse-msr-base.d
@@ -6,19 +6,71 @@
66 .*: +file format .*arm.*
77
88 Disassembly of section .text:
9-0+.* <[^>]*> f380 8808 msr MSP, r0
10-0+.* <[^>]*> f380 8888 msr MSP_NS, r0
11-0+.* <[^>]*> f380 8809 msr PSP, r0
12-0+.* <[^>]*> f380 8889 msr PSP_NS, r0
13-0+.* <[^>]*> f380 8808 msr MSP, r0
14-0+.* <[^>]*> f380 8888 msr MSP_NS, r0
15-0+.* <[^>]*> f380 8809 msr PSP, r0
16-0+.* <[^>]*> f380 8889 msr PSP_NS, r0
179 0+.* <[^>]*> f3ef 8008 mrs r0, MSP
1810 0+.* <[^>]*> f3ef 8088 mrs r0, MSP_NS
19-0+.* <[^>]*> f3ef 8009 mrs r0, PSP
20-0+.* <[^>]*> f3ef 8089 mrs r0, PSP_NS
2111 0+.* <[^>]*> f3ef 8008 mrs r0, MSP
2212 0+.* <[^>]*> f3ef 8088 mrs r0, MSP_NS
23-0+.* <[^>]*> f3ef 8009 mrs r0, PSP
24-0+.* <[^>]*> f3ef 8089 mrs r0, PSP_NS
13+0+.* <[^>]*> f3ef 8109 mrs r1, PSP
14+0+.* <[^>]*> f3ef 8189 mrs r1, PSP_NS
15+0+.* <[^>]*> f3ef 8109 mrs r1, PSP
16+0+.* <[^>]*> f3ef 8189 mrs r1, PSP_NS
17+0+.* <[^>]*> f3ef 820a mrs r2, MSPLIM
18+0+.* <[^>]*> f3ef 828a mrs r2, MSPLIM_NS
19+0+.* <[^>]*> f3ef 820a mrs r2, MSPLIM
20+0+.* <[^>]*> f3ef 828a mrs r2, MSPLIM_NS
21+0+.* <[^>]*> f3ef 830b mrs r3, PSPLIM
22+0+.* <[^>]*> f3ef 838b mrs r3, PSPLIM_NS
23+0+.* <[^>]*> f3ef 830b mrs r3, PSPLIM
24+0+.* <[^>]*> f3ef 838b mrs r3, PSPLIM_NS
25+0+.* <[^>]*> f3ef 8410 mrs r4, PRIMASK
26+0+.* <[^>]*> f3ef 8490 mrs r4, PRIMASK_NS
27+0+.* <[^>]*> f3ef 8410 mrs r4, PRIMASK
28+0+.* <[^>]*> f3ef 8490 mrs r4, PRIMASK_NS
29+0+.* <[^>]*> f3ef 8511 mrs r5, BASEPRI
30+0+.* <[^>]*> f3ef 8591 mrs r5, BASEPRI_NS
31+0+.* <[^>]*> f3ef 8511 mrs r5, BASEPRI
32+0+.* <[^>]*> f3ef 8591 mrs r5, BASEPRI_NS
33+0+.* <[^>]*> f3ef 8613 mrs r6, FAULTMASK
34+0+.* <[^>]*> f3ef 8693 mrs r6, FAULTMASK_NS
35+0+.* <[^>]*> f3ef 8613 mrs r6, FAULTMASK
36+0+.* <[^>]*> f3ef 8693 mrs r6, FAULTMASK_NS
37+0+.* <[^>]*> f3ef 8714 mrs r7, CONTROL
38+0+.* <[^>]*> f3ef 8794 mrs r7, CONTROL_NS
39+0+.* <[^>]*> f3ef 8714 mrs r7, CONTROL
40+0+.* <[^>]*> f3ef 8794 mrs r7, CONTROL_NS
41+0+.* <[^>]*> f3ef 8898 mrs r8, SP_NS
42+0+.* <[^>]*> f3ef 8898 mrs r8, SP_NS
43+0+.* <[^>]*> f380 8808 msr MSP, r0
44+0+.* <[^>]*> f380 8888 msr MSP_NS, r0
45+0+.* <[^>]*> f380 8808 msr MSP, r0
46+0+.* <[^>]*> f380 8888 msr MSP_NS, r0
47+0+.* <[^>]*> f381 8809 msr PSP, r1
48+0+.* <[^>]*> f381 8889 msr PSP_NS, r1
49+0+.* <[^>]*> f381 8809 msr PSP, r1
50+0+.* <[^>]*> f381 8889 msr PSP_NS, r1
51+0+.* <[^>]*> f382 880a msr MSPLIM, r2
52+0+.* <[^>]*> f382 888a msr MSPLIM_NS, r2
53+0+.* <[^>]*> f382 880a msr MSPLIM, r2
54+0+.* <[^>]*> f382 888a msr MSPLIM_NS, r2
55+0+.* <[^>]*> f383 880b msr PSPLIM, r3
56+0+.* <[^>]*> f383 888b msr PSPLIM_NS, r3
57+0+.* <[^>]*> f383 880b msr PSPLIM, r3
58+0+.* <[^>]*> f383 888b msr PSPLIM_NS, r3
59+0+.* <[^>]*> f384 8810 msr PRIMASK, r4
60+0+.* <[^>]*> f384 8890 msr PRIMASK_NS, r4
61+0+.* <[^>]*> f384 8810 msr PRIMASK, r4
62+0+.* <[^>]*> f384 8890 msr PRIMASK_NS, r4
63+0+.* <[^>]*> f385 8811 msr BASEPRI, r5
64+0+.* <[^>]*> f385 8891 msr BASEPRI_NS, r5
65+0+.* <[^>]*> f385 8811 msr BASEPRI, r5
66+0+.* <[^>]*> f385 8891 msr BASEPRI_NS, r5
67+0+.* <[^>]*> f386 8813 msr FAULTMASK, r6
68+0+.* <[^>]*> f386 8893 msr FAULTMASK_NS, r6
69+0+.* <[^>]*> f386 8813 msr FAULTMASK, r6
70+0+.* <[^>]*> f386 8893 msr FAULTMASK_NS, r6
71+0+.* <[^>]*> f387 8814 msr CONTROL, r7
72+0+.* <[^>]*> f387 8894 msr CONTROL_NS, r7
73+0+.* <[^>]*> f387 8814 msr CONTROL, r7
74+0+.* <[^>]*> f387 8894 msr CONTROL_NS, r7
75+0+.* <[^>]*> f388 8898 msr SP_NS, r8
76+0+.* <[^>]*> f388 8898 msr SP_NS, r8
--- a/gas/testsuite/gas/arm/archv8m-cmse-msr-main.d
+++ b/gas/testsuite/gas/arm/archv8m-cmse-msr-main.d
@@ -6,19 +6,71 @@
66 .*: +file format .*arm.*
77
88 Disassembly of section .text:
9-0+.* <[^>]*> f380 8808 msr MSP, r0
10-0+.* <[^>]*> f380 8888 msr MSP_NS, r0
11-0+.* <[^>]*> f380 8809 msr PSP, r0
12-0+.* <[^>]*> f380 8889 msr PSP_NS, r0
13-0+.* <[^>]*> f380 8808 msr MSP, r0
14-0+.* <[^>]*> f380 8888 msr MSP_NS, r0
15-0+.* <[^>]*> f380 8809 msr PSP, r0
16-0+.* <[^>]*> f380 8889 msr PSP_NS, r0
179 0+.* <[^>]*> f3ef 8008 mrs r0, MSP
1810 0+.* <[^>]*> f3ef 8088 mrs r0, MSP_NS
19-0+.* <[^>]*> f3ef 8009 mrs r0, PSP
20-0+.* <[^>]*> f3ef 8089 mrs r0, PSP_NS
2111 0+.* <[^>]*> f3ef 8008 mrs r0, MSP
2212 0+.* <[^>]*> f3ef 8088 mrs r0, MSP_NS
23-0+.* <[^>]*> f3ef 8009 mrs r0, PSP
24-0+.* <[^>]*> f3ef 8089 mrs r0, PSP_NS
13+0+.* <[^>]*> f3ef 8109 mrs r1, PSP
14+0+.* <[^>]*> f3ef 8189 mrs r1, PSP_NS
15+0+.* <[^>]*> f3ef 8109 mrs r1, PSP
16+0+.* <[^>]*> f3ef 8189 mrs r1, PSP_NS
17+0+.* <[^>]*> f3ef 820a mrs r2, MSPLIM
18+0+.* <[^>]*> f3ef 828a mrs r2, MSPLIM_NS
19+0+.* <[^>]*> f3ef 820a mrs r2, MSPLIM
20+0+.* <[^>]*> f3ef 828a mrs r2, MSPLIM_NS
21+0+.* <[^>]*> f3ef 830b mrs r3, PSPLIM
22+0+.* <[^>]*> f3ef 838b mrs r3, PSPLIM_NS
23+0+.* <[^>]*> f3ef 830b mrs r3, PSPLIM
24+0+.* <[^>]*> f3ef 838b mrs r3, PSPLIM_NS
25+0+.* <[^>]*> f3ef 8410 mrs r4, PRIMASK
26+0+.* <[^>]*> f3ef 8490 mrs r4, PRIMASK_NS
27+0+.* <[^>]*> f3ef 8410 mrs r4, PRIMASK
28+0+.* <[^>]*> f3ef 8490 mrs r4, PRIMASK_NS
29+0+.* <[^>]*> f3ef 8511 mrs r5, BASEPRI
30+0+.* <[^>]*> f3ef 8591 mrs r5, BASEPRI_NS
31+0+.* <[^>]*> f3ef 8511 mrs r5, BASEPRI
32+0+.* <[^>]*> f3ef 8591 mrs r5, BASEPRI_NS
33+0+.* <[^>]*> f3ef 8613 mrs r6, FAULTMASK
34+0+.* <[^>]*> f3ef 8693 mrs r6, FAULTMASK_NS
35+0+.* <[^>]*> f3ef 8613 mrs r6, FAULTMASK
36+0+.* <[^>]*> f3ef 8693 mrs r6, FAULTMASK_NS
37+0+.* <[^>]*> f3ef 8714 mrs r7, CONTROL
38+0+.* <[^>]*> f3ef 8794 mrs r7, CONTROL_NS
39+0+.* <[^>]*> f3ef 8714 mrs r7, CONTROL
40+0+.* <[^>]*> f3ef 8794 mrs r7, CONTROL_NS
41+0+.* <[^>]*> f3ef 8898 mrs r8, SP_NS
42+0+.* <[^>]*> f3ef 8898 mrs r8, SP_NS
43+0+.* <[^>]*> f380 8808 msr MSP, r0
44+0+.* <[^>]*> f380 8888 msr MSP_NS, r0
45+0+.* <[^>]*> f380 8808 msr MSP, r0
46+0+.* <[^>]*> f380 8888 msr MSP_NS, r0
47+0+.* <[^>]*> f381 8809 msr PSP, r1
48+0+.* <[^>]*> f381 8889 msr PSP_NS, r1
49+0+.* <[^>]*> f381 8809 msr PSP, r1
50+0+.* <[^>]*> f381 8889 msr PSP_NS, r1
51+0+.* <[^>]*> f382 880a msr MSPLIM, r2
52+0+.* <[^>]*> f382 888a msr MSPLIM_NS, r2
53+0+.* <[^>]*> f382 880a msr MSPLIM, r2
54+0+.* <[^>]*> f382 888a msr MSPLIM_NS, r2
55+0+.* <[^>]*> f383 880b msr PSPLIM, r3
56+0+.* <[^>]*> f383 888b msr PSPLIM_NS, r3
57+0+.* <[^>]*> f383 880b msr PSPLIM, r3
58+0+.* <[^>]*> f383 888b msr PSPLIM_NS, r3
59+0+.* <[^>]*> f384 8810 msr PRIMASK, r4
60+0+.* <[^>]*> f384 8890 msr PRIMASK_NS, r4
61+0+.* <[^>]*> f384 8810 msr PRIMASK, r4
62+0+.* <[^>]*> f384 8890 msr PRIMASK_NS, r4
63+0+.* <[^>]*> f385 8811 msr BASEPRI, r5
64+0+.* <[^>]*> f385 8891 msr BASEPRI_NS, r5
65+0+.* <[^>]*> f385 8811 msr BASEPRI, r5
66+0+.* <[^>]*> f385 8891 msr BASEPRI_NS, r5
67+0+.* <[^>]*> f386 8813 msr FAULTMASK, r6
68+0+.* <[^>]*> f386 8893 msr FAULTMASK_NS, r6
69+0+.* <[^>]*> f386 8813 msr FAULTMASK, r6
70+0+.* <[^>]*> f386 8893 msr FAULTMASK_NS, r6
71+0+.* <[^>]*> f387 8814 msr CONTROL, r7
72+0+.* <[^>]*> f387 8894 msr CONTROL_NS, r7
73+0+.* <[^>]*> f387 8814 msr CONTROL, r7
74+0+.* <[^>]*> f387 8894 msr CONTROL_NS, r7
75+0+.* <[^>]*> f388 8898 msr SP_NS, r8
76+0+.* <[^>]*> f388 8898 msr SP_NS, r8
--- a/gas/testsuite/gas/arm/archv8m-cmse-msr.s
+++ b/gas/testsuite/gas/arm/archv8m-cmse-msr.s
@@ -1,16 +1,109 @@
1-msr MSP, r0
2-msr MSP_NS, r0
3-msr PSP, r0
4-msr PSP_NS, r0
5-msr msp, r0
6-msr msp_ns, r0
7-msr psp, r0
8-msr psp_ns, r0
1+T:
2+## MRS ##
3+
4+# MSP
95 mrs r0, MSP
106 mrs r0, MSP_NS
11-mrs r0, PSP
12-mrs r0, PSP_NS
137 mrs r0, msp
148 mrs r0, msp_ns
15-mrs r0, psp
16-mrs r0, psp_ns
9+
10+# PSP
11+mrs r1, PSP
12+mrs r1, PSP_NS
13+mrs r1, psp
14+mrs r1, psp_ns
15+
16+# MSPLIM
17+mrs r2, MSPLIM
18+mrs r2, MSPLIM_NS
19+mrs r2, msplim
20+mrs r2, msplim_ns
21+
22+# PSPLIM
23+mrs r3, PSPLIM
24+mrs r3, PSPLIM_NS
25+mrs r3, psplim
26+mrs r3, psplim_ns
27+
28+# PRIMASK
29+mrs r4, PRIMASK
30+mrs r4, PRIMASK_NS
31+mrs r4, primask
32+mrs r4, primask_ns
33+
34+# BASEPRI
35+mrs r5, BASEPRI
36+mrs r5, BASEPRI_NS
37+mrs r5, basepri
38+mrs r5, basepri_ns
39+
40+# FAULTMASK
41+mrs r6, FAULTMASK
42+mrs r6, FAULTMASK_NS
43+mrs r6, faultmask
44+mrs r6, faultmask_ns
45+
46+# CONTROL
47+mrs r7, CONTROL
48+mrs r7, CONTROL_NS
49+mrs r7, control
50+mrs r7, control_ns
51+
52+# SP_NS
53+mrs r8, SP_NS
54+mrs r8, sp_ns
55+
56+
57+## MSR ##
58+
59+# MSP
60+msr MSP, r0
61+msr MSP_NS, r0
62+msr msp, r0
63+msr msp_ns, r0
64+
65+# PSP
66+msr PSP, r1
67+msr PSP_NS, r1
68+msr psp, r1
69+msr psp_ns, r1
70+
71+# MSPLIM
72+msr MSPLIM, r2
73+msr MSPLIM_NS, r2
74+msr msplim, r2
75+msr msplim_ns, r2
76+
77+# PSPLIM
78+msr PSPLIM, r3
79+msr PSPLIM_NS, r3
80+msr psplim, r3
81+msr psplim_ns, r3
82+
83+# PRIMASK
84+msr PRIMASK, r4
85+msr PRIMASK_NS, r4
86+msr primask, r4
87+msr primask_ns, r4
88+
89+# BASEPRI
90+msr BASEPRI, r5
91+msr BASEPRI_NS, r5
92+msr basepri, r5
93+msr basepri_ns, r5
94+
95+# FAULTMASK
96+msr FAULTMASK, r6
97+msr FAULTMASK_NS, r6
98+msr faultmask, r6
99+msr faultmask_ns, r6
100+
101+# CONTROL
102+msr CONTROL, r7
103+msr CONTROL_NS, r7
104+msr control, r7
105+msr control_ns, r7
106+
107+# SP_NS
108+msr SP_NS, r8
109+msr sp_ns, r8
--- a/gas/testsuite/gas/arm/archv8m-main-dsp-4.d
+++ b/gas/testsuite/gas/arm/archv8m-main-dsp-4.d
@@ -6,19 +6,71 @@
66 .*: +file format .*arm.*
77
88 Disassembly of section .text:
9-0+.* <[^>]*> f380 8808 msr MSP, r0
10-0+.* <[^>]*> f380 8888 msr MSP_NS, r0
11-0+.* <[^>]*> f380 8809 msr PSP, r0
12-0+.* <[^>]*> f380 8889 msr PSP_NS, r0
13-0+.* <[^>]*> f380 8808 msr MSP, r0
14-0+.* <[^>]*> f380 8888 msr MSP_NS, r0
15-0+.* <[^>]*> f380 8809 msr PSP, r0
16-0+.* <[^>]*> f380 8889 msr PSP_NS, r0
179 0+.* <[^>]*> f3ef 8008 mrs r0, MSP
1810 0+.* <[^>]*> f3ef 8088 mrs r0, MSP_NS
19-0+.* <[^>]*> f3ef 8009 mrs r0, PSP
20-0+.* <[^>]*> f3ef 8089 mrs r0, PSP_NS
2111 0+.* <[^>]*> f3ef 8008 mrs r0, MSP
2212 0+.* <[^>]*> f3ef 8088 mrs r0, MSP_NS
23-0+.* <[^>]*> f3ef 8009 mrs r0, PSP
24-0+.* <[^>]*> f3ef 8089 mrs r0, PSP_NS
13+0+.* <[^>]*> f3ef 8109 mrs r1, PSP
14+0+.* <[^>]*> f3ef 8189 mrs r1, PSP_NS
15+0+.* <[^>]*> f3ef 8109 mrs r1, PSP
16+0+.* <[^>]*> f3ef 8189 mrs r1, PSP_NS
17+0+.* <[^>]*> f3ef 820a mrs r2, MSPLIM
18+0+.* <[^>]*> f3ef 828a mrs r2, MSPLIM_NS
19+0+.* <[^>]*> f3ef 820a mrs r2, MSPLIM
20+0+.* <[^>]*> f3ef 828a mrs r2, MSPLIM_NS
21+0+.* <[^>]*> f3ef 830b mrs r3, PSPLIM
22+0+.* <[^>]*> f3ef 838b mrs r3, PSPLIM_NS
23+0+.* <[^>]*> f3ef 830b mrs r3, PSPLIM
24+0+.* <[^>]*> f3ef 838b mrs r3, PSPLIM_NS
25+0+.* <[^>]*> f3ef 8410 mrs r4, PRIMASK
26+0+.* <[^>]*> f3ef 8490 mrs r4, PRIMASK_NS
27+0+.* <[^>]*> f3ef 8410 mrs r4, PRIMASK
28+0+.* <[^>]*> f3ef 8490 mrs r4, PRIMASK_NS
29+0+.* <[^>]*> f3ef 8511 mrs r5, BASEPRI
30+0+.* <[^>]*> f3ef 8591 mrs r5, BASEPRI_NS
31+0+.* <[^>]*> f3ef 8511 mrs r5, BASEPRI
32+0+.* <[^>]*> f3ef 8591 mrs r5, BASEPRI_NS
33+0+.* <[^>]*> f3ef 8613 mrs r6, FAULTMASK
34+0+.* <[^>]*> f3ef 8693 mrs r6, FAULTMASK_NS
35+0+.* <[^>]*> f3ef 8613 mrs r6, FAULTMASK
36+0+.* <[^>]*> f3ef 8693 mrs r6, FAULTMASK_NS
37+0+.* <[^>]*> f3ef 8714 mrs r7, CONTROL
38+0+.* <[^>]*> f3ef 8794 mrs r7, CONTROL_NS
39+0+.* <[^>]*> f3ef 8714 mrs r7, CONTROL
40+0+.* <[^>]*> f3ef 8794 mrs r7, CONTROL_NS
41+0+.* <[^>]*> f3ef 8898 mrs r8, SP_NS
42+0+.* <[^>]*> f3ef 8898 mrs r8, SP_NS
43+0+.* <[^>]*> f380 8808 msr MSP, r0
44+0+.* <[^>]*> f380 8888 msr MSP_NS, r0
45+0+.* <[^>]*> f380 8808 msr MSP, r0
46+0+.* <[^>]*> f380 8888 msr MSP_NS, r0
47+0+.* <[^>]*> f381 8809 msr PSP, r1
48+0+.* <[^>]*> f381 8889 msr PSP_NS, r1
49+0+.* <[^>]*> f381 8809 msr PSP, r1
50+0+.* <[^>]*> f381 8889 msr PSP_NS, r1
51+0+.* <[^>]*> f382 880a msr MSPLIM, r2
52+0+.* <[^>]*> f382 888a msr MSPLIM_NS, r2
53+0+.* <[^>]*> f382 880a msr MSPLIM, r2
54+0+.* <[^>]*> f382 888a msr MSPLIM_NS, r2
55+0+.* <[^>]*> f383 880b msr PSPLIM, r3
56+0+.* <[^>]*> f383 888b msr PSPLIM_NS, r3
57+0+.* <[^>]*> f383 880b msr PSPLIM, r3
58+0+.* <[^>]*> f383 888b msr PSPLIM_NS, r3
59+0+.* <[^>]*> f384 8810 msr PRIMASK, r4
60+0+.* <[^>]*> f384 8890 msr PRIMASK_NS, r4
61+0+.* <[^>]*> f384 8810 msr PRIMASK, r4
62+0+.* <[^>]*> f384 8890 msr PRIMASK_NS, r4
63+0+.* <[^>]*> f385 8811 msr BASEPRI, r5
64+0+.* <[^>]*> f385 8891 msr BASEPRI_NS, r5
65+0+.* <[^>]*> f385 8811 msr BASEPRI, r5
66+0+.* <[^>]*> f385 8891 msr BASEPRI_NS, r5
67+0+.* <[^>]*> f386 8813 msr FAULTMASK, r6
68+0+.* <[^>]*> f386 8893 msr FAULTMASK_NS, r6
69+0+.* <[^>]*> f386 8813 msr FAULTMASK, r6
70+0+.* <[^>]*> f386 8893 msr FAULTMASK_NS, r6
71+0+.* <[^>]*> f387 8814 msr CONTROL, r7
72+0+.* <[^>]*> f387 8894 msr CONTROL_NS, r7
73+0+.* <[^>]*> f387 8814 msr CONTROL, r7
74+0+.* <[^>]*> f387 8894 msr CONTROL_NS, r7
75+0+.* <[^>]*> f388 8898 msr SP_NS, r8
76+0+.* <[^>]*> f388 8898 msr SP_NS, r8
--- a/opcodes/ChangeLog.arm
+++ b/opcodes/ChangeLog.arm
@@ -1,3 +1,12 @@
1+2016-08-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
2+
3+ Backport from mainline
4+ 2016-08-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
5+
6+ * arm-dis.c (psr_name): Use hex as case labels. Add detection for
7+ MSPLIM, PSPLIM, MSPLIM_NS, PSPLIM_NS, PRIMASK_NS, BASEPRI_NS,
8+ FAULTMASK_NS, CONTROL_NS and SP_NS special registers.
9+
110 2016-03-29 Thomas Preud'homme <thomas.preudhomme@arm.com>
211
312 * arm-dis.c (get_sym_code_type): Use ARM_GET_SYM_BRANCH_TYPE to get
--- a/opcodes/arm-dis.c
+++ b/opcodes/arm-dis.c
@@ -5242,22 +5242,31 @@ psr_name (int regno)
52425242 {
52435243 switch (regno)
52445244 {
5245- case 0: return "APSR";
5246- case 1: return "IAPSR";
5247- case 2: return "EAPSR";
5248- case 3: return "PSR";
5249- case 5: return "IPSR";
5250- case 6: return "EPSR";
5251- case 7: return "IEPSR";
5252- case 8: return "MSP";
5253- case 9: return "PSP";
5254- case 16: return "PRIMASK";
5255- case 17: return "BASEPRI";
5256- case 18: return "BASEPRI_MAX";
5257- case 19: return "FAULTMASK";
5258- case 20: return "CONTROL";
5245+ case 0x0: return "APSR";
5246+ case 0x1: return "IAPSR";
5247+ case 0x2: return "EAPSR";
5248+ case 0x3: return "PSR";
5249+ case 0x5: return "IPSR";
5250+ case 0x6: return "EPSR";
5251+ case 0x7: return "IEPSR";
5252+ case 0x8: return "MSP";
5253+ case 0x9: return "PSP";
5254+ case 0xa: return "MSPLIM";
5255+ case 0xb: return "PSPLIM";
5256+ case 0x10: return "PRIMASK";
5257+ case 0x11: return "BASEPRI";
5258+ case 0x12: return "BASEPRI_MAX";
5259+ case 0x13: return "FAULTMASK";
5260+ case 0x14: return "CONTROL";
52595261 case 0x88: return "MSP_NS";
52605262 case 0x89: return "PSP_NS";
5263+ case 0x8a: return "MSPLIM_NS";
5264+ case 0x8b: return "PSPLIM_NS";
5265+ case 0x90: return "PRIMASK_NS";
5266+ case 0x91: return "BASEPRI_NS";
5267+ case 0x93: return "FAULTMASK_NS";
5268+ case 0x94: return "CONTROL_NS";
5269+ case 0x98: return "SP_NS";
52615270 default: return "<unknown>";
52625271 }
52635272 }