This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

PATCH for movX in md.texi (was Re: PATCH bug with synthesized movdi: ...)to parts.


> Date: Tue, 4 Apr 2000 16:18:54 +0100 (BST)
> From: Bernd Schmidt <bernds@balti.cygnus.co.uk>

> > > It's interesting that there's code in expr.c to synthesize the operation;
> > > this probably works OK for MODE_COMPLEX stuff etc. when there aren't any
> > > patterns that accept operands in those modes (and thus could need reloads).
> > 
> > And it works for DImode, modulo these bugs.  I don't understand
> > the "probably works OK".
> 
> I _think_ that synthesizing moves will work OK if no insn pattern accepts
> operands of that mode.  Then you won't need reloads of that mode.

Oh.  Now I get it; slowness at this end.  That restriction seems
logical and about reasonable.  But it should really be
documented, not carried around as hunches and legends.

Does everybody agree to that interpretation?

How about writing it down in the Big Document of Truth as this;
Ok to commit?

Tue Apr  4 17:34:33 2000  Hans-Peter Nilsson  <hp@axis.com>

	* md.texi (Standard Names): Clarify when movX is needed.

Index: md.texi
===================================================================
RCS file: /cvs/gcc/egcs/gcc/md.texi,v
retrieving revision 1.42
diff -p -c -r1.42 md.texi
*** md.texi	2000/03/16 12:18:18	1.42
--- md.texi	2000/04/04 15:31:01
*************** to store the specified value in the part
*** 1822,1829 ****
  to mode @var{m}.  The effect on the rest of the register is undefined.
  
  This class of patterns is special in several ways.  First of all, each
! of these names @emph{must} be defined, because there is no other way
! to copy a datum from one place to another.
  
  Second, these patterns are not used solely in the RTL generation pass.
  Even the reload pass can generate move insns to copy values from stack
--- 1822,1831 ----
  to mode @var{m}.  The effect on the rest of the register is undefined.
  
  This class of patterns is special in several ways.  First of all, each
! of these names up to and including full word size @emph{must} be defined,
! because there is no other way to copy a datum from one place to another.
! If there are patterns accepting operands in larger modes,
! @samp{mov@var{m}} must be defined for integer modes of those sizes.
  
  Second, these patterns are not used solely in the RTL generation pass.
  Even the reload pass can generate move insns to copy values from stack

brgds, H-P

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]