[oe-commits] Koen Kooi : binutils 2.18: don't emit symbols for neon registers

git version control git at git.openembedded.org
Wed Jul 22 16:43:45 UTC 2009


Module: openembedded.git
Branch: org.openembedded.dev
Commit: 998d60e2d579563af9236f34b72dd2370a46cf89
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=998d60e2d579563af9236f34b72dd2370a46cf89

Author: Koen Kooi <koen at openembedded.org>
Date:   Wed Jul 22 18:36:17 2009 +0200

binutils 2.18: don't emit symbols for neon registers

* this fixes building in NEON code into binaries that do runtime detection but are compiled for non-NEON platforms (e.g. pixman)

---

 .../binutils/binutils-2.18/parse-neon-vmov.diff    |   41 ++++++++++++++++++++
 recipes/binutils/binutils_2.18.bb                  |    3 +-
 2 files changed, 43 insertions(+), 1 deletions(-)

diff --git a/recipes/binutils/binutils-2.18/parse-neon-vmov.diff b/recipes/binutils/binutils-2.18/parse-neon-vmov.diff
new file mode 100644
index 0000000..e14b2a7
--- /dev/null
+++ b/recipes/binutils/binutils-2.18/parse-neon-vmov.diff
@@ -0,0 +1,41 @@
+===================================================================
+RCS file: /cvs/src/src/gas/config/tc-arm.c,v
+retrieving revision 1.353
+retrieving revision 1.354
+diff -u -r1.353 -r1.354
+--- src/gas/config/tc-arm.c	2008/03/27 14:12:15	1.353
++++ src/gas/config/tc-arm.c	2008/03/28 18:13:52	1.354
+@@ -5209,16 +5209,6 @@
+               inst.operands[i].present = 1;
+             }
+         }
+-      else if (parse_qfloat_immediate (&ptr, &inst.operands[i].imm) == SUCCESS)
+-          /* Case 2: VMOV<c><q>.<dt> <Qd>, #<float-imm>
+-             Case 3: VMOV<c><q>.<dt> <Dd>, #<float-imm>
+-             Case 10: VMOV.F32 <Sd>, #<imm>
+-             Case 11: VMOV.F64 <Dd>, #<imm>  */
+-        inst.operands[i].immisfloat = 1;
+-      else if (parse_big_immediate (&ptr, i) == SUCCESS)
+-          /* Case 2: VMOV<c><q>.<dt> <Qd>, #<imm>
+-             Case 3: VMOV<c><q>.<dt> <Dd>, #<imm>  */
+-        ;
+       else if ((val = arm_typed_reg_parse (&ptr, REG_TYPE_NSDQ, &rtype,
+                                            &optype)) != FAIL)
+         {
+@@ -5258,6 +5248,16 @@
+               inst.operands[i++].present = 1;
+             }
+         }
++      else if (parse_qfloat_immediate (&ptr, &inst.operands[i].imm) == SUCCESS)
++          /* Case 2: VMOV<c><q>.<dt> <Qd>, #<float-imm>
++             Case 3: VMOV<c><q>.<dt> <Dd>, #<float-imm>
++             Case 10: VMOV.F32 <Sd>, #<imm>
++             Case 11: VMOV.F64 <Dd>, #<imm>  */
++        inst.operands[i].immisfloat = 1;
++      else if (parse_big_immediate (&ptr, i) == SUCCESS)
++          /* Case 2: VMOV<c><q>.<dt> <Qd>, #<imm>
++             Case 3: VMOV<c><q>.<dt> <Dd>, #<imm>  */
++        ;
+       else
+         {
+           first_error (_("expected <Rm> or <Dm> or <Qm> operand"));
diff --git a/recipes/binutils/binutils_2.18.bb b/recipes/binutils/binutils_2.18.bb
index 159d97f..b1ae402 100644
--- a/recipes/binutils/binutils_2.18.bb
+++ b/recipes/binutils/binutils_2.18.bb
@@ -1,4 +1,4 @@
-INC_PR = "r7"
+INC_PR = "r8"
 PR = "${INC_PR}.1"
 
 require binutils.inc
@@ -16,6 +16,7 @@ SRC_URI = "\
      file://binutils-uclibc-gas-needs-libm.patch;patch=1 \
      file://binutils-x86_64_i386_biarch.patch;patch=1 \
      file://binutils-section-in-segment.patch;patch=1;pnum=0 \
+     file://parse-neon-vmov.diff;patch=1 \
      "
 
 # powerpc patches





More information about the Openembedded-commits mailing list