From: Geoffrey Keating Date: Tue, 30 Dec 2003 20:27:53 +0000 (+0000) Subject: tm.texi (PREFERRED_RELOAD_CLASS): Describe use of NO_REGS with constants. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=222a2f1afb8130c98cbf42edb982e87f221fe4ff;p=gcc.git tm.texi (PREFERRED_RELOAD_CLASS): Describe use of NO_REGS with constants. * doc/tm.texi (PREFERRED_RELOAD_CLASS): Describe use of NO_REGS with constants. From-SVN: r75245 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b84f4cfd38b..4272091c545 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-12-30 Geoffrey Keating + + * doc/tm.texi (PREFERRED_RELOAD_CLASS): Describe use of NO_REGS + with constants. + 2003-12-30 Mark Mitchell * stor-layout.c (layout_decl): Turn bitfields into ordinary diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 6b8ad5ecabe..fa0e189bc8e 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -2419,10 +2419,17 @@ for a @samp{moveq} instruction, the value of this macro is always @code{DATA_REGS} as long as @var{class} includes the data registers. Requiring a data register guarantees that a @samp{moveq} will be used. -If @var{x} is a @code{const_double}, by returning @code{NO_REGS} -you can force @var{x} into a memory constant. This is useful on -certain machines where immediate floating values cannot be loaded into -certain kinds of registers. +One case where @code{PREFERRED_RELOAD_CLASS} must not return +@var{class} is if @var{x} is a legitimate constant which cannot be +loaded into some register class. By returning @code{NO_REGS} you can +force @var{x} into a memory location. For example, rs6000 can load +immediate values into general-purpose registers, but does not have an +instruction for loading an immediate value into a floating-point +register, so @code{PREFERRED_RELOAD_CLASS} returns @code{NO_REGS} when +@var{x} is a floating-point constant. If the constant can't be loaded +into any kind of register, code generation will be better if +@code{LEGITIMATE_CONSTANT_P} makes the constant illegitimate instead +of using @code{PREFERRED_RELOAD_CLASS}. @end defmac @defmac PREFERRED_OUTPUT_RELOAD_CLASS (@var{x}, @var{class})