diff options
author | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-04-11 18:40:04 +0000 |
---|---|---|
committer | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-04-11 18:40:04 +0000 |
commit | e8f53f72e927eccf2f52a7568eecf9fc7d4c364d (patch) | |
tree | bd2ddc451cd395bd4cbcd63344363a4cedf06d81 /gcc/config/epiphany/predicates.md | |
parent | 4af44dbd9c18076f261f3906d2016be0560232a7 (diff) | |
download | gcc-e8f53f72e927eccf2f52a7568eecf9fc7d4c364d.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209320 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/epiphany/predicates.md')
-rw-r--r-- | gcc/config/epiphany/predicates.md | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/config/epiphany/predicates.md b/gcc/config/epiphany/predicates.md index fb8fd88ba7e..fb5ee1239c4 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? */ |