Fix c6x-uclinux build failure.
authorBernd Schmidt <bernds@codesourcery.com>
Fri, 27 Mar 2015 12:50:01 +0000 (12:50 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
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.

From-SVN: r221731

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

index 5cee0a5c9c6b9c236c60f4fc8b4e15a208b2fe7d..8e4b6c18055a0e60cdd405c28dc50e0b4d78b946 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 892aac4d8b2c04a0e0b17edc9c42ca8477ed5ba0..fafefa6eca2d9a1a7ebf6e3c7743ee7515e518ca 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 9d88912d641b80fc060b3de1ca026bc1c91988a2..b8cdc0e65bd87478fc4eb9aaa2302531716e2116 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."