diff options
author | Richard Sandiford <richard@codesourcery.com> | 2005-12-14 17:55:16 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2005-12-14 17:55:16 +0000 |
commit | 174ddc670acd832f63a981938e96df11304e2aa9 (patch) | |
tree | 84698cef4113a22084fe3f94c2e7dc9214380d6e /gcc | |
parent | 9d1a0fdbcd69aa88d654d491c9d5726cd5c69357 (diff) | |
download | gcc-174ddc670acd832f63a981938e96df11304e2aa9.zip gcc-174ddc670acd832f63a981938e96df11304e2aa9.tar.gz gcc-174ddc670acd832f63a981938e96df11304e2aa9.tar.bz2 |
arm.md: Provide a big-endian version of the (zero_extend:SI (subreg:QI ...)) splitter.
* gcc/config/arm/arm.md: Provide a big-endian version of the
(zero_extend:SI (subreg:QI ...)) splitter.
From-SVN: r108524
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/arm.md | 10 |
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 62be162..3831d49df 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-12-14 Richard Sandiford <richard@codesourcery.com> + + * gcc/config/arm/arm.md: Provide a big-endian version of the + (zero_extend:SI (subreg:QI ...)) splitter. + 2005-12-14 J"orn Rennecke <joern.rennecke@st.com> * struct-equiv.c (note_local_live): Handle hard regs with different diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index aa28c3f..f9d4743 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -3500,6 +3500,16 @@ "" ) +(define_split + [(set (match_operand:SI 0 "s_register_operand" "") + (zero_extend:SI (subreg:QI (match_operand:SI 1 "" "") 3))) + (clobber (match_operand:SI 2 "s_register_operand" ""))] + "TARGET_ARM && (GET_CODE (operands[1]) != MEM) && BYTES_BIG_ENDIAN" + [(set (match_dup 2) (match_dup 1)) + (set (match_dup 0) (and:SI (match_dup 2) (const_int 255)))] + "" +) + (define_insn "*compareqi_eq0" [(set (reg:CC_Z CC_REGNUM) (compare:CC_Z (match_operand:QI 0 "s_register_operand" "r") |