sh.md (movsf_ie): Fix output patterns for fpul load and store.
* config/sh/sh.md (movsf_ie): Fix output patterns for fpul load and store. (movsi_ie): Introduce fpul store. From-SVN: r40653
This commit is contained in:
parent
a44a935fe4
commit
a92facbb7b
@ -1,3 +1,9 @@
|
||||
2001-03-20 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* config/sh/sh.md (movsf_ie): Fix output patterns for fpul load
|
||||
and store.
|
||||
(movsi_ie): Introduce fpul store.
|
||||
|
||||
2001-03-20 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* Makefile.in (OBJS): Remove hashtab.o.
|
||||
|
@ -2438,8 +2438,8 @@
|
||||
;; ??? This allows moves from macl to fpul to be recognized, but these moves
|
||||
;; will require a reload.
|
||||
(define_insn "movsi_ie"
|
||||
[(set (match_operand:SI 0 "general_movdst_operand" "=r,r,t,r,r,r,r,m,<,<,x,l,x,l,y,r,y,r,y")
|
||||
(match_operand:SI 1 "general_movsrc_operand" "Q,rI,r,mr,x,l,t,r,x,l,r,r,>,>,>,i,r,y,y"))]
|
||||
[(set (match_operand:SI 0 "general_movdst_operand" "=r,r,t,r,r,r,r,m,<,<,x,l,x,l,y,<,r,y,r,y")
|
||||
(match_operand:SI 1 "general_movsrc_operand" "Q,rI,r,mr,x,l,t,r,x,l,r,r,>,>,>,y,i,r,y,y"))]
|
||||
"TARGET_SH3E
|
||||
&& (register_operand (operands[0], SImode)
|
||||
|| register_operand (operands[1], SImode))"
|
||||
@ -2459,12 +2459,13 @@
|
||||
lds.l %1,%0
|
||||
lds.l %1,%0
|
||||
lds.l %1,%0
|
||||
sts.l %1,%0
|
||||
fake %1,%0
|
||||
lds %1,%0
|
||||
sts %1,%0
|
||||
! move optimized away"
|
||||
[(set_attr "type" "pcload_si,move,*,load_si,move,prget,move,store,store,pstore,move,prset,load,pload,load,pcload_si,gp_fpul,gp_fpul,nil")
|
||||
(set_attr "length" "*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,0")])
|
||||
[(set_attr "type" "pcload_si,move,*,load_si,move,prget,move,store,store,pstore,move,prset,load,pload,load,store,pcload_si,gp_fpul,gp_fpul,nil")
|
||||
(set_attr "length" "*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,0")])
|
||||
|
||||
(define_insn "movsi_i_lowpart"
|
||||
[(set (strict_low_part (match_operand:SI 0 "general_movdst_operand" "+r,r,r,r,r,r,m,r"))
|
||||
@ -3084,11 +3085,11 @@
|
||||
;; 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,r<,y,y")
|
||||
"=f,r,f,f,fy,f,m,r,r,m,f,y,y,rf,r,y,<,y,y")
|
||||
(match_operand:SF 1 "general_movsrc_operand"
|
||||
"f,r,G,H,FQ,mf,f,FQ,mr,r,y,f,>,fr,y,r>,y"))
|
||||
(use (match_operand:PSI 2 "fpscr_operand" "c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c"))
|
||||
(clobber (match_scratch:SI 3 "=X,X,X,X,&z,X,X,X,X,X,X,X,X,y,X,X,X"))]
|
||||
"f,r,G,H,FQ,mf,f,FQ,mr,r,y,f,>,fr,y,r,y,>,y"))
|
||||
(use (match_operand:PSI 2 "fpscr_operand" "c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c,c"))
|
||||
(clobber (match_scratch:SI 3 "=X,X,X,X,&z,X,X,X,X,X,X,X,X,y,X,X,X,X,X"))]
|
||||
|
||||
"TARGET_SH3E
|
||||
&& (arith_reg_operand (operands[0], SFmode)
|
||||
@ -3117,9 +3118,11 @@
|
||||
#
|
||||
sts %1,%0
|
||||
lds %1,%0
|
||||
sts.l %1,%0
|
||||
lds.l %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,4,2,2,0")
|
||||
[(set_attr "type" "fmove,move,fmove,fmove,pcload,load,store,pcload,load,store,fmove,fmove,load,*,gp_fpul,gp_fpul,store,load,nil")
|
||||
(set_attr "length" "*,*,*,*,4,*,*,*,*,*,2,2,2,4,2,2,2,2,0")
|
||||
(set (attr "fp_mode") (if_then_else (eq_attr "fmovd" "yes")
|
||||
(const_string "single")
|
||||
(const_string "none")))])
|
||||
|
Loading…
Reference in New Issue
Block a user