aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>2013-07-30 15:54:30 +0000
committerRichard Earnshaw <rearnsha@gcc.gnu.org>2013-07-30 15:54:30 +0000
commitb2d3f886f51d4d62f5c5321b3fa00e5d4f7a28df (patch)
tree64ccb73c51a395f430eee4648880b85203902c6d
parentb6d846de2be1df6fe282b0b4094ec9cdb9268d88 (diff)
downloadgcc-b2d3f886f51d4d62f5c5321b3fa00e5d4f7a28df.zip
gcc-b2d3f886f51d4d62f5c5321b3fa00e5d4f7a28df.tar.gz
gcc-b2d3f886f51d4d62f5c5321b3fa00e5d4f7a28df.tar.bz2
* arm.md (mulhi3): New expand pattern.
From-SVN: r201341
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/arm/arm.md14
2 files changed, 18 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b99e074..e6550fd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2013-07-30 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.md (mulhi3): New expand pattern.
+
2013-07-30 Jan Hubicka <jh@suse.cz>
Martin Liska <marxin.liska@gmail.com>
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index fceb04c..0aa8aca 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -1725,6 +1725,20 @@
;; Multiplication insns
+(define_expand "mulhi3"
+ [(set (match_operand:HI 0 "s_register_operand" "")
+ (mult:HI (match_operand:HI 1 "s_register_operand" "")
+ (match_operand:HI 2 "s_register_operand" "")))]
+ "TARGET_DSP_MULTIPLY"
+ "
+ {
+ rtx result = gen_reg_rtx (SImode);
+ emit_insn (gen_mulhisi3 (result, operands[1], operands[2]));
+ emit_move_insn (operands[0], gen_lowpart (HImode, result));
+ DONE;
+ }"
+)
+
(define_expand "mulsi3"
[(set (match_operand:SI 0 "s_register_operand" "")
(mult:SI (match_operand:SI 2 "s_register_operand" "")