From: rsandifo Date: Wed, 15 Oct 2008 18:33:23 +0000 (+0000) Subject: gcc/ X-Git-Tag: upstream/4.9.2~39276 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8990536adf36862470e5c78507e8017e290f684c;p=platform%2Fupstream%2Flinaro-gcc.git gcc/ * doc/rtl.texi (const_double): Remove the "addr" operand. Describe CONST_DOUBLE_* macros under const_double rather than const_vector. (const_fixed): Fix the operand description. (const): Add an @findex directive. (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description after the constant rtl table. (fix): Combine floating-point and fixed-point descriptions. Fix hyphenation. * sched-deps.c (sched_analyze_2): Remove reference to CONST_DOUBLE_CHAIN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141149 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a3b15b4..a899cd9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,19 @@ 2008-10-15 Richard Sandiford + * doc/rtl.texi (const_double): Remove the "addr" operand. + Describe CONST_DOUBLE_* macros under const_double rather + than const_vector. + (const_fixed): Fix the operand description. + (const): Add an @findex directive. + (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description + after the constant rtl table. + (fix): Combine floating-point and fixed-point descriptions. + Fix hyphenation. + * sched-deps.c (sched_analyze_2): Remove reference to + CONST_DOUBLE_CHAIN. + +2008-10-15 Richard Sandiford + * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTSYM_OFFs. * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi index a12de21..701e490 100644 --- a/gcc/doc/rtl.texi +++ b/gcc/doc/rtl.texi @@ -1507,21 +1507,33 @@ Similarly, there is only one object for the integer whose value is @code{constm1_rtx} will point to the same object. @findex const_double -@item (const_double:@var{m} @var{addr} @var{i0} @var{i1} @dots{}) +@item (const_double:@var{m} @var{i0} @var{i1} @dots{}) Represents either a floating-point constant of mode @var{m} or an integer constant too large to fit into @code{HOST_BITS_PER_WIDE_INT} bits but small enough to fit within twice that number of bits (GCC does not provide a mechanism to represent even larger constants). In the latter case, @var{m} will be @code{VOIDmode}. +@findex CONST_DOUBLE_LOW +If @var{m} is @code{VOIDmode}, the bits of the value are stored in +@var{i0} and @var{i1}. @var{i0} is customarily accessed with the macro +@code{CONST_DOUBLE_LOW} and @var{i1} with @code{CONST_DOUBLE_HIGH}. + +If the constant is floating point (regardless of its precision), then +the number of integers used to store the value depends on the size of +@code{REAL_VALUE_TYPE} (@pxref{Floating Point}). The integers +represent a floating point number, but not precisely in the target +machine's or host machine's floating point format. To convert them to +the precise bit pattern used by the target machine, use the macro +@code{REAL_VALUE_TO_TARGET_DOUBLE} and friends (@pxref{Data Output}). + @findex const_fixed -@item (const_fixed:@var{m} @var{addr}) +@item (const_fixed:@var{m} @dots{}) Represents a fixed-point constant of mode @var{m}. -The data structure, which contains data with the size of two -@code{HOST_BITS_PER_WIDE_INT} and the associated fixed-point mode, -is access with the macro @code{CONST_FIXED_VALUE}. The high part of data -is accessed with @code{CONST_FIXED_VALUE_HIGH}; the low part is accessed -with @code{CONST_FIXED_VALUE_LOW}. +The operand is a data structure of type @code{struct fixed_value} and +is accessed with the macro @code{CONST_FIXED_VALUE}. The high part of +data is accessed with @code{CONST_FIXED_VALUE_HIGH}; the low part is +accessed with @code{CONST_FIXED_VALUE_LOW}. @findex const_vector @item (const_vector:@var{m} [@var{x0} @var{x1} @dots{}]) @@ -1537,44 +1549,6 @@ Individual elements in a vector constant are accessed with the macro where @var{v} is the vector constant and @var{n} is the element desired. -@findex CONST_DOUBLE_MEM -@findex CONST_DOUBLE_CHAIN -@var{addr} is used to contain the @code{mem} expression that corresponds -to the location in memory that at which the constant can be found. If -it has not been allocated a memory location, but is on the chain of all -@code{const_double} expressions in this compilation (maintained using an -undisplayed field), @var{addr} contains @code{const0_rtx}. If it is not -on the chain, @var{addr} contains @code{cc0_rtx}. @var{addr} is -customarily accessed with the macro @code{CONST_DOUBLE_MEM} and the -chain field via @code{CONST_DOUBLE_CHAIN}. - -@findex CONST_DOUBLE_LOW -If @var{m} is @code{VOIDmode}, the bits of the value are stored in -@var{i0} and @var{i1}. @var{i0} is customarily accessed with the macro -@code{CONST_DOUBLE_LOW} and @var{i1} with @code{CONST_DOUBLE_HIGH}. - -If the constant is floating point (regardless of its precision), then -the number of integers used to store the value depends on the size of -@code{REAL_VALUE_TYPE} (@pxref{Floating Point}). The integers -represent a floating point number, but not precisely in the target -machine's or host machine's floating point format. To convert them to -the precise bit pattern used by the target machine, use the macro -@code{REAL_VALUE_TO_TARGET_DOUBLE} and friends (@pxref{Data Output}). - -@findex CONST0_RTX -@findex CONST1_RTX -@findex CONST2_RTX -The macro @code{CONST0_RTX (@var{mode})} refers to an expression with -value 0 in mode @var{mode}. If mode @var{mode} is of mode class -@code{MODE_INT}, it returns @code{const0_rtx}. If mode @var{mode} is of -mode class @code{MODE_FLOAT}, it returns a @code{CONST_DOUBLE} -expression in mode @var{mode}. Otherwise, it returns a -@code{CONST_VECTOR} expression in mode @var{mode}. Similarly, the macro -@code{CONST1_RTX (@var{mode})} refers to an expression with value 1 in -mode @var{mode} and similarly for @code{CONST2_RTX}. The -@code{CONST1_RTX} and @code{CONST2_RTX} macros are undefined -for vector modes. - @findex const_string @item (const_string @var{str}) Represents a constant string with value @var{str}. Currently this is @@ -1605,6 +1579,7 @@ references is so that jump optimization can distinguish them. The @code{label_ref} contains a mode, which is usually @code{Pmode}. Usually that is the only mode for which a label is directly valid. +@findex const @item (const:@var{m} @var{exp}) Represents a constant that is the result of an assembly-time arithmetic computation. The operand, @var{exp}, is an expression that @@ -1627,6 +1602,20 @@ reference a global memory location. @var{m} should be @code{Pmode}. @end table +@findex CONST0_RTX +@findex CONST1_RTX +@findex CONST2_RTX +The macro @code{CONST0_RTX (@var{mode})} refers to an expression with +value 0 in mode @var{mode}. If mode @var{mode} is of mode class +@code{MODE_INT}, it returns @code{const0_rtx}. If mode @var{mode} is of +mode class @code{MODE_FLOAT}, it returns a @code{CONST_DOUBLE} +expression in mode @var{mode}. Otherwise, it returns a +@code{CONST_VECTOR} expression in mode @var{mode}. Similarly, the macro +@code{CONST1_RTX (@var{mode})} refers to an expression with value 1 in +mode @var{mode} and similarly for @code{CONST2_RTX}. The +@code{CONST1_RTX} and @code{CONST2_RTX} macros are undefined +for vector modes. + @node Regs and Memory @section Registers and Memory @cindex RTL register expressions @@ -2707,7 +2696,12 @@ regarded as unsigned, to floating point mode @var{m}. @findex fix @item (fix:@var{m} @var{x}) -When @var{m} is a fixed point mode, represents the result of +When @var{m} is a floating-point mode, represents the result of +converting floating point value @var{x} (valid for mode @var{m}) to an +integer, still represented in floating point mode @var{m}, by rounding +towards zero. + +When @var{m} is a fixed-point mode, represents the result of converting floating point value @var{x} to mode @var{m}, regarded as signed. How rounding is done is not specified, so this operation may be used validly in compiling C code only for integer-valued operands. @@ -2718,13 +2712,6 @@ Represents the result of converting floating point value @var{x} to fixed point mode @var{m}, regarded as unsigned. How rounding is done is not specified. -@findex fix -@item (fix:@var{m} @var{x}) -When @var{m} is a floating point mode, represents the result of -converting floating point value @var{x} (valid for mode @var{m}) to an -integer, still represented in floating point mode @var{m}, by rounding -towards zero. - @findex fract_convert @item (fract_convert:@var{m} @var{x}) Represents the result of converting fixed-point value @var{x} to diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index 784f84f..81fcb80 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -2008,10 +2008,7 @@ sched_analyze_2 (struct deps *deps, rtx x, rtx insn) case SYMBOL_REF: case CONST: case LABEL_REF: - /* Ignore constants. Note that we must handle CONST_DOUBLE here - because it may have a cc0_rtx in its CONST_DOUBLE_CHAIN field, but - this does not mean that this insn is using cc0. */ - + /* Ignore constants. */ if (cslr_p && sched_deps_info->finish_rhs) sched_deps_info->finish_rhs ();