summaryrefslogtreecommitdiffstats
path: root/poky/meta/recipes-devtools/binutils/binutils/0001-Change-the-ARM-assembler-s-ADR-and-ADRl-pseudo-ops-s.patch
diff options
context:
space:
mode:
Diffstat (limited to 'poky/meta/recipes-devtools/binutils/binutils/0001-Change-the-ARM-assembler-s-ADR-and-ADRl-pseudo-ops-s.patch')
-rw-r--r--poky/meta/recipes-devtools/binutils/binutils/0001-Change-the-ARM-assembler-s-ADR-and-ADRl-pseudo-ops-s.patch176
1 files changed, 0 insertions, 176 deletions
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0001-Change-the-ARM-assembler-s-ADR-and-ADRl-pseudo-ops-s.patch b/poky/meta/recipes-devtools/binutils/binutils/0001-Change-the-ARM-assembler-s-ADR-and-ADRl-pseudo-ops-s.patch
deleted file mode 100644
index 8604e678d..000000000
--- a/poky/meta/recipes-devtools/binutils/binutils/0001-Change-the-ARM-assembler-s-ADR-and-ADRl-pseudo-ops-s.patch
+++ /dev/null
@@ -1,176 +0,0 @@
-From fc6141f097056f830a412afebed8d81a9d72b696 Mon Sep 17 00:00:00 2001
-From: Nick Clifton <nickc@redhat.com>
-Date: Wed, 20 Jun 2018 12:38:10 +0100
-Subject: [PATCH] Change the ARM assembler's ADR and ADRl pseudo-ops so that
- they will only set the bottom bit of imported thumb function symbols if the
- -mthumb-interwork option is active.
-
-For more information see the email thread starting here:
-https://www.sourceware.org/ml/binutils/2018-05/msg00348.html
-
- PR 21458
- * tc-arm.c (do_adr): Only set the bottom bit of an imported thumb
- function symbol address if -mthumb-interwork is active.
- (do_adrl): Likewise.
- * doc/c-arm.texi: Update descriptions of the -mthumb-interwork
- option and the ADR and ADRL pseudo-ops.
- * NEWS: Mention the new behaviour of the ADR and ADRL pseudo-ops.
- * testsuite/gas/arm/pr21458.d: Add -mthumb-interwork option to
- assembler command line.
- * testsuite/gas/arm/adr.d: Likewise.
- * testsuite/gas/arm/adrl.d: Likewise.
----
- gas/ChangeLog | 14 ++++++++++++++
- gas/NEWS | 4 ++++
- gas/config/tc-arm.c | 10 ++++++----
- gas/doc/c-arm.texi | 17 ++++++++++++++++-
- gas/testsuite/gas/arm/adr.d | 1 +
- gas/testsuite/gas/arm/adrl.d | 1 +
- gas/testsuite/gas/arm/pr21458.d | 3 ++-
- 7 files changed, 44 insertions(+), 6 deletions(-)
-
-Index: git/gas/config/tc-arm.c
-===================================================================
---- git.orig/gas/config/tc-arm.c
-+++ git/gas/config/tc-arm.c
-@@ -8410,11 +8410,12 @@ do_adr (void)
- inst.reloc.pc_rel = 1;
- inst.reloc.exp.X_add_number -= 8;
-
-- if (inst.reloc.exp.X_op == O_symbol
-+ if (support_interwork
-+ && inst.reloc.exp.X_op == O_symbol
- && inst.reloc.exp.X_add_symbol != NULL
- && S_IS_DEFINED (inst.reloc.exp.X_add_symbol)
- && THUMB_IS_FUNC (inst.reloc.exp.X_add_symbol))
-- inst.reloc.exp.X_add_number += 1;
-+ inst.reloc.exp.X_add_number |= 1;
- }
-
- /* This is a pseudo-op of the form "adrl rd, label" to be converted
-@@ -8434,11 +8435,12 @@ do_adrl (void)
- inst.size = INSN_SIZE * 2;
- inst.reloc.exp.X_add_number -= 8;
-
-- if (inst.reloc.exp.X_op == O_symbol
-+ if (support_interwork
-+ && inst.reloc.exp.X_op == O_symbol
- && inst.reloc.exp.X_add_symbol != NULL
- && S_IS_DEFINED (inst.reloc.exp.X_add_symbol)
- && THUMB_IS_FUNC (inst.reloc.exp.X_add_symbol))
-- inst.reloc.exp.X_add_number += 1;
-+ inst.reloc.exp.X_add_number |= 1;
- }
-
- static void
-Index: git/gas/doc/c-arm.texi
-===================================================================
---- git.orig/gas/doc/c-arm.texi
-+++ git/gas/doc/c-arm.texi
-@@ -317,7 +317,8 @@ instructions; that is, it should behave
- @cindex @code{-mthumb-interwork} command line option, ARM
- @item -mthumb-interwork
- This option specifies that the output generated by the assembler should
--be marked as supporting interworking.
-+be marked as supporting interworking. It also affects the behaviour
-+of the @code{ADR} and @code{ADRL} pseudo opcodes.
-
- @cindex @code{-mimplicit-it} command line option, ARM
- @item -mimplicit-it=never
-@@ -1060,6 +1061,16 @@ out of range, or if it is not defined in
- the ADR instruction, then an error will be generated. This instruction
- will not make use of the literal pool.
-
-+If @var{label} is a thumb function symbol, and thumb interworking has
-+been enabled via the @option{-mthumb-interwork} option then the bottom
-+bit of the value stored into @var{register} will be set. This allows
-+the following sequence to work as expected:
-+
-+@smallexample
-+ adr r0, thumb_function
-+ blx r0
-+@end smallexample
-+
- @cindex @code{ADRL reg,<label>} pseudo op, ARM
- @item ADRL
- @smallexample
-@@ -1076,6 +1087,10 @@ If the label is out of range, or if it i
- (and section) as the ADRL instruction, then an error will be generated.
- This instruction will not make use of the literal pool.
-
-+If @var{label} is a thumb function symbol, and thumb interworking has
-+been enabled via the @option{-mthumb-interwork} option then the bottom
-+bit of the value stored into @var{register} will be set.
-+
- @end table
-
- For information on the ARM or Thumb instruction sets, see @cite{ARM
-Index: git/gas/testsuite/gas/arm/adr.d
-===================================================================
---- git.orig/gas/testsuite/gas/arm/adr.d
-+++ git/gas/testsuite/gas/arm/adr.d
-@@ -1,3 +1,4 @@
-+#as: -mthumb-interwork
- #objdump: -dr --prefix-addresses --show-raw-insn
- #name: ADR
-
-Index: git/gas/testsuite/gas/arm/adrl.d
-===================================================================
---- git.orig/gas/testsuite/gas/arm/adrl.d
-+++ git/gas/testsuite/gas/arm/adrl.d
-@@ -1,3 +1,4 @@
-+#as: -mthumb-interwork
- #objdump: -dr --prefix-addresses --show-raw-insn
- #name: ADRL
-
-Index: git/gas/ChangeLog
-===================================================================
---- git.orig/gas/ChangeLog
-+++ git/gas/ChangeLog
-@@ -1,3 +1,17 @@
-+2018-06-20 Nick Clifton <nickc@redhat.com>
-+
-+ PR 21458
-+ * tc-arm.c (do_adr): Only set the bottom bit of an imported thumb
-+ function symbol address if -mthumb-interwork is active.
-+ (do_adrl): Likewise.
-+ * doc/c-arm.texi: Update descriptions of the -mthumb-interwork
-+ option and the ADR and ADRL pseudo-ops.
-+ * NEWS: Mention the new behaviour of the ADR and ADRL pseudo-ops.
-+ * testsuite/gas/arm/pr21458.d: Add -mthumb-interwork option to
-+ assembler command line.
-+ * testsuite/gas/arm/adr.d: Likewise.
-+ * testsuite/gas/arm/adrl.d: Likewise.
-+
- 2018-02-05 Nick Clifton <nickc@redhat.com>
-
- * po/ru.po: Updated Russian translation.
-Index: git/gas/NEWS
-===================================================================
---- git.orig/gas/NEWS
-+++ git/gas/NEWS
-@@ -1,5 +1,9 @@
- -*- text -*-
-
-+* The ADR and ADRL pseudo-instructions supported by the ARM assembler
-+ now only set the bottom bit of the address of thumb function symbols
-+ if the -mthumb-interwork command line option is active.
-+
- Changes in 2.30:
-
- * Add support for loaction views in DWARF debug line information.
-Index: git/gas/testsuite/gas/arm/pr21458.d
-===================================================================
---- git.orig/gas/testsuite/gas/arm/pr21458.d
-+++ git/gas/testsuite/gas/arm/pr21458.d
-@@ -1,8 +1,9 @@
-+#as: -mthumb-interwork
- #objdump: -d --prefix-addresses --show-raw-insn
- #name: ADR(L) for Thumb functions
- #skip: *-*-pe *-wince-* *-*-coff *-*-vxworks
-
--# Test that using ADR(L) on thumb function symbols sets the T bit.
-+# Test that using ADR(L) on thumb function symbols sets the T bit when -mthumb-interwork is active.
-
- .*: +file format .*arm.*
-
OpenPOWER on IntegriCloud