diff options
author | Koen Kooi <koen@openembedded.org> | 2009-07-22 18:36:17 +0200 |
---|---|---|
committer | Koen Kooi <koen@openembedded.org> | 2009-07-22 18:36:17 +0200 |
commit | 998d60e2d579563af9236f34b72dd2370a46cf89 (patch) | |
tree | 2198fb9e55f6bbe3cc81be4332de04aca550f4ce /recipes/binutils | |
parent | 32a67c42a4d24884ab991a2e3e1d72ecf5c41b51 (diff) |
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)
Diffstat (limited to 'recipes/binutils')
-rw-r--r-- | recipes/binutils/binutils-2.18/parse-neon-vmov.diff | 41 | ||||
-rw-r--r-- | 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 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<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 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 |