public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gcc] rhel-f41-base: 4.4.1-13
@ 2026-06-29 12:24 Jakub Jelinek
0 siblings, 0 replies; 2+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:24 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/gcc
Branch : rhel-f41-base
Commit : 153c32b01a448ba9d5da041c6010664cfefeece8
Author : Jakub Jelinek <jakub@fedoraproject.org>
Date : 2009-09-11T09:52:12+00:00
Stats : +516/-0 in 1 file(s)
URL : https://src.fedoraproject.org/rpms/gcc/c/153c32b01a448ba9d5da041c6010664cfefeece8?branch=rhel-f41-base
Log:
4.4.1-13
---
diff --git a/gcc44-pr41175-2.patch b/gcc44-pr41175-2.patch
new file mode 100644
index 0000000..aade733
--- /dev/null
+++ b/gcc44-pr41175-2.patch
@@ -0,0 +1,516 @@
+2009-09-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/41175
+ * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Handle savres
+ if sp_offset != 0 and frame_reg_rtx != sp_reg_rtx. Use gen_add3_insn
+ instead of gen_addsi3.
+ (rs6000_emit_epilogue): Set r11 from offsetted frame_reg_rtx instead
+ sp_reg_rtx, if frame_reg_rtx is r11, adjust sp_offset. Use
+ gen_add3_insn instead of gen_addsi3. Merge two adjacent ifs with the
+ same condition.
+
+ * gcc.target/powerpc/pr41175.c: New test.
+
+--- gcc/config/rs6000/rs6000.c.jj 2009-09-09 20:46:57.000000000 +0200
++++ gcc/config/rs6000/rs6000.c 2009-09-11 10:29:01.101406443 +0200
+@@ -18104,8 +18104,12 @@ rs6000_emit_stack_reset (rs6000_stack_t
+ if (frame_reg_rtx != sp_reg_rtx)
+ {
+ if (sp_offset != 0)
+- return emit_insn (gen_addsi3 (sp_reg_rtx, frame_reg_rtx,
+- GEN_INT (sp_offset)));
++ {
++ rtx dest_reg = savres ? gen_rtx_REG (Pmode, 11) : sp_reg_rtx;
++
++ return emit_insn (gen_add3_insn (dest_reg, frame_reg_rtx,
++ GEN_INT (sp_offset)));
++ }
+ else if (!savres)
+ return emit_move_insn (sp_reg_rtx, frame_reg_rtx);
+ }
+@@ -19541,9 +19545,13 @@ rs6000_emit_epilogue (int sibcall)
+ rs6000_emit_stack_reset (info, sp_reg_rtx, frame_reg_rtx,
+ sp_offset, can_use_exit);
+ else
+- emit_insn (gen_addsi3 (gen_rtx_REG (Pmode, 11),
+- sp_reg_rtx,
+- GEN_INT (sp_offset - info->fp_size)));
++ {
++ emit_insn (gen_add3_insn (gen_rtx_REG (Pmode, 11),
++ frame_reg_rtx,
++ GEN_INT (sp_offset - info->fp_size)));
++ if (REGNO (frame_reg_rtx) == 11)
++ sp_offset += info->fp_size;
++ }
+
+ par = rs6000_make_savres_rtx (info, frame_reg_rtx,
+ info->gp_save_offset, reg_mode,
+@@ -19648,12 +19656,10 @@ rs6000_emit_epilogue (int sibcall)
+ info->lr_save_offset + sp_offset);
+
+ emit_move_insn (gen_rtx_REG (Pmode, 0), mem);
++ emit_move_insn (gen_rtx_REG (Pmode, LR_REGNO),
++ gen_rtx_REG (Pmode, 0));
+ }
+
+- if (restore_lr && !restoring_GPRs_inline)
+- emit_move_insn (gen_rtx_REG (Pmode, LR_REGNO),
+- gen_rtx_REG (Pmode, 0));
+-
+ /* Restore fpr's if we need to do it without calling a function. */
+ if (restoring_FPRs_inline)
+ for (i = 0; i < 64 - info->first_fp_reg_save; i++)
+--- gcc/testsuite/gcc.target/powerpc/pr41175.c.jj 2009-09-11 10:28:50.529527601 +0200
++++ gcc/testsuite/gcc.target/powerpc/pr41175.c 2009-09-11 10:18:59.000000000 +0200
+@@ -0,0 +1,451 @@
++/* PR target/41175 */
++/* { dg-do run } */
++/* { dg-options "-Os" } */
++
++#define X2(n) X1(n##0) X1(n##1)
++#define X4(n) X2(n##0) X2(n##1)
++#define X8(n) X4(n##0) X4(n##1)
++
++volatile int ll;
++
++__attribute__((noinline)) void
++foo (void)
++{
++ asm volatile ("" : : : "memory");
++}
++
++__attribute__((noinline)) void
++bar (char *p)
++{
++ asm volatile ("" : : "r" (p) : "memory");
++}
++
++__attribute__((noinline)) void
++f1 (void)
++{
++ int mem;
++#undef X1
++#define X1(n) int gpr##n = 0;
++ X8(a) X8(b) X8(c)
++#undef X1
++#define X1(n) "+r" (gpr##n),
++ asm volatile ("" : X8(a) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(b) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(c) "=m" (mem) : : "memory");
++ foo ();
++#undef X1
++#define X1(n) "r" (gpr##n),
++ asm volatile ("" : : X8(a) "m" (mem) : "memory");
++ asm volatile ("" : : X8(b) "m" (mem) : "memory");
++ asm volatile ("" : : X8(c) "m" (mem) : "memory");
++}
++
++__attribute__((noinline)) void
++f2 (void)
++{
++ int mem;
++#undef X1
++#define X1(n) int gpr##n = 0;
++ X8(a) X8(b) X8(c)
++#undef X1
++#define X1(n) "+r" (gpr##n),
++ asm volatile ("" : X8(a) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(b) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(c) "=m" (mem) : : "memory");
++ char *pp = __builtin_alloca (ll);
++ bar (pp);
++#undef X1
++#define X1(n) "r" (gpr##n),
++ asm volatile ("" : : X8(a) "m" (mem) : "memory");
++ asm volatile ("" : : X8(b) "m" (mem) : "memory");
++ asm volatile ("" : : X8(c) "m" (mem) : "memory");
++}
++
++__attribute__((noinline)) void
++f3 (void)
++{
++ int mem;
++#undef X1
++#define X1(n) int gpr##n = 0;
++ X8(a) X8(b) X8(c)
++#undef X1
++#define X1(n) "+r" (gpr##n),
++ asm volatile ("" : X8(a) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(b) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(c) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "r" (gpr##n),
++ asm volatile ("" : : X8(a) "m" (mem) : "memory");
++ asm volatile ("" : : X8(b) "m" (mem) : "memory");
++ asm volatile ("" : : X8(c) "m" (mem) : "memory");
++}
++
++__attribute__((noinline)) void
++f4 (void)
++{
++ int mem;
++#undef X1
++#define X1(n) int gpr##n = 0;
++ X8(a) X8(b) X8(c)
++#undef X1
++#define X1(n) double fpr##n = 0.0;
++ X4(d)
++#undef X1
++#define X1(n) "+r" (gpr##n),
++ asm volatile ("" : X8(a) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(b) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(c) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "+f" (fpr##n),
++ asm volatile ("" : X4(d) "=m" (mem) : : "memory");
++ foo ();
++#undef X1
++#define X1(n) "r" (gpr##n),
++ asm volatile ("" : : X8(a) "m" (mem) : "memory");
++ asm volatile ("" : : X8(b) "m" (mem) : "memory");
++ asm volatile ("" : : X8(c) "m" (mem) : "memory");
++#undef X1
++#define X1(n) "f" (fpr##n),
++ asm volatile ("" : : X4(d) "m" (mem) : "memory");
++}
++
++__attribute__((noinline)) void
++f5 (void)
++{
++ int mem;
++#undef X1
++#define X1(n) int gpr##n = 0;
++ X8(a) X8(b) X8(c)
++#undef X1
++#define X1(n) double fpr##n = 0.0;
++ X4(d)
++#undef X1
++#define X1(n) "+r" (gpr##n),
++ asm volatile ("" : X8(a) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(b) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(c) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "+f" (fpr##n),
++ asm volatile ("" : X4(d) "=m" (mem) : : "memory");
++ char *pp = __builtin_alloca (ll);
++ bar (pp);
++#undef X1
++#define X1(n) "r" (gpr##n),
++ asm volatile ("" : : X8(a) "m" (mem) : "memory");
++ asm volatile ("" : : X8(b) "m" (mem) : "memory");
++ asm volatile ("" : : X8(c) "m" (mem) : "memory");
++#undef X1
++#define X1(n) "f" (fpr##n),
++ asm volatile ("" : : X4(d) "m" (mem) : "memory");
++}
++
++__attribute__((noinline)) void
++f6 (void)
++{
++ int mem;
++#undef X1
++#define X1(n) int gpr##n = 0;
++ X8(a) X8(b) X8(c)
++#undef X1
++#define X1(n) double fpr##n = 0.0;
++ X4(d)
++#undef X1
++#define X1(n) "+r" (gpr##n),
++ asm volatile ("" : X8(a) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(b) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(c) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "+f" (fpr##n),
++ asm volatile ("" : X4(d) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "r" (gpr##n),
++ asm volatile ("" : : X8(a) "m" (mem) : "memory");
++ asm volatile ("" : : X8(b) "m" (mem) : "memory");
++ asm volatile ("" : : X8(c) "m" (mem) : "memory");
++#undef X1
++#define X1(n) "f" (fpr##n),
++ asm volatile ("" : : X4(d) "m" (mem) : "memory");
++}
++
++__attribute__((noinline)) void
++f7 (void)
++{
++ int mem;
++#undef X1
++#define X1(n) int gpr##n = 0;
++ X8(a) X8(b) X8(c)
++#undef X1
++#define X1(n) double fpr##n = 0.0;
++ X2(d)
++#undef X1
++#define X1(n) "+r" (gpr##n),
++ asm volatile ("" : X8(a) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(b) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(c) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "+f" (fpr##n),
++ asm volatile ("" : X2(d) "=m" (mem) : : "memory");
++ foo ();
++#undef X1
++#define X1(n) "r" (gpr##n),
++ asm volatile ("" : : X8(a) "m" (mem) : "memory");
++ asm volatile ("" : : X8(b) "m" (mem) : "memory");
++ asm volatile ("" : : X8(c) "m" (mem) : "memory");
++#undef X1
++#define X1(n) "f" (fpr##n),
++ asm volatile ("" : : X2(d) "m" (mem) : "memory");
++}
++
++__attribute__((noinline)) void
++f8 (void)
++{
++ int mem;
++#undef X1
++#define X1(n) int gpr##n = 0;
++ X8(a) X8(b) X8(c)
++#undef X1
++#define X1(n) double fpr##n = 0.0;
++ X2(d)
++#undef X1
++#define X1(n) "+r" (gpr##n),
++ asm volatile ("" : X8(a) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(b) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(c) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "+f" (fpr##n),
++ asm volatile ("" : X2(d) "=m" (mem) : : "memory");
++ char *pp = __builtin_alloca (ll);
++ bar (pp);
++#undef X1
++#define X1(n) "r" (gpr##n),
++ asm volatile ("" : : X8(a) "m" (mem) : "memory");
++ asm volatile ("" : : X8(b) "m" (mem) : "memory");
++ asm volatile ("" : : X8(c) "m" (mem) : "memory");
++#undef X1
++#define X1(n) "f" (fpr##n),
++ asm volatile ("" : : X2(d) "m" (mem) : "memory");
++}
++
++__attribute__((noinline)) void
++f9 (void)
++{
++ int mem;
++#undef X1
++#define X1(n) int gpr##n = 0;
++ X8(a) X8(b) X8(c)
++#undef X1
++#define X1(n) double fpr##n = 0.0;
++ X2(d)
++#undef X1
++#define X1(n) "+r" (gpr##n),
++ asm volatile ("" : X8(a) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(b) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(c) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "+f" (fpr##n),
++ asm volatile ("" : X2(d) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "r" (gpr##n),
++ asm volatile ("" : : X8(a) "m" (mem) : "memory");
++ asm volatile ("" : : X8(b) "m" (mem) : "memory");
++ asm volatile ("" : : X8(c) "m" (mem) : "memory");
++#undef X1
++#define X1(n) "f" (fpr##n),
++ asm volatile ("" : : X2(d) "m" (mem) : "memory");
++}
++
++__attribute__((noinline)) void
++f10 (void)
++{
++ int mem;
++#undef X1
++#define X1(n) int gpr##n = 0;
++ X8(a) X8(b) X4(c)
++#undef X1
++#define X1(n) double fpr##n = 0.0;
++ X1(d)
++#undef X1
++#define X1(n) "+r" (gpr##n),
++ asm volatile ("" : X8(a) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(b) "=m" (mem) : : "memory");
++ asm volatile ("" : X4(c) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "+f" (fpr##n),
++ asm volatile ("" : X1(d) "=m" (mem) : : "memory");
++ foo ();
++#undef X1
++#define X1(n) "r" (gpr##n),
++ asm volatile ("" : : X8(a) "m" (mem) : "memory");
++ asm volatile ("" : : X8(b) "m" (mem) : "memory");
++ asm volatile ("" : : X4(c) "m" (mem) : "memory");
++#undef X1
++#define X1(n) "f" (fpr##n),
++ asm volatile ("" : : X1(d) "m" (mem) : "memory");
++}
++
++__attribute__((noinline)) void
++f11 (void)
++{
++ int mem;
++#undef X1
++#define X1(n) int gpr##n = 0;
++ X8(a) X8(b) X4(c)
++#undef X1
++#define X1(n) double fpr##n = 0.0;
++ X1(d)
++#undef X1
++#define X1(n) "+r" (gpr##n),
++ asm volatile ("" : X8(a) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(b) "=m" (mem) : : "memory");
++ asm volatile ("" : X4(c) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "+f" (fpr##n),
++ asm volatile ("" : X1(d) "=m" (mem) : : "memory");
++ char *pp = __builtin_alloca (ll);
++ bar (pp);
++#undef X1
++#define X1(n) "r" (gpr##n),
++ asm volatile ("" : : X8(a) "m" (mem) : "memory");
++ asm volatile ("" : : X8(b) "m" (mem) : "memory");
++ asm volatile ("" : : X4(c) "m" (mem) : "memory");
++#undef X1
++#define X1(n) "f" (fpr##n),
++ asm volatile ("" : : X1(d) "m" (mem) : "memory");
++}
++
++__attribute__((noinline)) void
++f12 (void)
++{
++ int mem;
++#undef X1
++#define X1(n) int gpr##n = 0;
++ X8(a) X8(b) X4(c)
++#undef X1
++#define X1(n) double fpr##n = 0.0;
++ X1(d)
++#undef X1
++#define X1(n) "+r" (gpr##n),
++ asm volatile ("" : X8(a) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(b) "=m" (mem) : : "memory");
++ asm volatile ("" : X4(c) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "+f" (fpr##n),
++ asm volatile ("" : X1(d) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "r" (gpr##n),
++ asm volatile ("" : : X8(a) "m" (mem) : "memory");
++ asm volatile ("" : : X8(b) "m" (mem) : "memory");
++ asm volatile ("" : : X4(c) "m" (mem) : "memory");
++#undef X1
++#define X1(n) "f" (fpr##n),
++ asm volatile ("" : : X1(d) "m" (mem) : "memory");
++}
++
++__attribute__((noinline)) void
++f13 (void)
++{
++ int mem;
++#undef X1
++#define X1(n) int gpr##n = 0;
++ X8(a) X8(b) X2(c)
++#undef X1
++#define X1(n) double fpr##n = 0.0;
++ X8(d)
++#undef X1
++#define X1(n) "+r" (gpr##n),
++ asm volatile ("" : X8(a) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(b) "=m" (mem) : : "memory");
++ asm volatile ("" : X2(c) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "+f" (fpr##n),
++ asm volatile ("" : X8(d) "=m" (mem) : : "memory");
++ foo ();
++#undef X1
++#define X1(n) "r" (gpr##n),
++ asm volatile ("" : : X8(a) "m" (mem) : "memory");
++ asm volatile ("" : : X8(b) "m" (mem) : "memory");
++ asm volatile ("" : : X2(c) "m" (mem) : "memory");
++#undef X1
++#define X1(n) "f" (fpr##n),
++ asm volatile ("" : : X8(d) "m" (mem) : "memory");
++}
++
++__attribute__((noinline)) void
++f14 (void)
++{
++ int mem;
++#undef X1
++#define X1(n) int gpr##n = 0;
++ X8(a) X8(b) X2(c)
++#undef X1
++#define X1(n) double fpr##n = 0.0;
++ X8(d)
++#undef X1
++#define X1(n) "+r" (gpr##n),
++ asm volatile ("" : X8(a) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(b) "=m" (mem) : : "memory");
++ asm volatile ("" : X2(c) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "+f" (fpr##n),
++ asm volatile ("" : X8(d) "=m" (mem) : : "memory");
++ char *pp = __builtin_alloca (ll);
++ bar (pp);
++#undef X1
++#define X1(n) "r" (gpr##n),
++ asm volatile ("" : : X8(a) "m" (mem) : "memory");
++ asm volatile ("" : : X8(b) "m" (mem) : "memory");
++ asm volatile ("" : : X2(c) "m" (mem) : "memory");
++#undef X1
++#define X1(n) "f" (fpr##n),
++ asm volatile ("" : : X8(d) "m" (mem) : "memory");
++}
++
++__attribute__((noinline)) void
++f15 (void)
++{
++ int mem;
++#undef X1
++#define X1(n) int gpr##n = 0;
++ X8(a) X8(b) X2(c)
++#undef X1
++#define X1(n) double fpr##n = 0.0;
++ X8(d)
++#undef X1
++#define X1(n) "+r" (gpr##n),
++ asm volatile ("" : X8(a) "=m" (mem) : : "memory");
++ asm volatile ("" : X8(b) "=m" (mem) : : "memory");
++ asm volatile ("" : X2(c) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "+f" (fpr##n),
++ asm volatile ("" : X8(d) "=m" (mem) : : "memory");
++#undef X1
++#define X1(n) "r" (gpr##n),
++ asm volatile ("" : : X8(a) "m" (mem) : "memory");
++ asm volatile ("" : : X8(b) "m" (mem) : "memory");
++ asm volatile ("" : : X2(c) "m" (mem) : "memory");
++#undef X1
++#define X1(n) "f" (fpr##n),
++ asm volatile ("" : : X8(d) "m" (mem) : "memory");
++}
++
++int
++main ()
++{
++ ll = 60;
++ f1 ();
++ f2 ();
++ f3 ();
++ f4 ();
++ f5 ();
++ f6 ();
++ f7 ();
++ f8 ();
++ f9 ();
++ f10 ();
++ f11 ();
++ f12 ();
++ f13 ();
++ f14 ();
++ f15 ();
++ return 0;
++}
^ permalink raw reply related [flat|nested] 2+ messages in thread* [rpms/gcc] rhel-f41-base: 4.4.1-13
@ 2026-06-29 12:24 Jakub Jelinek
0 siblings, 0 replies; 2+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:24 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/gcc
Branch : rhel-f41-base
Commit : e29a68e7a9b0a4eeedb6a4c5ed7c843fb24e4efb
Author : Jakub Jelinek <jakub@fedoraproject.org>
Date : 2009-09-11T10:19:55+00:00
Stats : +69/-203 in 7 file(s)
URL : https://src.fedoraproject.org/rpms/gcc/c/e29a68e7a9b0a4eeedb6a4c5ed7c843fb24e4efb?branch=rhel-f41-base
Log:
4.4.1-13
---
diff --git a/.cvsignore b/.cvsignore
index 71dab69..9b9e5e6 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,2 +1,2 @@
fastjar-0.97.tar.gz
-gcc-4.4.1-20090910.tar.bz2
+gcc-4.4.1-20090911.tar.bz2
diff --git a/gcc.spec b/gcc.spec
index 228badd..0b5052a 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,9 +1,9 @@
-%global DATE 20090910
-%global SVNREV 151593
+%global DATE 20090911
+%global SVNREV 151630
%global gcc_version 4.4.1
# Note, gcc_release must be integer, if you want to add suffixes to
# %{release}, append them after %{gcc_release} on Release: line.
-%global gcc_release 12
+%global gcc_release 13
%global _unpackaged_files_terminate_build 0
%global multilib_64_archs sparc64 ppc64 s390x x86_64
%global include_gappletviewer 1
@@ -160,9 +160,11 @@ Patch16: gcc44-unwind-debug-hook.patch
Patch17: gcc44-pr38757.patch
Patch18: gcc44-libstdc++-docs.patch
Patch19: gcc44-vta-cfgexpand-ptr-mode-pr41248.patch
-Patch20: gcc44-vta-cselib-subreg-of-value-more-pr41276.patch
-Patch21: gcc44-powerpc-libgcc_s_so.patch
-Patch22: gcc44-pr41175.patch
+Patch20: gcc44-powerpc-libgcc_s_so.patch
+Patch21: gcc44-pr41175.patch
+Patch22: gcc44-pr41175-2.patch
+Patch23: gcc44-rh518303.patch
+Patch24: gcc44-rh522577.patch
Patch1000: fastjar-0.97-segfault.patch
@@ -469,9 +471,11 @@ which are required to compile with the GNAT.
%patch18 -p0 -b .libstdc++-docs~
%endif
%patch19 -p0 -b .vta-cfgexpand-ptr-mode-pr41248~
-%patch20 -p0 -b .gcc44-vta-cselib-subreg-of-value-more-pr41276~
-%patch21 -p0 -b .powerpc-libgcc_s_so~
-%patch22 -p0 -b .pr41175~
+%patch20 -p0 -b .powerpc-libgcc_s_so~
+%patch21 -p0 -b .pr41175~
+%patch22 -p0 -b .pr41175-2~
+%patch23 -p0 -b .rh518303~
+%patch24 -p0 -b .rh522577~
# This testcase doesn't compile.
rm libjava/testsuite/libjava.lang/PR35020*
@@ -1827,6 +1831,11 @@ fi
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
%changelog
+* Fri Sep 11 2009 Jakub Jelinek <jakub@redhat.com> 4.4.1-13
+- fix ICE in debuginfo output with BLOCK_NONLOCALIZED_VARS (#518303)
+- wrap_constant when propagating for subst in debug in the combiner (#522577)
+- further fix for ppc -m32 -Os out of line gpr/fpr restoring (PR target/41175)
+
* Thu Sep 10 2009 Jakub Jelinek <jakub@redhat.com> 4.4.1-12
- update from gcc-4_4-branch
- PRs bootstrap/41180, target/41315
diff --git a/gcc44-pr41175-2.patch b/gcc44-pr41175-2.patch
index aade733..41d1b65 100644
--- a/gcc44-pr41175-2.patch
+++ b/gcc44-pr41175-2.patch
@@ -13,9 +13,9 @@
--- gcc/config/rs6000/rs6000.c.jj 2009-09-09 20:46:57.000000000 +0200
+++ gcc/config/rs6000/rs6000.c 2009-09-11 10:29:01.101406443 +0200
-@@ -18104,8 +18104,12 @@ rs6000_emit_stack_reset (rs6000_stack_t
- if (frame_reg_rtx != sp_reg_rtx)
+@@ -18083,8 +18083,12 @@ rs6000_emit_stack_reset (rs6000_stack_t
{
+ rs6000_emit_stack_tie ();
if (sp_offset != 0)
- return emit_insn (gen_addsi3 (sp_reg_rtx, frame_reg_rtx,
- GEN_INT (sp_offset)));
@@ -28,7 +28,7 @@
else if (!savres)
return emit_move_insn (sp_reg_rtx, frame_reg_rtx);
}
-@@ -19541,9 +19545,13 @@ rs6000_emit_epilogue (int sibcall)
+@@ -19525,9 +19529,13 @@ rs6000_emit_epilogue (int sibcall)
rs6000_emit_stack_reset (info, sp_reg_rtx, frame_reg_rtx,
sp_offset, can_use_exit);
else
@@ -45,7 +45,7 @@
par = rs6000_make_savres_rtx (info, frame_reg_rtx,
info->gp_save_offset, reg_mode,
-@@ -19648,12 +19656,10 @@ rs6000_emit_epilogue (int sibcall)
+@@ -19632,12 +19640,10 @@ rs6000_emit_epilogue (int sibcall)
info->lr_save_offset + sp_offset);
emit_move_insn (gen_rtx_REG (Pmode, 0), mem);
diff --git a/gcc44-rh518303.patch b/gcc44-rh518303.patch
new file mode 100644
index 0000000..271b1df
--- /dev/null
+++ b/gcc44-rh518303.patch
@@ -0,0 +1,30 @@
+2009-09-09 Jakub Jelinek <jakub@redhat.com>
+
+ * integrate.c (set_block_abstract_flags): Call
+ set_decl_abstract_flags also on BLOCK_NONLOCALIZED_VARs.
+
+--- gcc/integrate.c.jj 2009-03-04 12:12:03.000000000 +0100
++++ gcc/integrate.c 2009-09-09 18:07:07.000000000 +0200
+@@ -167,6 +167,7 @@ set_block_abstract_flags (tree stmt, int
+ {
+ tree local_decl;
+ tree subblock;
++ unsigned int i;
+
+ BLOCK_ABSTRACT (stmt) = setting;
+
+@@ -175,6 +176,14 @@ set_block_abstract_flags (tree stmt, int
+ local_decl = TREE_CHAIN (local_decl))
+ set_decl_abstract_flags (local_decl, setting);
+
++ for (i = 0; i < BLOCK_NUM_NONLOCALIZED_VARS (stmt); i++)
++ {
++ local_decl = BLOCK_NONLOCALIZED_VAR (stmt, i);
++ if ((TREE_CODE (local_decl) == VAR_DECL && !TREE_STATIC (local_decl))
++ || TREE_CODE (local_decl) == PARM_DECL)
++ set_decl_abstract_flags (local_decl, setting);
++ }
++
+ for (subblock = BLOCK_SUBBLOCKS (stmt);
+ subblock != NULL_TREE;
+ subblock = BLOCK_CHAIN (subblock))
diff --git a/gcc44-rh522577.patch b/gcc44-rh522577.patch
new file mode 100644
index 0000000..4de10d7
--- /dev/null
+++ b/gcc44-rh522577.patch
@@ -0,0 +1,15 @@
+2009-09-11 Jakub Jelinek <jakub@redhat.com>
+
+ * combine.c (propagate_for_debug_subst): Call wrap_constant on top.
+
+--- gcc/combine.c.jj 2009-09-08 12:32:31.000000000 +0200
++++ gcc/combine.c 2009-09-11 11:01:32.000000000 +0200
+@@ -2311,7 +2311,7 @@ propagate_for_debug_subst (rtx *loc, voi
+ to = simplify_gen_subreg (GET_MODE (x), to,
+ GET_MODE (from), SUBREG_BYTE (x));
+ }
+- *loc = to;
++ *loc = wrap_constant (GET_MODE (x), to);
+ pair->changed = true;
+ return -1;
+ }
diff --git a/gcc44-vta-cselib-subreg-of-value-more-pr41276.patch b/gcc44-vta-cselib-subreg-of-value-more-pr41276.patch
deleted file mode 100644
index a61935c..0000000
--- a/gcc44-vta-cselib-subreg-of-value-more-pr41276.patch
+++ /dev/null
@@ -1,188 +0,0 @@
-for gcc/ChangeLog
-from Alexandre Oliva <aoliva@redhat.com>
-
- PR debug/41276
- PR debug/41307
- * cselib.c (cselib_expand_value_rtx_cb): Document callback
- interface.
- (cselib_expand_value_rtx_1): Use callback for SUBREGs. Adjust
- for VALUEs, to implement the documented interface.
- * var-tracking.c (vt_expand_loc_callback): Handle SUBREGs.
- Adjust for VALUEs and anything else, to implement the
- documented interface.
-
-Index: gcc/cselib.c
-===================================================================
---- gcc/cselib.c.orig 2009-09-08 19:34:10.000000000 -0300
-+++ gcc/cselib.c 2009-09-09 05:20:52.000000000 -0300
-@@ -1053,7 +1053,10 @@ cselib_expand_value_rtx (rtx orig, bitma
- }
-
- /* Same as cselib_expand_value_rtx, but using a callback to try to
-- resolve VALUEs that expand to nothing. */
-+ resolve some expressions. The CB function should return ORIG if it
-+ can't or does not want to deal with a certain RTX. Any other
-+ return value, including NULL, will be used as the expansion for
-+ VALUE, without any further changes. */
-
- rtx
- cselib_expand_value_rtx_cb (rtx orig, bitmap regs_active, int max_depth,
-@@ -1068,6 +1071,9 @@ cselib_expand_value_rtx_cb (rtx orig, bi
- return cselib_expand_value_rtx_1 (orig, &evd, max_depth);
- }
-
-+/* Internal implementation of cselib_expand_value_rtx and
-+ cselib_expand_value_rtx_cb. */
-+
- static rtx
- cselib_expand_value_rtx_1 (rtx orig, struct expand_value_data *evd,
- int max_depth)
-@@ -1158,26 +1164,36 @@ cselib_expand_value_rtx_1 (rtx orig, str
-
- case SUBREG:
- {
-- rtx subreg = cselib_expand_value_rtx_1 (SUBREG_REG (orig), evd,
-- max_depth - 1);
-+ rtx subreg;
-+
-+ if (evd->callback)
-+ {
-+ subreg = evd->callback (orig, evd->regs_active, max_depth,
-+ evd->callback_arg);
-+ if (subreg != orig)
-+ return subreg;
-+ }
-+
-+ subreg = cselib_expand_value_rtx_1 (SUBREG_REG (orig), evd,
-+ max_depth - 1);
- if (!subreg)
- return NULL;
- scopy = simplify_gen_subreg (GET_MODE (orig), subreg,
- GET_MODE (SUBREG_REG (orig)),
- SUBREG_BYTE (orig));
-- if ((scopy == NULL
-- || (GET_CODE (scopy) == SUBREG
-- && !REG_P (SUBREG_REG (scopy))
-- && !MEM_P (SUBREG_REG (scopy))))
-- && (REG_P (SUBREG_REG (orig))
-- || MEM_P (SUBREG_REG (orig))))
-- return shallow_copy_rtx (orig);
-+ if (scopy == NULL
-+ || (GET_CODE (scopy) == SUBREG
-+ && !REG_P (SUBREG_REG (scopy))
-+ && !MEM_P (SUBREG_REG (scopy))))
-+ return NULL;
-+
- return scopy;
- }
-
- case VALUE:
- {
- rtx result;
-+
- if (dump_file && (dump_flags & TDF_DETAILS))
- {
- fputs ("\nexpanding ", dump_file);
-@@ -1185,20 +1201,16 @@ cselib_expand_value_rtx_1 (rtx orig, str
- fputs (" into...", dump_file);
- }
-
-- if (!evd->callback)
-- result = NULL;
-- else
-+ if (evd->callback)
- {
- result = evd->callback (orig, evd->regs_active, max_depth,
- evd->callback_arg);
-- if (result == orig)
-- result = NULL;
-- else if (result)
-- result = cselib_expand_value_rtx_1 (result, evd, max_depth);
-+
-+ if (result != orig)
-+ return result;
- }
-
-- if (!result)
-- result = expand_loc (CSELIB_VAL_PTR (orig)->locs, evd, max_depth);
-+ result = expand_loc (CSELIB_VAL_PTR (orig)->locs, evd, max_depth);
- return result;
- }
- default:
-Index: gcc/var-tracking.c
-===================================================================
---- gcc/var-tracking.c.orig 2009-09-08 19:33:55.000000000 -0300
-+++ gcc/var-tracking.c 2009-09-08 20:08:08.000000000 -0300
-@@ -6243,7 +6243,8 @@ check_wrap_constant (enum machine_mode m
- }
-
- /* Callback for cselib_expand_value, that looks for expressions
-- holding the value in the var-tracking hash tables. */
-+ holding the value in the var-tracking hash tables. Return X for
-+ standard processing, anything else is to be used as-is. */
-
- static rtx
- vt_expand_loc_callback (rtx x, bitmap regs, int max_depth, void *data)
-@@ -6254,19 +6255,46 @@ vt_expand_loc_callback (rtx x, bitmap re
- location_chain loc;
- rtx result;
-
-- gcc_assert (GET_CODE (x) == VALUE);
-+ if (GET_CODE (x) == SUBREG)
-+ {
-+ rtx subreg = SUBREG_REG (x);
-+
-+ if (GET_CODE (SUBREG_REG (x)) != VALUE)
-+ return x;
-+
-+ subreg = cselib_expand_value_rtx_cb (SUBREG_REG (x), regs,
-+ max_depth - 1,
-+ vt_expand_loc_callback, data);
-+
-+ if (!subreg)
-+ return NULL;
-+
-+ result = simplify_gen_subreg (GET_MODE (x), subreg,
-+ GET_MODE (SUBREG_REG (x)),
-+ SUBREG_BYTE (x));
-+
-+ /* Invalid SUBREGs are ok in debug info. ??? We could try
-+ alternate expansions for the VALUE as well. */
-+ if (!result && (REG_P (subreg) || MEM_P (subreg)))
-+ result = gen_rtx_raw_SUBREG (GET_MODE (x), subreg, SUBREG_BYTE (x));
-+
-+ return result;
-+ }
-+
-+ if (GET_CODE (x) != VALUE)
-+ return x;
-
- if (VALUE_RECURSED_INTO (x))
-- return NULL;
-+ return x;
-
- dv = dv_from_value (x);
- var = (variable) htab_find_with_hash (vars, dv, dv_htab_hash (dv));
-
- if (!var)
-- return NULL;
-+ return x;
-
- if (var->n_var_parts == 0)
-- return NULL;
-+ return x;
-
- gcc_assert (var->n_var_parts == 1);
-
-@@ -6283,7 +6311,10 @@ vt_expand_loc_callback (rtx x, bitmap re
- }
-
- VALUE_RECURSED_INTO (x) = false;
-- return result;
-+ if (result)
-+ return result;
-+ else
-+ return x;
- }
-
- /* Expand VALUEs in LOC, using VARS as well as cselib's equivalence
diff --git a/sources b/sources
index 23c42fb..fde2eab 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz
-e928ff85387b4b7c8f1f065a15f0a4f9 gcc-4.4.1-20090910.tar.bz2
+36739b78d9654be37ccf6019e72db459 gcc-4.4.1-20090911.tar.bz2
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-06-29 12:24 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-29 12:24 [rpms/gcc] rhel-f41-base: 4.4.1-13 Jakub Jelinek
2026-06-29 12:24 Jakub Jelinek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox