Skip to content

Commit 96b948a

Browse files
committed
binutils: Pull in upstream fix for building on Cortex-M23
Signed-off-by: Kumar Gala <[email protected]>
1 parent ef218ea commit 96b948a

File tree

1 file changed

+109
-0
lines changed

1 file changed

+109
-0
lines changed
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
From 8fe9a076adf308ec813246a96f915c5ab5b6a75f Mon Sep 17 00:00:00 2001
2+
From: Andre Vieira <[email protected]>
3+
Date: Tue, 21 May 2019 14:51:43 +0100
4+
Subject: [PATCH] [GAS, Arm] PR24559: Fix pseudo load-operations for Armv8-M
5+
Baseline
6+
7+
gas/ChangeLog:
8+
2019-05-21 Andre Vieira <[email protected]>
9+
10+
PR 24559
11+
* config/tc-arm.c (move_or_literal_pool): Set size_req to 0
12+
for MOVW replacement.
13+
* testsuite/gas/arm/load-pseudo.s: New test input.
14+
* testsuite/gas/arm/m0-load-pseudo.d: New test.
15+
* testsuite/gas/arm/m23-load-pseudo.d: New test.
16+
* testsuite/gas/arm/m33-load-pseudo.d: New test.
17+
---
18+
gas/config/tc-arm.c | 5 +++++
19+
gas/testsuite/gas/arm/load-pseudo.s | 3 +++
20+
gas/testsuite/gas/arm/m0-load-pseudo.d | 12 ++++++++++++
21+
gas/testsuite/gas/arm/m23-load-pseudo.d | 12 ++++++++++++
22+
gas/testsuite/gas/arm/m33-load-pseudo.d | 11 +++++++++++
23+
6 files changed, 53 insertions(+)
24+
create mode 100644 gas/testsuite/gas/arm/load-pseudo.s
25+
create mode 100644 gas/testsuite/gas/arm/m0-load-pseudo.d
26+
create mode 100644 gas/testsuite/gas/arm/m23-load-pseudo.d
27+
create mode 100644 gas/testsuite/gas/arm/m33-load-pseudo.d
28+
29+
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
30+
index ff7f9ad33d..136df3340d 100644
31+
--- a/gas/config/tc-arm.c
32+
+++ b/gas/config/tc-arm.c
33+
@@ -8696,6 +8696,11 @@ move_or_literal_pool (int i, enum lit_type t, bfd_boolean mode_3)
34+
inst.instruction |= (imm & 0x0800) << 15;
35+
inst.instruction |= (imm & 0x0700) << 4;
36+
inst.instruction |= (imm & 0x00ff);
37+
+ /* In case this replacement is being done on Armv8-M
38+
+ Baseline we need to make sure to disable the
39+
+ instruction size check, as otherwise GAS will reject
40+
+ the use of this T32 instruction. */
41+
+ inst.size_req = 0;
42+
return TRUE;
43+
}
44+
}
45+
diff --git a/gas/testsuite/gas/arm/load-pseudo.s b/gas/testsuite/gas/arm/load-pseudo.s
46+
new file mode 100644
47+
index 0000000000..2102522b71
48+
--- /dev/null
49+
+++ b/gas/testsuite/gas/arm/load-pseudo.s
50+
@@ -0,0 +1,3 @@
51+
+.syntax unified
52+
+ldr r0, =(0x30)
53+
+ldr r0, =(0x70000000)
54+
diff --git a/gas/testsuite/gas/arm/m0-load-pseudo.d b/gas/testsuite/gas/arm/m0-load-pseudo.d
55+
new file mode 100644
56+
index 0000000000..cc7e08518f
57+
--- /dev/null
58+
+++ b/gas/testsuite/gas/arm/m0-load-pseudo.d
59+
@@ -0,0 +1,12 @@
60+
+# name: Load pseudo-operation for Cortex-M0
61+
+# as: -mcpu=cortex-m0
62+
+# objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
63+
+# source: load-pseudo.s
64+
+
65+
+.*: +file format .*arm.*
66+
+
67+
+
68+
+Disassembly of section .text:
69+
+[^>]*> 4800 ldr r0, \[pc, #0\] ; \(00000004 [^>]*>\)
70+
+[^>]*> 4801 ldr r0, \[pc, #4\] ; \(00000008 [^>]*>\)
71+
+#...
72+
diff --git a/gas/testsuite/gas/arm/m23-load-pseudo.d b/gas/testsuite/gas/arm/m23-load-pseudo.d
73+
new file mode 100644
74+
index 0000000000..2e0dbe5479
75+
--- /dev/null
76+
+++ b/gas/testsuite/gas/arm/m23-load-pseudo.d
77+
@@ -0,0 +1,12 @@
78+
+# name: Load pseudo-operation for Cortex-M23
79+
+# as: -mcpu=cortex-m23
80+
+# objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
81+
+# source: load-pseudo.s
82+
+
83+
+.*: +file format .*arm.*
84+
+
85+
+
86+
+Disassembly of section .text:
87+
+[^>]*> f240 0030 movw r0, #48 ; 0x30
88+
+[^>]*> 4800 ldr r0, \[pc, #0\] ; \(00000008 [^>]*>\)
89+
+#...
90+
diff --git a/gas/testsuite/gas/arm/m33-load-pseudo.d b/gas/testsuite/gas/arm/m33-load-pseudo.d
91+
new file mode 100644
92+
index 0000000000..e77bffd0f4
93+
--- /dev/null
94+
+++ b/gas/testsuite/gas/arm/m33-load-pseudo.d
95+
@@ -0,0 +1,11 @@
96+
+# name: Load pseudo-operation for Cortex-M33
97+
+# as: -mcpu=cortex-m33
98+
+# objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
99+
+# source: load-pseudo.s
100+
+
101+
+.*: +file format .*arm.*
102+
+
103+
+
104+
+Disassembly of section .text:
105+
+[^>]*> f04f 0030 mov.w r0, #48 ; 0x30
106+
+[^>]*> f04f 40e0 mov.w r0, #1879048192 ; 0x70000000
107+
--
108+
2.20.1
109+

0 commit comments

Comments
 (0)