From 5a64541a22c5b3c1c3b1c80a44b1fb85ad91e152 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Wed, 18 Feb 2004 14:25:33 +0000 Subject: [PATCH] h8300.md: Move push patterns into one section of the file. * config/h8300/h8300.md: Move push patterns into one section of the file. From-SVN: r78030 --- gcc/ChangeLog | 5 ++ gcc/config/h8300/h8300.md | 174 +++++++++++++++++++------------------- 2 files changed, 94 insertions(+), 85 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 49a4c26d1d3..88bbe0083d4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-02-18 Kazu Hirata + + * config/h8300/h8300.md: Move push patterns into one + section of the file. + 2004-02-18 Mark Mitchell PR c++/11326 diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 9ade8ab9646..1222cfa783b 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -120,50 +120,6 @@ ;; movqi -(define_insn "pushqi1_h8300" - [(set (reg:HI SP_REG) - (plus:HI (reg:HI SP_REG) (const_int -2))) - (set (mem:QI (plus:HI (reg:HI SP_REG) (const_int -1))) - (match_operand:QI 0 "register_operand" "r"))] - "TARGET_H8300 - && operands[0] != stack_pointer_rtx" - "mov.w\\t%T0,@-r7" - [(set_attr "length" "2")]) - -(define_insn "pushqi1_h8300hs" - [(set (reg:SI SP_REG) - (plus:SI (reg:SI SP_REG) (const_int -4))) - (set (mem:QI (plus:SI (reg:SI SP_REG) (const_int -3))) - (match_operand:QI 0 "register_operand" "r"))] - "(TARGET_H8300H || TARGET_H8300S) - && operands[0] != stack_pointer_rtx" - "mov.l\\t%S0,@-er7" - [(set_attr "length" "4")]) - -(define_insn "pushqi1_h8300hs_normal" - [(set (reg:HI SP_REG) - (plus:HI (reg:HI SP_REG) (const_int -4))) - (set (mem:QI (plus:HI (reg:HI SP_REG) (const_int -3))) - (match_operand:QI 0 "register_operand" "r"))] - "(TARGET_H8300H || TARGET_H8300S) - && operands[0] != stack_pointer_rtx" - "mov.l\\t%S0,@-er7" - [(set_attr "length" "4")]) - -(define_expand "pushqi1" - [(match_operand:QI 0 "register_operand" "")] - "" - " -{ - if (TARGET_H8300) - emit_insn (gen_pushqi1_h8300 (operands[0])); - else if (!TARGET_NORMAL_MODE) - emit_insn (gen_pushqi1_h8300hs (operands[0])); - else - emit_insn (gen_pushqi1_h8300hs_normal (operands[0])); - DONE; -}") - (define_insn "*movqi_h8300" [(set (match_operand:QI 0 "general_operand_dst" "=r,r ,<,r,r,m") (match_operand:QI 1 "general_operand_src" " I,r>,r,n,m,r"))] @@ -228,47 +184,6 @@ ;; movhi -(define_expand "pushhi1_h8300" - [(set (mem:HI (pre_dec:HI (reg:HI SP_REG))) - (match_operand:HI 0 "register_operand" ""))] - "TARGET_H8300 - && operands[0] != stack_pointer_rtx" - "") - -(define_insn "pushhi1_h8300hs" - [(set (reg:SI SP_REG) - (plus:SI (reg:SI SP_REG) (const_int -4))) - (set (mem:HI (plus:SI (reg:SI SP_REG) (const_int -2))) - (match_operand:HI 0 "register_operand" "r"))] - "(TARGET_H8300H || TARGET_H8300S) - && operands[0] != stack_pointer_rtx" - "mov.l\\t%S0,@-er7" - [(set_attr "length" "4")]) - -(define_insn "pushhi1_h8300hs_normal" - [(set (reg:HI SP_REG) - (plus:HI (reg:HI SP_REG) (const_int -4))) - (set (mem:HI (plus:HI (reg:HI SP_REG) (const_int -2))) - (match_operand:HI 0 "register_operand" "r"))] - "(TARGET_H8300H || TARGET_H8300S) - && operands[0] != stack_pointer_rtx" - "mov.l\\t%S0,@-er7" - [(set_attr "length" "4")]) - -(define_expand "pushhi1" - [(match_operand:HI 0 "register_operand" "")] - "" - " -{ - if (TARGET_H8300) - emit_insn (gen_pushhi1_h8300 (operands[0])); - else if (!TARGET_NORMAL_MODE) - emit_insn (gen_pushhi1_h8300hs (operands[0])); - else - emit_insn (gen_pushhi1_h8300hs_normal (operands[0])); - DONE; -}") - (define_insn "*movhi_h8300" [(set (match_operand:HI 0 "general_operand_dst" "=r,r,<,r,r,m") (match_operand:HI 1 "general_operand_src" "I,r>,r,i,m,r"))] @@ -604,6 +519,95 @@ (set_attr "cc" "set_zn,set_znv,set_znv,set_znv,set_znv,set_znv")]) ;; ---------------------------------------------------------------------- +;; PUSH INSTRUCTIONS +;; ---------------------------------------------------------------------- + +(define_insn "pushqi1_h8300" + [(set (reg:HI SP_REG) + (plus:HI (reg:HI SP_REG) (const_int -2))) + (set (mem:QI (plus:HI (reg:HI SP_REG) (const_int -1))) + (match_operand:QI 0 "register_operand" "r"))] + "TARGET_H8300 + && operands[0] != stack_pointer_rtx" + "mov.w\\t%T0,@-r7" + [(set_attr "length" "2")]) + +(define_insn "pushqi1_h8300hs" + [(set (reg:SI SP_REG) + (plus:SI (reg:SI SP_REG) (const_int -4))) + (set (mem:QI (plus:SI (reg:SI SP_REG) (const_int -3))) + (match_operand:QI 0 "register_operand" "r"))] + "(TARGET_H8300H || TARGET_H8300S) + && operands[0] != stack_pointer_rtx" + "mov.l\\t%S0,@-er7" + [(set_attr "length" "4")]) + +(define_insn "pushqi1_h8300hs_normal" + [(set (reg:HI SP_REG) + (plus:HI (reg:HI SP_REG) (const_int -4))) + (set (mem:QI (plus:HI (reg:HI SP_REG) (const_int -3))) + (match_operand:QI 0 "register_operand" "r"))] + "(TARGET_H8300H || TARGET_H8300S) + && operands[0] != stack_pointer_rtx" + "mov.l\\t%S0,@-er7" + [(set_attr "length" "4")]) + +(define_expand "pushqi1" + [(match_operand:QI 0 "register_operand" "")] + "" + " +{ + if (TARGET_H8300) + emit_insn (gen_pushqi1_h8300 (operands[0])); + else if (!TARGET_NORMAL_MODE) + emit_insn (gen_pushqi1_h8300hs (operands[0])); + else + emit_insn (gen_pushqi1_h8300hs_normal (operands[0])); + DONE; +}") + +(define_expand "pushhi1_h8300" + [(set (mem:HI (pre_dec:HI (reg:HI SP_REG))) + (match_operand:HI 0 "register_operand" ""))] + "TARGET_H8300 + && operands[0] != stack_pointer_rtx" + "") + +(define_insn "pushhi1_h8300hs" + [(set (reg:SI SP_REG) + (plus:SI (reg:SI SP_REG) (const_int -4))) + (set (mem:HI (plus:SI (reg:SI SP_REG) (const_int -2))) + (match_operand:HI 0 "register_operand" "r"))] + "(TARGET_H8300H || TARGET_H8300S) + && operands[0] != stack_pointer_rtx" + "mov.l\\t%S0,@-er7" + [(set_attr "length" "4")]) + +(define_insn "pushhi1_h8300hs_normal" + [(set (reg:HI SP_REG) + (plus:HI (reg:HI SP_REG) (const_int -4))) + (set (mem:HI (plus:HI (reg:HI SP_REG) (const_int -2))) + (match_operand:HI 0 "register_operand" "r"))] + "(TARGET_H8300H || TARGET_H8300S) + && operands[0] != stack_pointer_rtx" + "mov.l\\t%S0,@-er7" + [(set_attr "length" "4")]) + +(define_expand "pushhi1" + [(match_operand:HI 0 "register_operand" "")] + "" + " +{ + if (TARGET_H8300) + emit_insn (gen_pushhi1_h8300 (operands[0])); + else if (!TARGET_NORMAL_MODE) + emit_insn (gen_pushhi1_h8300hs (operands[0])); + else + emit_insn (gen_pushhi1_h8300hs_normal (operands[0])); + DONE; +}") + +;; ---------------------------------------------------------------------- ;; TEST INSTRUCTIONS ;; ---------------------------------------------------------------------- -- 2.30.2