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