From eb3880ea6a8829d5f6e35107dae891eafadbf0a3 Mon Sep 17 00:00:00 2001 From: nemet Date: Wed, 13 May 2009 21:52:56 +0000 Subject: [PATCH] * config/mips/mips.md (store): Add attributes for QI and HI. Update comment. (truncdisi2, truncdihi2, truncdiqi2): Merge these into ... (truncdi2): ... this new pattern. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147503 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 7 +++++++ gcc/config/mips/mips.md | 33 +++++++-------------------------- 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 141762df857..c2da14007b3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2009-05-13 Adam Nemet + + * config/mips/mips.md (store): Add attributes for QI and HI. + Update comment. + (truncdisi2, truncdihi2, truncdiqi2): Merge these into ... + (truncdi2): ... this new pattern. + 2009-05-13 Brad Hards * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi. diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 713bd834730..3b44a84104b 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -727,9 +727,10 @@ ;; This attributes gives the mode mask of a SHORT. (define_mode_attr mask [(QI "0x00ff") (HI "0xffff")]) -;; Mode attributes for GPR loads and stores. +;; Mode attributes for GPR loads. (define_mode_attr load [(SI "lw") (DI "ld")]) -(define_mode_attr store [(SI "sw") (DI "sd")]) +;; Instruction names for stores. +(define_mode_attr store [(QI "sb") (HI "sh") (SI "sw") (DI "sd")]) ;; Similarly for MIPS IV indexed FPR loads and stores. (define_mode_attr loadx [(SF "lwxc1") (DF "ldxc1") (V2SF "ldxc1")]) @@ -2692,33 +2693,13 @@ ;; ;; Step A needs a real instruction but step B does not. -(define_insn "truncdisi2" - [(set (match_operand:SI 0 "nonimmediate_operand" "=d,m") - (truncate:SI (match_operand:DI 1 "register_operand" "d,d")))] +(define_insn "truncdi2" + [(set (match_operand:SUBDI 0 "nonimmediate_operand" "=d,m") + (truncate:SUBDI (match_operand:DI 1 "register_operand" "d,d")))] "TARGET_64BIT" "@ sll\t%0,%1,0 - sw\t%1,%0" - [(set_attr "move_type" "sll0,store") - (set_attr "mode" "SI")]) - -(define_insn "truncdihi2" - [(set (match_operand:HI 0 "nonimmediate_operand" "=d,m") - (truncate:HI (match_operand:DI 1 "register_operand" "d,d")))] - "TARGET_64BIT" - "@ - sll\t%0,%1,0 - sh\t%1,%0" - [(set_attr "move_type" "sll0,store") - (set_attr "mode" "SI")]) - -(define_insn "truncdiqi2" - [(set (match_operand:QI 0 "nonimmediate_operand" "=d,m") - (truncate:QI (match_operand:DI 1 "register_operand" "d,d")))] - "TARGET_64BIT" - "@ - sll\t%0,%1,0 - sb\t%1,%0" + \t%1,%0" [(set_attr "move_type" "sll0,store") (set_attr "mode" "SI")]) -- 2.11.0