summaryrefslogtreecommitdiff
path: root/packages/gcc/gcc-4.3.3/debian/pr34571.dpatch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gcc/gcc-4.3.3/debian/pr34571.dpatch')
-rw-r--r--packages/gcc/gcc-4.3.3/debian/pr34571.dpatch63
1 files changed, 63 insertions, 0 deletions
diff --git a/packages/gcc/gcc-4.3.3/debian/pr34571.dpatch b/packages/gcc/gcc-4.3.3/debian/pr34571.dpatch
new file mode 100644
index 0000000000..d0a654a3cc
--- /dev/null
+++ b/packages/gcc/gcc-4.3.3/debian/pr34571.dpatch
@@ -0,0 +1,63 @@
+#! /bin/sh -e
+
+# DP: Proposed patch for PR target/34571 (alpha)
+
+dir=
+if [ $# -eq 3 -a "$2" = '-d' ]; then
+ pdir="-d $3"
+ dir="$3/"
+elif [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch)
+ patch $pdir -f --no-backup-if-mismatch -p0 < $0
+ ;;
+ -unpatch)
+ patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
+ ;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+2007-12-26 Rask Ingemann Lambertsen <rask@sygehus.dk>
+
+ PR target/34571
+ * config/alpha/alpha.c (alpha_cannot_force_const_mem): Use
+ symbolic_operand.
+ * varasm.c (output_constant_pool_1): Fix typo.
+
+Index: gcc/config/alpha/alpha.c
+===================================================================
+--- gcc/config/alpha/alpha.c (revision 131132)
++++ gcc/config/alpha/alpha.c (working copy)
+@@ -1112,10 +1112,9 @@ alpha_legitimize_address (rtx x, rtx scr
+
+ static bool
+ alpha_cannot_force_const_mem (rtx x)
+ {
+- enum rtx_code code = GET_CODE (x);
+- return code == SYMBOL_REF || code == LABEL_REF || code == CONST;
++ return symbolic_operand (x, GET_MODE (x));
+ }
+
+ /* We do not allow indirect calls to be optimized into sibling calls, nor
+ can we allow a call to a function with a different GP to be optimized
+Index: gcc/varasm.c
+===================================================================
+--- gcc/varasm.c (revision 131132)
++++ gcc/varasm.c (working copy)
+@@ -3709,9 +3709,9 @@ output_constant_pool_1 (struct constant_
+ tmp = XEXP (XEXP (x, 0), 0);
+ /* FALLTHRU */
+
+ case LABEL_REF:
+- tmp = XEXP (x, 0);
++ tmp = XEXP (tmp, 0);
+ gcc_assert (!INSN_DELETED_P (tmp));
+ gcc_assert (!NOTE_P (tmp)
+ || NOTE_KIND (tmp) != NOTE_INSN_DELETED);
+ break;