diff options
| author | rearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-12-06 14:14:52 +0000 |
|---|---|---|
| committer | rearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-12-06 14:14:52 +0000 |
| commit | 3a0bdee00e3e9db30868a2dfb2a2f4f91c950b99 (patch) | |
| tree | 1fd0be67fcc921227612cb16c13dd026719cc33d | |
| parent | 994974c8ab5f4f2f44ed3d218866f0259c7e328c (diff) | |
| download | ppe42-gcc-3a0bdee00e3e9db30868a2dfb2a2f4f91c950b99.tar.gz ppe42-gcc-3a0bdee00e3e9db30868a2dfb2a2f4f91c950b99.zip | |
* arm.md (IOR (COMPARISON) (AND)): New define_splits.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74366 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/config/arm/arm.md | 38 |
2 files changed, 42 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 67e19d898ed..89d0735e233 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-12-06 Richard Earnshaw <reanrsha@arm.com> + + * arm.md (IOR (COMPARISON) (AND)): New define_splits. + 2003-12-06 Kelley Cook <kcook@gcc.gnu.org> * Makefile.in (program_transform_cross_name): Delete. diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index 17a37704e3d..3c4dffc9185 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -7983,6 +7983,44 @@ [(set_attr "conds" "clob") (set_attr "length" "20")]) +(define_split + [(set (reg:CC_NOOV CC_REGNUM) + (compare:CC_NOOV (ior:SI + (and:SI (match_operand:SI 0 "s_register_operand" "") + (const_int 1)) + (match_operator:SI 1 "comparison_operator" + [(match_operand:SI 2 "s_register_operand" "") + (match_operand:SI 3 "arm_add_operand" "")])) + (const_int 0))) + (clobber (match_operand:SI 4 "s_register_operand" ""))] + "TARGET_ARM" + [(set (match_dup 4) + (ior:SI (match_op_dup 1 [(match_dup 2) (match_dup 3)]) + (match_dup 0))) + (set (reg:CC_NOOV CC_REGNUM) + (compare:CC_NOOV (and:SI (match_dup 4) (const_int 1)) + (const_int 0)))] + "") + +(define_split + [(set (reg:CC_NOOV CC_REGNUM) + (compare:CC_NOOV (ior:SI + (match_operator:SI 1 "comparison_operator" + [(match_operand:SI 2 "s_register_operand" "") + (match_operand:SI 3 "arm_add_operand" "")]) + (and:SI (match_operand:SI 0 "s_register_operand" "") + (const_int 1))) + (const_int 0))) + (clobber (match_operand:SI 4 "s_register_operand" ""))] + "TARGET_ARM" + [(set (match_dup 4) + (ior:SI (match_op_dup 1 [(match_dup 2) (match_dup 3)]) + (match_dup 0))) + (set (reg:CC_NOOV CC_REGNUM) + (compare:CC_NOOV (and:SI (match_dup 4) (const_int 1)) + (const_int 0)))] + "") + (define_insn "*negscc" [(set (match_operand:SI 0 "s_register_operand" "=r") (neg:SI (match_operator 3 "arm_comparison_operator" |

