dhowells pushed to cross-gcc (master). "Fix up c6x problems (..more)"
notifications at fedoraproject.org
notifications at fedoraproject.org
Fri Mar 27 17:22:47 UTC 2015
>From 454fb5033e4273e1ab2bf7b910082b71fda72b90 Mon Sep 17 00:00:00 2001
From: David Howells <dhowells at redhat.com>
Date: Fri, 27 Mar 2015 15:28:28 +0000
Subject: Fix up c6x problems
Fix c6x-uclinux build failure.
* config/c6x/constraints.md (S3): New constraint.
* config/c6x/c6x.md (real_jump): Use it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221731 138bc75d-0d04-0410-961f-82ee72b054a4
Allow misaligned volatile stores in C6X.
* config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
memory_operand.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221732 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/cross-gcc-c6x-2.patch b/cross-gcc-c6x-2.patch
deleted file mode 100644
index 92100c0..0000000
--- a/cross-gcc-c6x-2.patch
+++ /dev/null
@@ -1,41 +0,0 @@
---- a/gcc/config/c6x/c6x.c 2015-01-16 07:19:59.000000000 +0000
-+++ b/gcc/config/c6x/c6x.c 2015-03-23 13:44:25.431404508 +0000
-@@ -5216,11 +5216,17 @@ split_delayed_branch (rtx_insn *insn)
- callee = XEXP (XEXP (src, 0), 0);
- if (SIBLING_CALL_P (insn))
- {
-+#if 1
-+ /* FIXME: 23/3/2015: Generation of real_jump insns leads
-+ to ICEs for unrecognisable insns. Disable for now. */
-+ return;
-+#else
- if (REG_P (callee))
- newpat = gen_indirect_sibcall_shadow ();
- else
- newpat = gen_sibcall_shadow (callee);
- pat = gen_real_jump (callee);
-+#endif
- }
- else if (dest != NULL_RTX)
- {
-@@ -5256,6 +5262,11 @@ split_delayed_branch (rtx_insn *insn)
- {
- case CODE_FOR_br_true:
- case CODE_FOR_br_false:
-+#if 1
-+ /* FIXME: 23/3/2015: Generation of real_jump insns leads
-+ to ICEs for unrecognisable insns. Disable for now. */
-+ return;
-+#else
- src = SET_SRC (pat);
- op = XEXP (src, code == CODE_FOR_br_true ? 1 : 2);
- newpat = gen_condjump_shadow (op);
-@@ -5268,7 +5279,7 @@ split_delayed_branch (rtx_insn *insn)
- VOIDmode),
- pat);
- break;
--
-+#endif
- case CODE_FOR_jump:
- op = SET_SRC (pat);
- newpat = gen_jump_shadow (op);
diff --git a/cross-gcc-c6x.patch b/cross-gcc-c6x.patch
new file mode 100644
index 0000000..9e0501b
--- /dev/null
+++ b/cross-gcc-c6x.patch
@@ -0,0 +1,64 @@
+commit 96d2bfe051067238d4494898eda3a9b6216fd7f3
+Author: bernds <bernds at 138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri Mar 27 12:50:01 2015 +0000
+
+ Fix c6x-uclinux build failure.
+
+ * config/c6x/constraints.md (S3): New constraint.
+ * config/c6x/c6x.md (real_jump): Use it.
+
+ git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221731 138bc75d-0d04-0410-961f-82ee72b054a4
+
+diff --git a/gcc/config/c6x/c6x.md b/gcc/config/c6x/c6x.md
+index 892aac4..fafefa6 100644
+--- a/gcc/config/c6x/c6x.md
++++ b/gcc/config/c6x/c6x.md
+@@ -1519,7 +1519,7 @@
+ ;; -------------------------------------------------------------------------
+
+ (define_insn "real_jump"
+- [(unspec [(match_operand 0 "c6x_jump_operand" "a,b,s") (const_int 0)]
++ [(unspec [(match_operand 0 "c6x_jump_operand" "a,b,S3") (const_int 0)]
+ UNSPEC_REAL_JUMP)]
+ ""
+ {
+diff --git a/gcc/config/c6x/constraints.md b/gcc/config/c6x/constraints.md
+index 9d88912..b8cdc0e 100644
+--- a/gcc/config/c6x/constraints.md
++++ b/gcc/config/c6x/constraints.md
+@@ -160,6 +160,11 @@ not C64X or higher).")
+ Any SYMBOL_REF or LABEL_REF."
+ (ior (match_code "symbol_ref") (match_code "label_ref")))
+
++(define_constraint "S3"
++ "Matches a symbolic integer constant, even if invalid for PIC."
++ (and (match_test "CONSTANT_P (op)")
++ (match_test "!CONST_SCALAR_INT_P (op)")))
++
+ (define_constraint "Si"
+ "@internal
+ Any immediate value, unless it matches the S0 constraint."
+commit ed22b54075707bbf1b859cb36aac0ef0219b6522
+Author: bernds <bernds at 138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri Mar 27 13:02:39 2015 +0000
+
+ Allow misaligned volatile stores in C6X.
+
+ * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
+ memory_operand.
+
+ git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@221732 138bc75d-0d04-0410-961f-82ee72b054a4
+
+diff --git a/gcc/config/c6x/c6x.md b/gcc/config/c6x/c6x.md
+index fafefa6..e957eca 100644
+--- a/gcc/config/c6x/c6x.md
++++ b/gcc/config/c6x/c6x.md
+@@ -775,7 +775,7 @@
+ UNSPEC_MISALIGNED_ACCESS))]
+ "TARGET_INSNS_64"
+ {
+- if (memory_operand (operands[0], <MODE>mode))
++ if (MEM_P (operands[0]))
+ {
+ emit_insn (gen_movmisalign<mode>_store (operands[0], operands[1]));
+ DONE;
diff --git a/cross-gcc.spec b/cross-gcc.spec
index 6686bfb..3f3fc46 100644
--- a/cross-gcc.spec
+++ b/cross-gcc.spec
@@ -116,7 +116,7 @@ Patch900: cross-intl-filename.patch
Patch901: cross-gcc-with-libgcc.patch
Patch902: cross-gcc-bfin.patch
Patch903: cross-gcc-format-config.patch
-Patch904: cross-gcc-c6x-2.patch
+Patch904: cross-gcc-c6x.patch
Patch905: cross-gcc-sh.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -274,7 +274,7 @@ rm -f libgo/go/crypto/elliptic/p224{,_test}.go
%patch901 -p1 -b .with-libgcc~
%patch902 -p0 -b .bfin~
%patch903 -p0 -b .format-config~
-%patch904 -p1 -b .c6x_2~
+%patch904 -p1 -b .c6x~
%patch905 -p0 -b .sh
echo 'Red Hat Cross %{version}-%{cross_gcc_release}' > gcc/DEV-PHASE
--
cgit v0.10.2
http://pkgs.fedoraproject.org/cgit/cross-gcc.git/commit/?h=master&id=454fb5033e4273e1ab2bf7b910082b71fda72b90
More information about the scm-commits
mailing list