diff options
author | uweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-03-02 17:08:55 +0000 |
---|---|---|
committer | uweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-03-02 17:08:55 +0000 |
commit | b49e3742cb50238370bdf071d9de7cfe3e448ca7 (patch) | |
tree | 54e677187e260d409904d535adb7790396d04961 /gcc/config/arm/arm-fixed.md | |
parent | 7103ce448c08b7c4e5fceb825ecd852a42aa246a (diff) | |
download | gcc-b49e3742cb50238370bdf071d9de7cfe3e448ca7.tar.gz |
gcc/
* config/arm/arm.c (arm_sat_operator_match): New function.
* config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
* config/arm/arm.md ("insn" attribute): Add "sat" value.
("SAT", "SATrev"): New code iterators.
("SATlo", "SAThi"): New code iterator attributes.
("*satsi_<SAT:code>"): New pattern.
("*satsi_<SAT:code>_shift"): Likewise.
* config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
and "shift" attributes.
("arm_usatsihi"): Add "insn" attribute.
* config/arm/predicates.md (sat_shift_operator): Allow multiplication
by powers of two. Do not allow shift by 32.
gcc/testsuite/
* gcc.target/arm/sat-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184803 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/arm-fixed.md')
-rw-r--r-- | gcc/config/arm/arm-fixed.md | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/config/arm/arm-fixed.md b/gcc/config/arm/arm-fixed.md index bd33ce28b38..920c262b425 100644 --- a/gcc/config/arm/arm-fixed.md +++ b/gcc/config/arm/arm-fixed.md @@ -374,6 +374,8 @@ "TARGET_32BIT && arm_arch6" "ssat%?\\t%0, #16, %2%S1" [(set_attr "predicable" "yes") + (set_attr "insn" "sat") + (set_attr "shift" "1") (set_attr "type" "alu_shift")]) (define_insn "arm_usatsihi" @@ -381,4 +383,5 @@ (us_truncate:HI (match_operand:SI 1 "s_register_operand")))] "TARGET_INT_SIMD" "usat%?\\t%0, #16, %1" - [(set_attr "predicable" "yes")]) + [(set_attr "predicable" "yes") + (set_attr "insn" "sat")]) |