aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/epiphany/predicates.md
diff options
context:
space:
mode:
authorJoern Rennecke <joern.rennecke@embecosm.com>2014-04-11 18:40:04 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2014-04-11 19:40:04 +0100
commitd9bb58007e769e747896eb134370d08d8e250123 (patch)
treebd2ddc451cd395bd4cbcd63344363a4cedf06d81 /gcc/config/epiphany/predicates.md
parentb5d0ecea7981806ffb1277f3087b242104722d36 (diff)
downloadgcc-d9bb58007e769e747896eb134370d08d8e250123.zip
gcc-d9bb58007e769e747896eb134370d08d8e250123.tar.gz
gcc-d9bb58007e769e747896eb134370d08d8e250123.tar.bz2
gcc:
* common/config/epiphany/epiphany-common.c (epiphany_option_optimization_table): Enable section anchors by default at -O1 or higher. * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define. (TARGET_MIN_ANCHOR_OFFSET): Likewise. (epiphany_rtx_costs) <SET>: For binary operators, the set as such carries no extra cost. (epiphany_legitimate_address_p): For BLKmode, apply SImode check. * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define. * config/epiphany/predicates.md (memclob_operand): New predicate. * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str): Use memclob_operand predicate and X constraint for operand 3. gcc/testsuite: * gcc.target/epiphany/t1068-2.c: New file. From-SVN: r209320
Diffstat (limited to 'gcc/config/epiphany/predicates.md')
-rw-r--r--gcc/config/epiphany/predicates.md5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/config/epiphany/predicates.md b/gcc/config/epiphany/predicates.md
index fb8fd88..fb5ee12 100644
--- a/gcc/config/epiphany/predicates.md
+++ b/gcc/config/epiphany/predicates.md
@@ -358,6 +358,11 @@
(and (match_code "mem")
(match_test "post_modify_address (XEXP (op, 0), Pmode)")))
+; used in the memory clobber of stack_adjust_str, allows addresses with
+; large offsets.
+(define_predicate "memclob_operand"
+ (match_code "mem"))
+
(define_predicate "nonsymbolic_immediate_operand"
(ior (match_test "immediate_operand (op, mode)")
(match_code "const_vector"))) /* Is this specific enough? */