CVS: sml/src/MLRISC/x86/ra x86SpillInstr.sml,1.2,1.3

John Reppy <[email protected]>
Newsgroups gmane.comp.lang.sml.smlnj.commits
Message-ID <[email protected]>
Update of /cvsroot/smlnj/sml/src/MLRISC/x86/ra
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22297/x86/ra

Modified Files:
	x86SpillInstr.sml 
Log Message:
  Fix for spilling single-precision floats.


Index: x86SpillInstr.sml
===================================================================
RCS file: /cvsroot/smlnj/sml/src/MLRISC/x86/ra/x86SpillInstr.sml,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** x86SpillInstr.sml	21 Mar 2002 22:01:11 -0000	1.2
--- x86SpillInstr.sml	19 Apr 2005 13:29:12 -0000	1.3
***************
*** 484,494 ****
  
         (* Pseudo fp instrctions *)
!        | I.FMOVE{fsize as I.FP64,src,dst} => 
  	  if Props.eqOpn(src,spillLoc) then 
  	    {proh=[], code=[], newReg=NONE}
  	  else
  	    {proh=[],code=[mark(I.FMOVE{fsize=fsize,src=src,dst=spillLoc},an)],
! 	     newReg=NONE} (* XXX bad for single precision *)
!        | I.FMOVE _ => error "non-double precision not yet supported"
         | I.FILOAD{isize,ea,dst} =>
  	    {proh=[],code=[mark(I.FILOAD{isize=isize,ea=ea,dst=spillLoc},an)],
--- 484,493 ----
  
         (* Pseudo fp instrctions *)
!        | I.FMOVE{fsize,src,dst} => 
  	  if Props.eqOpn(src,spillLoc) then 
  	    {proh=[], code=[], newReg=NONE}
  	  else
  	    {proh=[],code=[mark(I.FMOVE{fsize=fsize,src=src,dst=spillLoc},an)],
! 	     newReg=NONE}
         | I.FILOAD{isize,ea,dst} =>
  	    {proh=[],code=[mark(I.FILOAD{isize=isize,ea=ea,dst=spillLoc},an)],
***************
*** 569,573 ****
  	 (* Pseudo fp instructions.
  	  *)
! 	 | I.FMOVE{fsize as I.FP64,src,dst} => 
  	    if Props.eqOpn(dst,spillLoc) then 
  	      {code=[], proh=[], newReg=NONE}
--- 568,572 ----
  	 (* Pseudo fp instructions.
  	  *)
! 	 | I.FMOVE{fsize,src,dst} => 
  	    if Props.eqOpn(dst,spillLoc) then 
  	      {code=[], proh=[], newReg=NONE}
***************
*** 575,579 ****
  	      {code=[mark(I.FMOVE{fsize=fsize,src=spillLoc,dst=dst},an)], 
  		     proh=[], newReg=NONE}
- 	 | I.FMOVE _ => error "non-double precision not yet supported"
  	 | I.FBINOP{fsize,binOp,lsrc,rsrc,dst} =>
  	    {code=[mark(I.FBINOP{fsize=fsize,binOp=binOp,
--- 574,577 ----



-------------------------------------------------------
This SF.Net email is sponsored by: New Crystal Reports XI.
Version 11 adds new functionality designed to reduce time involved in
creating, integrating, and deploying reporting solutions. Free runtime info,
new features, or free trial, at: http://www.businessobjects.com/devxi/728
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.