From 4dff12bfa26cec4aedc2c0fb432c61d98c8e70f4 Mon Sep 17 00:00:00 2001 From: "J\"orn Rennecke" Date: Wed, 19 Nov 1997 00:36:12 +0000 Subject: sh.md (attribute "type"): Add nil. * sh.md (attribute "type"): Add nil. (movsi_ie): y/y alternative is type nil. (movsf_ie): Replace ry/yr/X alternative by r/y/X , y/r/X and y/y/X alternatives. (movsf_ie+1): Delete. From-SVN: r16575 --- gcc/ChangeLog | 8 ++++++++ gcc/config/sh/sh.md | 36 ++++++++++++++---------------------- 2 files changed, 22 insertions(+), 22 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e35094a..541c9c5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +Tue Nov 18 23:03:30 1997 J"orn Rennecke + + * sh.md (attribute "type"): Add nil. + (movsi_ie): y/y alternative is type nil. + (movsf_ie): Replace ry/yr/X alternative by r/y/X , y/r/X and y/y/X + alternatives. + (movsf_ie+1): Delete. + Tue Nov 18 15:39:59 1997 Jim Wilson * mips/mips.c (save_restore_insns): If gp_offset or fp_offset are diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index 1faad93..42b866c 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -101,9 +101,10 @@ ;; fp floating point ;; fdiv floating point divide (or square root) ;; gp_fpul move between general purpose register and fpul +;; nil no-op move, will be deleted. (define_attr "type" - "cbranch,jump,jump_ind,arith,arith3,arith3b,dyn_shift,other,load,load_si,store,move,fmove,smpy,dmpy,return,pload,pstore,pcload,pcload_si,rte,sfunc,call,fp,fdiv,gp_fpul" + "cbranch,jump,jump_ind,arith,arith3,arith3b,dyn_shift,other,load,load_si,store,move,fmove,smpy,dmpy,return,pload,pstore,pcload,pcload_si,rte,sfunc,call,fp,fdiv,gp_fpul,nil" (const_string "other")) ; If a conditional branch destination is within -252..258 bytes away @@ -1847,7 +1848,7 @@ lds %1,%0 sts %1,%0 ! move optimized away" - [(set_attr "type" "pcload_si,move,*,load_si,move,move,store,store,pstore,move,load,pload,pcload_si,gp_fpul,gp_fpul,other") + [(set_attr "type" "pcload_si,move,*,load_si,move,move,store,store,pstore,move,load,pload,pcload_si,gp_fpul,gp_fpul,nil") (set_attr "length" "*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,0")]) (define_insn "movsi_i_lowpart" @@ -2118,12 +2119,15 @@ sts %1,%0" [(set_attr "type" "move,move,pcload,load,store,move,move")]) +;; We may not split the ry/yr/XX alternatives to movsi_ie, since +;; update_flow_info would not know where to put REG_EQUAL notes +;; when the destination changes mode. (define_insn "movsf_ie" [(set (match_operand:SF 0 "general_movdst_operand" - "=f,r,f,f,fy,f,m,r,r,m,f,y,y,rf,ry") + "=f,r,f,f,fy,f,m,r,r,m,f,y,y,rf,r,y,y") (match_operand:SF 1 "general_movsrc_operand" - "f,r,G,H,FQ,m,f,FQ,m,r,y,f,>,fr,yr")) - (clobber (match_scratch:SI 2 "=X,X,X,X,&z,X,X,X,X,X,X,X,X,y,X"))] + "f,r,G,H,FQ,m,f,FQ,m,r,y,f,>,fr,y,r,y")) + (clobber (match_scratch:SI 2 "=X,X,X,X,&z,X,X,X,X,X,X,X,X,y,X,X,X"))] "TARGET_SH3E && (arith_reg_operand (operands[0], SFmode) @@ -2143,23 +2147,11 @@ flds %1,fpul lds.l %1,%0 # - #" - [(set_attr "type" "fmove,move,fmove,fmove,pcload,load,store,pcload,load,store,fmove,fmove,load,*,*") - (set_attr "length" "*,*,*,*,4,*,*,*,*,*,2,2,2,*,*")]) - -(define_split - [(set (match_operand:SF 0 "register_operand" "ry") - (match_operand:SF 1 "register_operand" "ry")) - (clobber (match_scratch:SI 2 "X"))] - "reload_completed - && true_regnum (operands[0]) < FIRST_FP_REG - && true_regnum (operands[1]) < FIRST_FP_REG" - [(set (match_dup 0) (match_dup 1))] - " -{ - operands[0] = gen_rtx (REG, SImode, true_regnum (operands[0])); - operands[1] = gen_rtx (REG, SImode, true_regnum (operands[1])); -}") + sts %1,%0 + lds %1,%0 + ! move optimized away" + [(set_attr "type" "fmove,move,fmove,fmove,pcload,load,store,pcload,load,store,fmove,fmove,load,*,gp_fpul,gp_fpul,nil") + (set_attr "length" "*,*,*,*,4,*,*,*,*,*,2,2,2,*,2,2,0")]) (define_split [(set (match_operand:SF 0 "register_operand" "") -- cgit v1.1