summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2005-12-14 17:55:16 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2005-12-14 17:55:16 +0000
commit8a4d25d6874c03fc62fef83e4590bb48aca169c8 (patch)
tree84698cef4113a22084fe3f94c2e7dc9214380d6e
parent29819f013a5a4be90babf60e45be981358f0b990 (diff)
downloadppe42-gcc-8a4d25d6874c03fc62fef83e4590bb48aca169c8.tar.gz
ppe42-gcc-8a4d25d6874c03fc62fef83e4590bb48aca169c8.zip
* gcc/config/arm/arm.md: Provide a big-endian version of the
(zero_extend:SI (subreg:QI ...)) splitter. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108524 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.md10
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 62be1623c16..3831d49dfdb 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 aa28c3fae77..f9d4743380b 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")
OpenPOWER on IntegriCloud