From 998d60e2d579563af9236f34b72dd2370a46cf89 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Wed, 22 Jul 2009 18:36:17 +0200 Subject: 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 deletion(-) create mode 100644 recipes/binutils/binutils-2.18/parse-neon-vmov.diff (limited to 'recipes/binutils') 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 0000000000..e14b2a70c4 --- /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.
, # +- Case 3: VMOV.
, # +- Case 10: VMOV.F32 , # +- Case 11: VMOV.F64
, # */ +- inst.operands[i].immisfloat = 1; +- else if (parse_big_immediate (&ptr, i) == SUCCESS) +- /* Case 2: VMOV.
, # +- Case 3: VMOV.
, # */ +- ; + 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.
, # ++ Case 3: VMOV.
, # ++ Case 10: VMOV.F32 , # ++ Case 11: VMOV.F64
, # */ ++ inst.operands[i].immisfloat = 1; ++ else if (parse_big_immediate (&ptr, i) == SUCCESS) ++ /* Case 2: VMOV.
, # ++ Case 3: VMOV.
, # */ ++ ; + else + { + first_error (_("expected or or operand")); diff --git a/recipes/binutils/binutils_2.18.bb b/recipes/binutils/binutils_2.18.bb index 159d97f981..b1ae402e29 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 -- cgit v1.2.3