aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/c6x
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@codesourcery.com>2015-03-27 12:50:01 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2015-03-27 12:50:01 +0000
commitf50e5fcc32825c186ed32dbdf35dbf03c0fd0bcf (patch)
treecbdccfd2c6d4ed0b1a4bf4527346098f0b6f71f7 /gcc/config/c6x
parent04f69fda7ae6968e9def27a8b0ec97aef653d368 (diff)
downloadgcc-f50e5fcc32825c186ed32dbdf35dbf03c0fd0bcf.zip
gcc-f50e5fcc32825c186ed32dbdf35dbf03c0fd0bcf.tar.gz
gcc-f50e5fcc32825c186ed32dbdf35dbf03c0fd0bcf.tar.bz2
Fix c6x-uclinux build failure.
* config/c6x/constraints.md (S3): New constraint. * config/c6x/c6x.md (real_jump): Use it. From-SVN: r221731
Diffstat (limited to 'gcc/config/c6x')
-rw-r--r--gcc/config/c6x/c6x.md2
-rw-r--r--gcc/config/c6x/constraints.md5
2 files changed, 6 insertions, 1 deletions
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."