gcc: Backport patch from trunk to fix ICE seen on armv7 with mesa-xlib

This patch is a backport of http://patchwork.ozlabs.org/patch/110517/

(From OE-Core rev: 048c31c4e19d1bb060c79011cb25dfeff51c3ef1)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Khem Raj 2011-12-05 21:21:21 -08:00 committed by Richard Purdie
parent c7a91dac2c
commit bf6be18e9f
3 changed files with 36 additions and 5 deletions

View File

@ -23,10 +23,6 @@ EGLIBCVERSION ?= "2.13"
UCLIBCVERSION ?= "0.9.32"
LINUXLIBCVERSION ?= "3.1"
# Temporary workaround for gcc 4.6.0 ICE with beagleboard
# gcc bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47719
TARGET_CC_ARCH_arm_pn-mesa-xlib := "${@'${TARGET_CC_ARCH}'.replace('armv7-a','armv5')}"
PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
PREFERRED_VERSION_gcc-cross ?= "${GCCVERSION}"
PREFERRED_VERSION_gcc-cross-initial ?= "${GCCVERSION}"

View File

@ -1,6 +1,6 @@
require gcc-common.inc
PR = "r18"
PR = "r19"
# Third digit in PV should be incremented after a minor release
# happens from this branch on gcc e.g. currently its 4.6.0
@ -72,6 +72,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};proto=http \
file://pr46934.patch \
file://pr32219.patch \
file://pr47551.patch \
file://gcc-arm-set-cost.patch \
"
SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch "

View File

@ -0,0 +1,34 @@
2011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
gcc/
Backport from mainline:
2011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
* config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
(arm_size_rtx_costs): Likewise.
=== modified file 'gcc/config/arm/arm.c'
--- old/gcc/config/arm/arm.c 2011-08-12 08:08:31 +0000
+++ new/gcc/config/arm/arm.c 2011-08-18 13:53:37 +0000
@@ -7464,6 +7464,9 @@
*total = COSTS_N_INSNS (4);
return true;
+ case SET:
+ return false;
+
default:
*total = COSTS_N_INSNS (4);
return false;
@@ -7811,6 +7814,9 @@
*total = COSTS_N_INSNS (1) + 1;
return true;
+ case SET:
+ return false;
+
default:
if (mode != VOIDmode)
*total = COSTS_N_INSNS (ARM_NUM_REGS (mode));