aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMingjie Xing <mingjie.xing@gmail.com>2010-08-14 19:42:04 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2010-08-14 19:42:04 +0000
commita44ecea126862d097c25cd5c99a7f7b0ad9c8650 (patch)
treec896bd229f4ee96eebd9b8670eaa069895848169
parentc613801e8b1f69feb2019d84f4a8e9d47bc403a6 (diff)
downloadgcc-a44ecea126862d097c25cd5c99a7f7b0ad9c8650.zip
gcc-a44ecea126862d097c25cd5c99a7f7b0ad9c8650.tar.gz
gcc-a44ecea126862d097c25cd5c99a7f7b0ad9c8650.tar.bz2
2010-xx-xx Mingjie Xing <mingjie.xing@gmail.com>
gcc/ 2010-xx-xx Mingjie Xing <mingjie.xing@gmail.com> * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define. * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete. (loongson_pmull<V_suffix>): Rename to... (mul<mode>3): ...this and use MULT instead of an UNSPEC. From-SVN: r163246
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/mips/loongson.md8
-rw-r--r--gcc/config/mips/mips.c1
3 files changed, 11 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a7d7cb9..cd1ed69 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2010-08-14 Mingjie Xing <mingjie.xing@gmail.com>
+
+ * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
+ * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
+ (loongson_pmull<V_suffix>): Rename to...
+ (mul<mode>3): ...this and use MULT instead of an UNSPEC.
+
2010-08-13 Jack Howarth <howarth@bromo.med.uc.edu>
* gcc/configure.ac: Enable -fomit-frame-pointer on darwin
diff --git a/gcc/config/mips/loongson.md b/gcc/config/mips/loongson.md
index 10703bb..11b197b 100644
--- a/gcc/config/mips/loongson.md
+++ b/gcc/config/mips/loongson.md
@@ -31,7 +31,6 @@
UNSPEC_LOONGSON_PMOVMSK
UNSPEC_LOONGSON_PMULHU
UNSPEC_LOONGSON_PMULH
- UNSPEC_LOONGSON_PMULL
UNSPEC_LOONGSON_PMULU
UNSPEC_LOONGSON_PASUBUB
UNSPEC_LOONGSON_BIADD
@@ -353,11 +352,10 @@
[(set_attr "type" "fmul")])
;; Multiply signed integers and store low result.
-(define_insn "loongson_pmull<V_suffix>"
+(define_insn "mul<mode>3"
[(set (match_operand:VH 0 "register_operand" "=f")
- (unspec:VH [(match_operand:VH 1 "register_operand" "f")
- (match_operand:VH 2 "register_operand" "f")]
- UNSPEC_LOONGSON_PMULL))]
+ (mult:VH (match_operand:VH 1 "register_operand" "f")
+ (match_operand:VH 2 "register_operand" "f")))]
"TARGET_HARD_FLOAT && TARGET_LOONGSON_VECTORS"
"pmull<V_suffix>\t%0,%1,%2"
[(set_attr "type" "fmul")])
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 468a424..b0aaab5 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -12684,6 +12684,7 @@ AVAIL_NON_MIPS16 (cache, TARGET_CACHE_BUILTIN)
#define CODE_FOR_loongson_pminub CODE_FOR_uminv8qi3
#define CODE_FOR_loongson_pmulhuh CODE_FOR_umulv4hi3_highpart
#define CODE_FOR_loongson_pmulhh CODE_FOR_smulv4hi3_highpart
+#define CODE_FOR_loongson_pmullh CODE_FOR_mulv4hi3
#define CODE_FOR_loongson_psubw CODE_FOR_subv2si3
#define CODE_FOR_loongson_psubh CODE_FOR_subv4hi3
#define CODE_FOR_loongson_psubb CODE_FOR_subv8qi3