aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorAlexandre Oliva <oliva@adacore.com>2020-03-04 17:28:46 +0000
committerNick Clifton <nickc@redhat.com>2020-03-04 17:28:46 +0000
commit749479c8d3b63c9075d2fabf4b87b1f7109608b6 (patch)
treeea0bf41a6d7fb0dd11a33e930893a96adb2a9f38 /gas/testsuite
parent440cf44eb0f70830b8d8ac35289f84129c7a35c1 (diff)
downloadgdb-749479c8d3b63c9075d2fabf4b87b1f7109608b6.zip
gdb-749479c8d3b63c9075d2fabf4b87b1f7109608b6.tar.gz
gdb-749479c8d3b63c9075d2fabf4b87b1f7109608b6.tar.bz2
Generate a warning in the ARM assembler if a PC-relative thumb load instruction is detected in a section with insufficient alignment.
* config/tc-arm.c (md_apply_fix): Warn if a PC-relative load is detected in a section which does not have at least 4 byte alignment. * testsuite/gas/arm/armv8-ar-it-bad.s: Add alignment directive. * testsuite/gas/arm/ldr-t.s: Likewise. * testsuite/gas/arm/sp-pc-usage-t.s: Likewise. * testsuite/gas/arm/sp-pc-usage-t.d: Finish test at end of disassembly, ignoring any NOPs that may have been inserted because of section alignment. * testsuite/gas/arm/ldr-t.d: Likewise.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/gas/arm/armv8-ar-it-bad.s6
-rw-r--r--gas/testsuite/gas/arm/ldr-t.d2
-rw-r--r--gas/testsuite/gas/arm/ldr-t.s1
-rw-r--r--gas/testsuite/gas/arm/sp-pc-usage-t.d2
-rw-r--r--gas/testsuite/gas/arm/sp-pc-usage-t.s3
5 files changed, 8 insertions, 6 deletions
diff --git a/gas/testsuite/gas/arm/armv8-ar-it-bad.s b/gas/testsuite/gas/arm/armv8-ar-it-bad.s
index 9864bf8..3a67e8d 100644
--- a/gas/testsuite/gas/arm/armv8-ar-it-bad.s
+++ b/gas/testsuite/gas/arm/armv8-ar-it-bad.s
@@ -1,6 +1,6 @@
-.syntax unified
-
-.thumb
+ .syntax unified
+ .thumb
+ .align 2
@ Wide instruction in IT block is deprecated.
it eq
ldrdeq r0, [r1]
diff --git a/gas/testsuite/gas/arm/ldr-t.d b/gas/testsuite/gas/arm/ldr-t.d
index ddcd612..9763739 100644
--- a/gas/testsuite/gas/arm/ldr-t.d
+++ b/gas/testsuite/gas/arm/ldr-t.d
@@ -34,4 +34,4 @@ Disassembly of section [^>]+:
0+4e <[^>]+> f8c1 100a str.w r1, \[r1, #10\]
0+52 <[^>]+> f842 1f0a str.w r1, \[r2, #10\]!
0+56 <[^>]+> 50d1 str r1, \[r2, r3\]
-
+#pass
diff --git a/gas/testsuite/gas/arm/ldr-t.s b/gas/testsuite/gas/arm/ldr-t.s
index 4aaecdf..ba3b1e0 100644
--- a/gas/testsuite/gas/arm/ldr-t.s
+++ b/gas/testsuite/gas/arm/ldr-t.s
@@ -3,6 +3,7 @@
.thumb
.global foo
foo:
+ .align 4
@ldr-immediate
@!wback && (n == t)
diff --git a/gas/testsuite/gas/arm/sp-pc-usage-t.d b/gas/testsuite/gas/arm/sp-pc-usage-t.d
index 6dedc00..c9b0800 100644
--- a/gas/testsuite/gas/arm/sp-pc-usage-t.d
+++ b/gas/testsuite/gas/arm/sp-pc-usage-t.d
@@ -79,4 +79,4 @@ Disassembly of section .text:
000000f6 <foo\+0xf6> bf00 nop
000000f8 <foo\+0xf8> bf00 nop
000000fa <foo\+0xfa> bf00 nop
-
+#pass
diff --git a/gas/testsuite/gas/arm/sp-pc-usage-t.s b/gas/testsuite/gas/arm/sp-pc-usage-t.s
index 6cfebed..70bf0d9 100644
--- a/gas/testsuite/gas/arm/sp-pc-usage-t.s
+++ b/gas/testsuite/gas/arm/sp-pc-usage-t.s
@@ -3,7 +3,8 @@
.text
.thumb
.global foo
-foo:
+foo:
+ .align 4
@ Section A6.1.3 "Use of 0b1101 as a register specifier".
@ R13 as the source or destination register of a mov instruction.