diff options
Diffstat (limited to 'packages')
-rw-r--r-- | packages/gcc/gcc-4.1.2/cse.patch | 75 | ||||
-rw-r--r-- | packages/gcc/gcc-4.1.2/gcc-4.1.1-pr13685-1.patch | 26 |
2 files changed, 0 insertions, 101 deletions
diff --git a/packages/gcc/gcc-4.1.2/cse.patch b/packages/gcc/gcc-4.1.2/cse.patch deleted file mode 100644 index 88b22c714f..0000000000 --- a/packages/gcc/gcc-4.1.2/cse.patch +++ /dev/null @@ -1,75 +0,0 @@ --- gcc-4_1-branch/gcc/cse.c 2006/07/20 14:20:26 115619 -+++ gcc-4_1-branch/gcc/cse.c 2006/07/20 15:07:25 115620 -@@ -4697,6 +4697,8 @@ - unsigned src_const_hash; - /* Table entry for constant equivalent for SET_SRC, if any. */ - struct table_elt *src_const_elt; -+ /* Table entry for the destination address. */ -+ struct table_elt *dest_addr_elt; - }; - - static void -@@ -5936,6 +5938,40 @@ - so that the destination goes into that class. */ - sets[i].src_elt = src_eqv_elt; - -+ /* Record destination addresses in the hash table. This allows us to -+ check if they are invalidated by other sets. */ -+ for (i = 0; i < n_sets; i++) -+ { -+ if (sets[i].rtl) -+ { -+ rtx x = sets[i].inner_dest; -+ struct table_elt *elt; -+ enum machine_mode mode; -+ unsigned hash; -+ -+ if (MEM_P (x)) -+ { -+ x = XEXP (x, 0); -+ mode = GET_MODE (x); -+ hash = HASH (x, mode); -+ elt = lookup (x, hash, mode); -+ if (!elt) -+ { -+ if (insert_regs (x, NULL, 0)) -+ { -+ rehash_using_reg (x); -+ hash = HASH (x, mode); -+ } -+ elt = insert (x, NULL, hash, mode); -+ } -+ -+ sets[i].dest_addr_elt = elt; -+ } -+ else -+ sets[i].dest_addr_elt = NULL; -+ } -+ } -+ - invalidate_from_clobbers (x); - - /* Some registers are invalidated by subroutine calls. Memory is -@@ -6028,12 +6064,20 @@ - } - - /* We may have just removed some of the src_elt's from the hash table. -- So replace each one with the current head of the same class. */ -+ So replace each one with the current head of the same class. -+ Also check if destination addresses have been removed. */ - - for (i = 0; i < n_sets; i++) - if (sets[i].rtl) - { -- if (sets[i].src_elt && sets[i].src_elt->first_same_value == 0) -+ if (sets[i].dest_addr_elt -+ && sets[i].dest_addr_elt->first_same_value == 0) -+ { -+ /* The elt was removed, which means this destination s not -+ valid after this instruction. */ -+ sets[i].rtl = NULL_RTX; -+ } -+ else if (sets[i].src_elt && sets[i].src_elt->first_same_value == 0) - /* If elt was removed, find current head of same class, - or 0 if nothing remains of that class. */ - { diff --git a/packages/gcc/gcc-4.1.2/gcc-4.1.1-pr13685-1.patch b/packages/gcc/gcc-4.1.2/gcc-4.1.1-pr13685-1.patch deleted file mode 100644 index c1e1dec408..0000000000 --- a/packages/gcc/gcc-4.1.2/gcc-4.1.1-pr13685-1.patch +++ /dev/null @@ -1,26 +0,0 @@ -Submitted By: Alexander E. Patrakov -Date: 2006-12-11 -Initial Package Version: 4.1.1 -Upstream Status: backport -Origin: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28621 -Description: Fix crash of programs compiled with -Os -ffast-math -(affects procps on the LiveCD) ---- gcc-4.1.1/gcc/config/i386/i386.c -+++ gcc-4.1.1/gcc/config/i386/i386.c -@@ -1502,12 +1502,10 @@ - } - - /* Validate -mpreferred-stack-boundary= value, or provide default. -- The default of 128 bits is for Pentium III's SSE __m128, but we -- don't want additional code to keep the stack aligned when -- optimizing for code size. */ -- ix86_preferred_stack_boundary = (optimize_size -- ? TARGET_64BIT ? 128 : 32 -- : 128); -+ The default of 128 bits is for Pentium III's SSE __m128, We can't -+ change it because of optimize_size. Otherwise, we can't mix object -+ files compiled with -Os and -On. */ -+ ix86_preferred_stack_boundary = 128; - if (ix86_preferred_stack_boundary_string) - { - i = atoi (ix86_preferred_stack_boundary_string); |