Fix c6x-uclinux build failure.
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 27 Mar 2015 12:50:01 +0000 (12:50 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 27 Mar 2015 12:50:01 +0000 (12:50 +0000)
* 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

gcc/ChangeLog
gcc/config/c6x/c6x.md
gcc/config/c6x/constraints.md

index 5cee0a5..8e4b6c1 100644 (file)
@@ -1,3 +1,9 @@
+2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
+
+       PR target/65052
+        * config/c6x/constraints.md (S3): New constraint.
+        * config/c6x/c6x.md (real_jump): Use it.
+
 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
 
        PR middle-end/65595
index 892aac4..fafefa6 100644 (file)
 ;; -------------------------------------------------------------------------
 
 (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)]
   ""
 {
index 9d88912..b8cdc0e 100644 (file)
@@ -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."