Commit a3a15b4d by Jeffrey A Law Committed by Jeff Law

tm.texi: GNU CC -> GCC conversion.

        * tm.texi: GNU CC -> GCC conversion.
        (CC1_SPEC): Indicate it is used for all language front ends.

From-SVN: r28844
parent 77c9524b
Wed Aug 25 01:25:14 1999 Jeffrey A Law (law@cygnus.com)
* tm.texi: GNU CC -> GCC conversion.
(CC1_SPEC): Indicate it is used for all language front ends.
Tue Aug 24 23:43:03 1999 Mark Mitchell <mark@codesourcery.com> Tue Aug 24 23:43:03 1999 Mark Mitchell <mark@codesourcery.com>
* flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
......
...@@ -100,9 +100,9 @@ If this macro is not defined, the default value is @code{""}. ...@@ -100,9 +100,9 @@ If this macro is not defined, the default value is @code{""}.
@findex CPP_SPEC @findex CPP_SPEC
@item CPP_SPEC @item CPP_SPEC
A C string constant that tells the GNU CC driver program options to A C string constant that tells the GCC driver program options to
pass to CPP. It can also specify how to translate options you pass to CPP. It can also specify how to translate options you
give to GNU CC into options for GNU CC to pass to the CPP. give to GCC into options for GCC to pass to the CPP.
Do not define this macro if it does not need to do anything. Do not define this macro if it does not need to do anything.
...@@ -128,7 +128,7 @@ be defined. ...@@ -128,7 +128,7 @@ be defined.
@findex SIGNED_CHAR_SPEC @findex SIGNED_CHAR_SPEC
@item SIGNED_CHAR_SPEC @item SIGNED_CHAR_SPEC
A C string constant that tells the GNU CC driver program options to A C string constant that tells the GCC driver program options to
pass to CPP. By default, this macro is defined to pass the option pass to CPP. By default, this macro is defined to pass the option
@samp{-D__CHAR_UNSIGNED__} to CPP if @code{char} will be treated as @samp{-D__CHAR_UNSIGNED__} to CPP if @code{char} will be treated as
@code{unsigned char} by @code{cc1}. @code{unsigned char} by @code{cc1}.
...@@ -138,32 +138,33 @@ definition. ...@@ -138,32 +138,33 @@ definition.
@findex CC1_SPEC @findex CC1_SPEC
@item CC1_SPEC @item CC1_SPEC
A C string constant that tells the GNU CC driver program options to A C string constant that tells the GCC driver program options to
pass to @code{cc1}. It can also specify how to translate options you pass to @code{cc1, cc1plus, f771, and the other language front ends}.
give to GNU CC into options for GNU CC to pass to the @code{cc1}. It can also specify how to translate options you give to GCC into options
for GCC to pass to front ends..
Do not define this macro if it does not need to do anything. Do not define this macro if it does not need to do anything.
@findex CC1PLUS_SPEC @findex CC1PLUS_SPEC
@item CC1PLUS_SPEC @item CC1PLUS_SPEC
A C string constant that tells the GNU CC driver program options to A C string constant that tells the GCC driver program options to
pass to @code{cc1plus}. It can also specify how to translate options you pass to @code{cc1plus}. It can also specify how to translate options you
give to GNU CC into options for GNU CC to pass to the @code{cc1plus}. give to GCC into options for GCC to pass to the @code{cc1plus}.
Do not define this macro if it does not need to do anything. Do not define this macro if it does not need to do anything.
@findex ASM_SPEC @findex ASM_SPEC
@item ASM_SPEC @item ASM_SPEC
A C string constant that tells the GNU CC driver program options to A C string constant that tells the GCC driver program options to
pass to the assembler. It can also specify how to translate options pass to the assembler. It can also specify how to translate options
you give to GNU CC into options for GNU CC to pass to the assembler. you give to GCC into options for GCC to pass to the assembler.
See the file @file{sun3.h} for an example of this. See the file @file{sun3.h} for an example of this.
Do not define this macro if it does not need to do anything. Do not define this macro if it does not need to do anything.
@findex ASM_FINAL_SPEC @findex ASM_FINAL_SPEC
@item ASM_FINAL_SPEC @item ASM_FINAL_SPEC
A C string constant that tells the GNU CC driver program how to A C string constant that tells the GCC driver program how to
run any programs which cleanup after the normal assembler. run any programs which cleanup after the normal assembler.
Normally, this is not needed. See the file @file{mips.h} for Normally, this is not needed. See the file @file{mips.h} for
an example of this. an example of this.
...@@ -172,9 +173,9 @@ Do not define this macro if it does not need to do anything. ...@@ -172,9 +173,9 @@ Do not define this macro if it does not need to do anything.
@findex LINK_SPEC @findex LINK_SPEC
@item LINK_SPEC @item LINK_SPEC
A C string constant that tells the GNU CC driver program options to A C string constant that tells the GCC driver program options to
pass to the linker. It can also specify how to translate options you pass to the linker. It can also specify how to translate options you
give to GNU CC into options for GNU CC to pass to the linker. give to GCC into options for GCC to pass to the linker.
Do not define this macro if it does not need to do anything. Do not define this macro if it does not need to do anything.
...@@ -189,12 +190,12 @@ loads the standard C library from the usual place. See @file{gcc.c}. ...@@ -189,12 +190,12 @@ loads the standard C library from the usual place. See @file{gcc.c}.
@findex LIBGCC_SPEC @findex LIBGCC_SPEC
@item LIBGCC_SPEC @item LIBGCC_SPEC
Another C string constant that tells the GNU CC driver program Another C string constant that tells the GCC driver program
how and when to place a reference to @file{libgcc.a} into the how and when to place a reference to @file{libgcc.a} into the
linker command line. This constant is placed both before and after linker command line. This constant is placed both before and after
the value of @code{LIB_SPEC}. the value of @code{LIB_SPEC}.
If this macro is not defined, the GNU CC driver provides a default that If this macro is not defined, the GCC driver provides a default that
passes the string @samp{-lgcc} to the linker unless the @samp{-shared} passes the string @samp{-lgcc} to the linker unless the @samp{-shared}
option is specified. option is specified.
...@@ -643,7 +644,7 @@ generated code. ...@@ -643,7 +644,7 @@ generated code.
@findex CAN_DEBUG_WITHOUT_FP @findex CAN_DEBUG_WITHOUT_FP
@item CAN_DEBUG_WITHOUT_FP @item CAN_DEBUG_WITHOUT_FP
Define this macro if debugging can be performed even without a frame Define this macro if debugging can be performed even without a frame
pointer. If this macro is defined, GNU CC will turn on the pointer. If this macro is defined, GCC will turn on the
@samp{-fomit-frame-pointer} option whenever @samp{-O} is specified. @samp{-fomit-frame-pointer} option whenever @samp{-O} is specified.
@end table @end table
...@@ -678,7 +679,7 @@ word has the lowest number. This macro need not be a constant. ...@@ -678,7 +679,7 @@ word has the lowest number. This macro need not be a constant.
@item WORDS_BIG_ENDIAN @item WORDS_BIG_ENDIAN
Define this macro to have the value 1 if, in a multiword object, the Define this macro to have the value 1 if, in a multiword object, the
most significant word has the lowest number. This applies to both most significant word has the lowest number. This applies to both
memory locations and registers; GNU CC fundamentally assumes that the memory locations and registers; GCC fundamentally assumes that the
order of words in memory is the same as the order in registers. This order of words in memory is the same as the order in registers. This
macro need not be a constant. macro need not be a constant.
...@@ -834,7 +835,7 @@ structure fields only. ...@@ -834,7 +835,7 @@ structure fields only.
@findex ADJUST_FIELD_ALIGN @findex ADJUST_FIELD_ALIGN
@item ADJUST_FIELD_ALIGN (@var{field}, @var{computed}) @item ADJUST_FIELD_ALIGN (@var{field}, @var{computed})
An expression for the alignment of a structure field @var{field} if the An expression for the alignment of a structure field @var{field} if the
alignment computed in the usual way is @var{computed}. GNU CC uses alignment computed in the usual way is @var{computed}. GCC uses
this value instead of the value in @code{BIGGEST_ALIGNMENT} or this value instead of the value in @code{BIGGEST_ALIGNMENT} or
@code{BIGGEST_FIELD_ALIGNMENT}, if defined, for structure fields only. @code{BIGGEST_FIELD_ALIGNMENT}, if defined, for structure fields only.
...@@ -941,7 +942,7 @@ Unless the machine has bitfield instructions or you define ...@@ -941,7 +942,7 @@ Unless the machine has bitfield instructions or you define
@code{STRUCTURE_SIZE_BOUNDARY} that way, you must define @code{STRUCTURE_SIZE_BOUNDARY} that way, you must define
@code{PCC_BITFIELD_TYPE_MATTERS} to have a nonzero value. @code{PCC_BITFIELD_TYPE_MATTERS} to have a nonzero value.
If your aim is to make GNU CC use the same conventions for laying out If your aim is to make GCC use the same conventions for laying out
bitfields as are used by another compiler, here is how to investigate bitfields as are used by another compiler, here is how to investigate
what the other compiler does. Compile and run this program: what the other compiler does. Compile and run this program:
...@@ -1075,10 +1076,10 @@ machine and @code{HOST_FLOAT_WORDS_BIG_ENDIAN} for the host. ...@@ -1075,10 +1076,10 @@ machine and @code{HOST_FLOAT_WORDS_BIG_ENDIAN} for the host.
@findex DEFAULT_VTABLE_THUNKS @findex DEFAULT_VTABLE_THUNKS
@item DEFAULT_VTABLE_THUNKS @item DEFAULT_VTABLE_THUNKS
GNU CC supports two ways of implementing C++ vtables: traditional or with GCC supports two ways of implementing C++ vtables: traditional or with
so-called ``thunks''. The flag @samp{-fvtable-thunk} chooses between them. so-called ``thunks''. The flag @samp{-fvtable-thunk} chooses between them.
Define this macro to be a C expression for the default value of that flag. Define this macro to be a C expression for the default value of that flag.
If @code{DEFAULT_VTABLE_THUNKS} is 0, GNU CC uses the traditional If @code{DEFAULT_VTABLE_THUNKS} is 0, GCC uses the traditional
implementation by default. The ``thunk'' implementation is more efficient implementation by default. The ``thunk'' implementation is more efficient
(especially if you have provided an implementation of (especially if you have provided an implementation of
@code{ASM_OUTPUT_MI_THUNK}, see @ref{Function Entry}), but is not binary @code{ASM_OUTPUT_MI_THUNK}, see @ref{Function Entry}), but is not binary
...@@ -1445,7 +1446,7 @@ Registers are allocated in order. ...@@ -1445,7 +1446,7 @@ Registers are allocated in order.
@findex REG_ALLOC_ORDER @findex REG_ALLOC_ORDER
@item REG_ALLOC_ORDER @item REG_ALLOC_ORDER
If defined, an initializer for a vector of integers, containing the If defined, an initializer for a vector of integers, containing the
numbers of hard registers in the order in which GNU CC should prefer numbers of hard registers in the order in which GCC should prefer
to use them (from most preferred to least). to use them (from most preferred to least).
If this macro is not defined, registers are used lowest numbered first If this macro is not defined, registers are used lowest numbered first
...@@ -1580,7 +1581,7 @@ this macro to return zero unless some other mechanism ensures the ...@@ -1580,7 +1581,7 @@ this macro to return zero unless some other mechanism ensures the
accessibility of the value in a narrower mode. accessibility of the value in a narrower mode.
You should define this macro to return nonzero in as many cases as You should define this macro to return nonzero in as many cases as
possible since doing so will allow GNU CC to perform better register possible since doing so will allow GCC to perform better register
allocation. allocation.
@findex AVOID_CCMODE_COPIES @findex AVOID_CCMODE_COPIES
...@@ -1608,7 +1609,7 @@ function'' to mean a function that is suitable for this special ...@@ -1608,7 +1609,7 @@ function'' to mean a function that is suitable for this special
handling, so that functions with no calls are not necessarily ``leaf handling, so that functions with no calls are not necessarily ``leaf
functions''. functions''.
GNU CC assigns register numbers before it knows whether the function is GCC assigns register numbers before it knows whether the function is
suitable for leaf function treatment. So it needs to renumber the suitable for leaf function treatment. So it needs to renumber the
registers in order to output a leaf function. The following macros registers in order to output a leaf function. The following macros
accomplish this. accomplish this.
...@@ -1622,7 +1623,7 @@ function treatment. ...@@ -1622,7 +1623,7 @@ function treatment.
If leaf function treatment involves renumbering the registers, then the If leaf function treatment involves renumbering the registers, then the
registers marked here should be the ones before renumbering---those that registers marked here should be the ones before renumbering---those that
GNU CC would ordinarily allocate. The registers which will actually be GCC would ordinarily allocate. The registers which will actually be
used in the assembler code, after renumbering, should not be marked with 1 used in the assembler code, after renumbering, should not be marked with 1
in this vector. in this vector.
...@@ -1665,7 +1666,7 @@ There are special features to handle computers where some of the ...@@ -1665,7 +1666,7 @@ There are special features to handle computers where some of the
Stack registers are normally written by pushing onto the stack, and are Stack registers are normally written by pushing onto the stack, and are
numbered relative to the top of the stack. numbered relative to the top of the stack.
Currently, GNU CC can only handle one group of stack-like registers, and Currently, GCC can only handle one group of stack-like registers, and
they must be consecutively numbered. they must be consecutively numbered.
@table @code @table @code
...@@ -1700,7 +1701,7 @@ register number @var{regno} is an overlapping register. This means a ...@@ -1700,7 +1701,7 @@ register number @var{regno} is an overlapping register. This means a
hard register which overlaps a hard register with a different number. hard register which overlaps a hard register with a different number.
(Such overlap is undesirable, but occasionally it allows a machine to (Such overlap is undesirable, but occasionally it allows a machine to
be supported which otherwise could not be.) This macro must return be supported which otherwise could not be.) This macro must return
nonzero for @emph{all} the registers which overlap each other. GNU CC nonzero for @emph{all} the registers which overlap each other. GCC
can use an overlapping register only in certain limited ways. It can can use an overlapping register only in certain limited ways. It can
be used for allocation within a basic block, and may be spilled for be used for allocation within a basic block, and may be spilled for
reloading; that is all. reloading; that is all.
...@@ -2319,29 +2320,29 @@ debugging information like that provided by DWARF 2. ...@@ -2319,29 +2320,29 @@ debugging information like that provided by DWARF 2.
@node Stack Checking @node Stack Checking
@subsection Specifying How Stack Checking is Done @subsection Specifying How Stack Checking is Done
GNU CC will check that stack references are within the boundaries of GCC will check that stack references are within the boundaries of
the stack, if the @samp{-fstack-check} is specified, in one of three ways: the stack, if the @samp{-fstack-check} is specified, in one of three ways:
@enumerate @enumerate
@item @item
If the value of the @code{STACK_CHECK_BUILTIN} macro is nonzero, GNU CC If the value of the @code{STACK_CHECK_BUILTIN} macro is nonzero, GCC
will assume that you have arranged for stack checking to be done at will assume that you have arranged for stack checking to be done at
appropriate places in the configuration files, e.g., in appropriate places in the configuration files, e.g., in
@code{FUNCTION_PROLOGUE}. GNU CC will do not other special processing. @code{FUNCTION_PROLOGUE}. GCC will do not other special processing.
@item @item
If @code{STACK_CHECK_BUILTIN} is zero and you defined a named pattern If @code{STACK_CHECK_BUILTIN} is zero and you defined a named pattern
called @code{check_stack} in your @file{md} file, GNU CC will call that called @code{check_stack} in your @file{md} file, GCC will call that
pattern with one argument which is the address to compare the stack pattern with one argument which is the address to compare the stack
value against. You must arrange for this pattern to report an error if value against. You must arrange for this pattern to report an error if
the stack pointer is out of range. the stack pointer is out of range.
@item @item
If neither of the above are true, GNU CC will generate code to periodically If neither of the above are true, GCC will generate code to periodically
``probe'' the stack pointer using the values of the macros defined below. ``probe'' the stack pointer using the values of the macros defined below.
@end enumerate @end enumerate
Normally, you will use the default values of these macros, so GNU CC Normally, you will use the default values of these macros, so GCC
will use the third approach. will use the third approach.
@table @code @table @code
...@@ -2350,20 +2351,20 @@ will use the third approach. ...@@ -2350,20 +2351,20 @@ will use the third approach.
A nonzero value if stack checking is done by the configuration files in a A nonzero value if stack checking is done by the configuration files in a
machine-dependent manner. You should define this macro if stack checking machine-dependent manner. You should define this macro if stack checking
is require by the ABI of your machine or if you would like to have to stack is require by the ABI of your machine or if you would like to have to stack
checking in some more efficient way than GNU CC's portable approach. checking in some more efficient way than GCC's portable approach.
The default value of this macro is zero. The default value of this macro is zero.
@findex STACK_CHECK_PROBE_INTERVAL @findex STACK_CHECK_PROBE_INTERVAL
@item STACK_CHECK_PROBE_INTERVAL @item STACK_CHECK_PROBE_INTERVAL
An integer representing the interval at which GNU CC must generate stack An integer representing the interval at which GCC must generate stack
probe instructions. You will normally define this macro to be no larger probe instructions. You will normally define this macro to be no larger
than the size of the ``guard pages'' at the end of a stack area. The than the size of the ``guard pages'' at the end of a stack area. The
default value of 4096 is suitable for most systems. default value of 4096 is suitable for most systems.
@findex STACK_CHECK_PROBE_LOAD @findex STACK_CHECK_PROBE_LOAD
@item STACK_CHECK_PROBE_LOAD @item STACK_CHECK_PROBE_LOAD
A integer which is nonzero if GNU CC should perform the stack probe A integer which is nonzero if GCC should perform the stack probe
as a load instruction and zero if GNU CC should use a store instruction. as a load instruction and zero if GCC should use a store instruction.
The default is zero, which is the most efficient choice on most systems. The default is zero, which is the most efficient choice on most systems.
@findex STACK_CHECK_PROTECT @findex STACK_CHECK_PROTECT
...@@ -2374,16 +2375,16 @@ for languages where such a recovery is supported. The default value of ...@@ -2374,16 +2375,16 @@ for languages where such a recovery is supported. The default value of
@findex STACK_CHECK_MAX_FRAME_SIZE @findex STACK_CHECK_MAX_FRAME_SIZE
@item STACK_CHECK_MAX_FRAME_SIZE @item STACK_CHECK_MAX_FRAME_SIZE
The maximum size of a stack frame, in bytes. GNU CC will generate probe The maximum size of a stack frame, in bytes. GCC will generate probe
instructions in non-leaf functions to ensure at least this many bytes of instructions in non-leaf functions to ensure at least this many bytes of
stack are available. If a stack frame is larger than this size, stack stack are available. If a stack frame is larger than this size, stack
checking will not be reliable and GNU CC will issue a warning. The checking will not be reliable and GCC will issue a warning. The
default is chosen so that GNU CC only generates one instruction on most default is chosen so that GCC only generates one instruction on most
systems. You should normally not change the default value of this macro. systems. You should normally not change the default value of this macro.
@findex STACK_CHECK_FIXED_FRAME_SIZE @findex STACK_CHECK_FIXED_FRAME_SIZE
@item STACK_CHECK_FIXED_FRAME_SIZE @item STACK_CHECK_FIXED_FRAME_SIZE
GNU CC uses this value to generate the above warning message. It GCC uses this value to generate the above warning message. It
represents the amount of fixed frame used by a function, not including represents the amount of fixed frame used by a function, not including
space for any callee-saved registers, temporaries and user variables. space for any callee-saved registers, temporaries and user variables.
You need only specify an upper bound for this amount and will normally You need only specify an upper bound for this amount and will normally
...@@ -2391,10 +2392,10 @@ use the default of four words. ...@@ -2391,10 +2392,10 @@ use the default of four words.
@findex STACK_CHECK_MAX_VAR_SIZE @findex STACK_CHECK_MAX_VAR_SIZE
@item STACK_CHECK_MAX_VAR_SIZE @item STACK_CHECK_MAX_VAR_SIZE
The maximum size, in bytes, of an object that GNU CC will place in the The maximum size, in bytes, of an object that GCC will place in the
fixed area of the stack frame when the user specifies fixed area of the stack frame when the user specifies
@samp{-fstack-check}. @samp{-fstack-check}.
GNU CC computed the default from the values of the above macros and you will GCC computed the default from the values of the above macros and you will
normally not need to override that default. normally not need to override that default.
@end table @end table
...@@ -2621,7 +2622,7 @@ A C expression that is the number of bytes actually pushed onto the ...@@ -2621,7 +2622,7 @@ A C expression that is the number of bytes actually pushed onto the
stack when an instruction attempts to push @var{npushed} bytes. stack when an instruction attempts to push @var{npushed} bytes.
If the target machine does not have a push instruction, do not define If the target machine does not have a push instruction, do not define
this macro. That directs GNU CC to use an alternate strategy: to this macro. That directs GCC to use an alternate strategy: to
allocate the entire argument block and then store the arguments into allocate the entire argument block and then store the arguments into
it. it.
...@@ -2660,7 +2661,7 @@ registers. ...@@ -2660,7 +2661,7 @@ registers.
The value of this macro is the size, in bytes, of the area reserved for The value of this macro is the size, in bytes, of the area reserved for
arguments passed in registers for the function represented by @var{fndecl}, arguments passed in registers for the function represented by @var{fndecl},
which can be zero if GNU CC is calling a library function. which can be zero if GCC is calling a library function.
This space can be allocated by the caller, or be a part of the This space can be allocated by the caller, or be a part of the
machine-dependent stack frame: @code{OUTGOING_REG_PARM_STACK_SPACE} says machine-dependent stack frame: @code{OUTGOING_REG_PARM_STACK_SPACE} says
...@@ -2693,7 +2694,7 @@ being called when it is known that such stack space must be allocated. ...@@ -2693,7 +2694,7 @@ being called when it is known that such stack space must be allocated.
In each case this value can be easily computed. In each case this value can be easily computed.
When deciding whether a called function needs such stack space, and how When deciding whether a called function needs such stack space, and how
much space to reserve, GNU CC uses these two macros instead of much space to reserve, GCC uses these two macros instead of
@code{REG_PARM_STACK_SPACE}. @code{REG_PARM_STACK_SPACE}.
@findex OUTGOING_REG_PARM_STACK_SPACE @findex OUTGOING_REG_PARM_STACK_SPACE
...@@ -2927,7 +2928,7 @@ finding the arguments for the function being compiled. If this macro is ...@@ -2927,7 +2928,7 @@ finding the arguments for the function being compiled. If this macro is
undefined, @code{INIT_CUMULATIVE_ARGS} is used instead. undefined, @code{INIT_CUMULATIVE_ARGS} is used instead.
The value passed for @var{libname} is always 0, since library routines The value passed for @var{libname} is always 0, since library routines
with special calling conventions are never compiled with GNU CC. The with special calling conventions are never compiled with GCC. The
argument @var{libname} exists for symmetry with argument @var{libname} exists for symmetry with
@code{INIT_CUMULATIVE_ARGS}. @code{INIT_CUMULATIVE_ARGS}.
@c could use "this macro" in place of @code{INIT_CUMULATIVE_ARGS}, maybe. @c could use "this macro" in place of @code{INIT_CUMULATIVE_ARGS}, maybe.
...@@ -3183,7 +3184,7 @@ nothing when you use @samp{-freg-struct-return} mode. ...@@ -3183,7 +3184,7 @@ nothing when you use @samp{-freg-struct-return} mode.
@node Caller Saves @node Caller Saves
@subsection Caller-Saves Register Allocation @subsection Caller-Saves Register Allocation
If you enable it, GNU CC can save registers around function calls. This If you enable it, GCC can save registers around function calls. This
makes it possible to use call-clobbered registers to hold variables that makes it possible to use call-clobbered registers to hold variables that
must live across calls. must live across calls.
...@@ -3460,7 +3461,7 @@ by the number @var{labelno}, so you would generate the name using ...@@ -3460,7 +3461,7 @@ by the number @var{labelno}, so you would generate the name using
@findex mcount @findex mcount
The details of how the address should be passed to @code{mcount} are The details of how the address should be passed to @code{mcount} are
determined by your operating system environment, not by GNU CC. To determined by your operating system environment, not by GCC. To
figure them out, compile a small program for profiling using the figure them out, compile a small program for profiling using the
system's installed C compiler and look at the assembler code that system's installed C compiler and look at the assembler code that
results. results.
...@@ -3643,7 +3644,7 @@ support block profiling. ...@@ -3643,7 +3644,7 @@ support block profiling.
@section Implementing the Varargs Macros @section Implementing the Varargs Macros
@cindex varargs implementation @cindex varargs implementation
GNU CC comes with an implementation of @file{varargs.h} and GCC comes with an implementation of @file{varargs.h} and
@file{stdarg.h} that work without change on machines that pass arguments @file{stdarg.h} that work without change on machines that pass arguments
on the stack. Other machines require their own implementations of on the stack. Other machines require their own implementations of
varargs, and the two machine independent header files must have varargs, and the two machine independent header files must have
...@@ -3809,7 +3810,7 @@ Otherwise, you should not define this macro. ...@@ -3809,7 +3810,7 @@ Otherwise, you should not define this macro.
A @dfn{trampoline} is a small piece of code that is created at run time A @dfn{trampoline} is a small piece of code that is created at run time
when the address of a nested function is taken. It normally resides on when the address of a nested function is taken. It normally resides on
the stack, in the stack frame of the containing function. These macros the stack, in the stack frame of the containing function. These macros
tell GNU CC how to generate code to allocate and initialize a tell GCC how to generate code to allocate and initialize a
trampoline. trampoline.
The instructions in the trampoline must do two things: load a constant The instructions in the trampoline must do two things: load a constant
...@@ -3950,7 +3951,7 @@ its cache line. Look in @file{m68k.h} as a guide. ...@@ -3950,7 +3951,7 @@ its cache line. Look in @file{m68k.h} as a guide.
@item TRANSFER_FROM_TRAMPOLINE @item TRANSFER_FROM_TRAMPOLINE
Define this macro if trampolines need a special subroutine to do their Define this macro if trampolines need a special subroutine to do their
work. The macro should expand to a series of @code{asm} statements work. The macro should expand to a series of @code{asm} statements
which will be compiled with GNU CC. They go in a library function named which will be compiled with GCC. They go in a library function named
@code{__transfer_from_trampoline}. @code{__transfer_from_trampoline}.
If you need to avoid executing the ordinary prologue code of a compiled If you need to avoid executing the ordinary prologue code of a compiled
...@@ -4059,7 +4060,7 @@ Most ports don't need to define this macro. ...@@ -4059,7 +4060,7 @@ Most ports don't need to define this macro.
@cindex @code{EDOM}, implicit usage @cindex @code{EDOM}, implicit usage
@item TARGET_EDOM @item TARGET_EDOM
The value of @code{EDOM} on the target machine, as a C integer constant The value of @code{EDOM} on the target machine, as a C integer constant
expression. If you don't define this macro, GNU CC does not attempt to expression. If you don't define this macro, GCC does not attempt to
deposit the value of @code{EDOM} into @code{errno} directly. Look in deposit the value of @code{EDOM} into @code{errno} directly. Look in
@file{/usr/include/errno.h} to find the value of @code{EDOM} on your @file{/usr/include/errno.h} to find the value of @code{EDOM} on your
system. system.
...@@ -4084,7 +4085,7 @@ macro, a reasonable default is used. ...@@ -4084,7 +4085,7 @@ macro, a reasonable default is used.
@cindex @code{bzero}, implicit usage @cindex @code{bzero}, implicit usage
@cindex @code{memset}, implicit usage @cindex @code{memset}, implicit usage
@item TARGET_MEM_FUNCTIONS @item TARGET_MEM_FUNCTIONS
Define this macro if GNU CC should generate calls to the System V Define this macro if GCC should generate calls to the System V
(and ANSI C) library functions @code{memcpy} and @code{memset} (and ANSI C) library functions @code{memcpy} and @code{memset}
rather than the BSD functions @code{bcopy} and @code{bzero}. rather than the BSD functions @code{bcopy} and @code{bzero}.
...@@ -4550,7 +4551,7 @@ and @var{op0} and @var{op1} are the left and right operands of the ...@@ -4550,7 +4551,7 @@ and @var{op0} and @var{op1} are the left and right operands of the
comparison, respectively. You should modify @var{code}, @var{op0}, and comparison, respectively. You should modify @var{code}, @var{op0}, and
@var{op1} as required. @var{op1} as required.
GNU CC will not assume that the comparison resulting from this macro is GCC will not assume that the comparison resulting from this macro is
valid but will see if the resulting insn matches a pattern in the valid but will see if the resulting insn matches a pattern in the
@file{md} file. @file{md} file.
...@@ -4697,14 +4698,14 @@ is relative to those in @code{REGISTER_MOVE_COST}. If moving between ...@@ -4697,14 +4698,14 @@ is relative to those in @code{REGISTER_MOVE_COST}. If moving between
registers and memory is more expensive than between two registers, you registers and memory is more expensive than between two registers, you
should define this macro to express the relative cost. should define this macro to express the relative cost.
If you do not define this macro, GNU CC uses a default cost of 4 plus If you do not define this macro, GCC uses a default cost of 4 plus
the cost of copying via a secondary reload register, if one is the cost of copying via a secondary reload register, if one is
needed. If your machine requires a secondary reload register to copy needed. If your machine requires a secondary reload register to copy
between memory and a register of @var{class} but the reload mechanism is between memory and a register of @var{class} but the reload mechanism is
more complex than copying via an intermediate, define this macro to more complex than copying via an intermediate, define this macro to
reflect the actual cost of the move. reflect the actual cost of the move.
GNU CC defines the function @code{memory_move_secondary_cost} if GCC defines the function @code{memory_move_secondary_cost} if
secondary reloads are needed. It computes the costs due to copying via secondary reloads are needed. It computes the costs due to copying via
a secondary register. If your machine copies from memory using a a secondary register. If your machine copies from memory using a
secondary register in the conventional way but the default base value of secondary register in the conventional way but the default base value of
...@@ -4719,7 +4720,7 @@ the default; other values are interpreted relative to that. ...@@ -4719,7 +4720,7 @@ the default; other values are interpreted relative to that.
@end table @end table
Here are additional macros which do not specify precise relative costs, Here are additional macros which do not specify precise relative costs,
but only that certain actions are more expensive than GNU CC would but only that certain actions are more expensive than GCC would
ordinarily expect. ordinarily expect.
@table @code @table @code
...@@ -4930,7 +4931,7 @@ will be used. ...@@ -4930,7 +4931,7 @@ will be used.
@item INIT_SECTION_ASM_OP @item INIT_SECTION_ASM_OP
If defined, a C expression whose value is a string containing the If defined, a C expression whose value is a string containing the
assembler operation to identify the following data as initialization assembler operation to identify the following data as initialization
code. If not defined, GNU CC will assume such a section does not code. If not defined, GCC will assume such a section does not
exist. exist.
@findex EXTRA_SECTIONS @findex EXTRA_SECTIONS
...@@ -5030,7 +5031,7 @@ unique sections. ...@@ -5030,7 +5031,7 @@ unique sections.
A C statement to build up a unique section name, expressed as a A C statement to build up a unique section name, expressed as a
STRING_CST node, and assign it to @samp{DECL_SECTION_NAME (@var{decl})}. STRING_CST node, and assign it to @samp{DECL_SECTION_NAME (@var{decl})}.
@var{reloc} indicates whether the initial value of @var{exp} requires @var{reloc} indicates whether the initial value of @var{exp} requires
link-time relocations. If you do not define this macro, GNU CC will use link-time relocations. If you do not define this macro, GCC will use
the symbol name prefixed by @samp{.} as the section name. the symbol name prefixed by @samp{.} as the section name.
@end table @end table
...@@ -5154,7 +5155,7 @@ see @file{attasm.h}. ...@@ -5154,7 +5155,7 @@ see @file{attasm.h}.
@findex ASM_IDENTIFY_GCC @findex ASM_IDENTIFY_GCC
@item ASM_IDENTIFY_GCC (@var{file}) @item ASM_IDENTIFY_GCC (@var{file})
A C statement to output assembler commands which will identify A C statement to output assembler commands which will identify
the object file as having been compiled with GNU CC (or another the object file as having been compiled with GCC (or another
GNU compiler). GNU compiler).
If you don't define this macro, the string @samp{gcc_compiled.:} If you don't define this macro, the string @samp{gcc_compiled.:}
...@@ -5201,7 +5202,7 @@ for the file format in use is appropriate. ...@@ -5201,7 +5202,7 @@ for the file format in use is appropriate.
@item OUTPUT_QUOTED_STRING (@var{stream}, @var{name}) @item OUTPUT_QUOTED_STRING (@var{stream}, @var{name})
A C statement to output the string @var{string} to the stdio stream A C statement to output the string @var{string} to the stdio stream
@var{stream}. If you do not call the function @code{output_quoted_string} @var{stream}. If you do not call the function @code{output_quoted_string}
in your config files, GNU CC will only call it to output filenames to in your config files, GCC will only call it to output filenames to
the assembler source. So you can use it to canonicalize the format the assembler source. So you can use it to canonicalize the format
of the filename using this macro. of the filename using this macro.
...@@ -5312,10 +5313,10 @@ Berkeley Unix assembler, do not define the macro ...@@ -5312,10 +5313,10 @@ Berkeley Unix assembler, do not define the macro
@findex CONSTANT_POOL_BEFORE_FUNCTION @findex CONSTANT_POOL_BEFORE_FUNCTION
@item CONSTANT_POOL_BEFORE_FUNCTION @item CONSTANT_POOL_BEFORE_FUNCTION
You may define this macro as a C expression. You should define the You may define this macro as a C expression. You should define the
expression to have a non-zero value if GNU CC should output the constant expression to have a non-zero value if GCC should output the constant
pool for a function before the code for the function, or a zero value if pool for a function before the code for the function, or a zero value if
GNU CC should output the constant pool after the function. If you do GCC should output the constant pool after the function. If you do
not define this macro, the usual case, GNU CC will output the constant not define this macro, the usual case, GCC will output the constant
pool before the function. pool before the function.
@findex ASM_OUTPUT_POOL_PROLOGUE @findex ASM_OUTPUT_POOL_PROLOGUE
...@@ -5371,7 +5372,7 @@ A C statement to output assembler commands to at the end of the constant ...@@ -5371,7 +5372,7 @@ A C statement to output assembler commands to at the end of the constant
pool for a function. @var{funname} is a string giving the name of the pool for a function. @var{funname} is a string giving the name of the
function. Should the return type of the function be required, you can function. Should the return type of the function be required, you can
obtain it via @var{fundecl}. @var{size} is the size, in bytes, of the obtain it via @var{fundecl}. @var{size} is the size, in bytes, of the
constant pool that GNU CC wrote immediately before this call. constant pool that GCC wrote immediately before this call.
If no constant-pool epilogue is required, the usual case, you need not If no constant-pool epilogue is required, the usual case, you need not
define this macro. define this macro.
...@@ -5465,7 +5466,7 @@ as the number of bits. ...@@ -5465,7 +5466,7 @@ as the number of bits.
@item ASM_OUTPUT_ALIGNED_DECL_COMMON (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{alignment}) @item ASM_OUTPUT_ALIGNED_DECL_COMMON (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{alignment})
Like @code{ASM_OUTPUT_ALIGNED_COMMON} except that @var{decl} of the Like @code{ASM_OUTPUT_ALIGNED_COMMON} except that @var{decl} of the
variable to be output, if there is one, or @code{NULL_TREE} if there variable to be output, if there is one, or @code{NULL_TREE} if there
is not corresponding variable. If you define this macro, GNU CC wil use it is not corresponding variable. If you define this macro, GCC wil use it
in place of both @code{ASM_OUTPUT_COMMON} and in place of both @code{ASM_OUTPUT_COMMON} and
@code{ASM_OUTPUT_ALIGNED_COMMON}. Define this macro when you need to see @code{ASM_OUTPUT_ALIGNED_COMMON}. Define this macro when you need to see
the variable's decl in order to chose what to output. the variable's decl in order to chose what to output.
...@@ -5540,7 +5541,7 @@ as the number of bits. ...@@ -5540,7 +5541,7 @@ as the number of bits.
@item ASM_OUTPUT_ALIGNED_DECL_LOCAL (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{alignment}) @item ASM_OUTPUT_ALIGNED_DECL_LOCAL (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{alignment})
Like @code{ASM_OUTPUT_ALIGNED_DECL} except that @var{decl} of the Like @code{ASM_OUTPUT_ALIGNED_DECL} except that @var{decl} of the
variable to be output, if there is one, or @code{NULL_TREE} if there variable to be output, if there is one, or @code{NULL_TREE} if there
is not corresponding variable. If you define this macro, GNU CC wil use it is not corresponding variable. If you define this macro, GCC wil use it
in place of both @code{ASM_OUTPUT_DECL} and in place of both @code{ASM_OUTPUT_DECL} and
@code{ASM_OUTPUT_ALIGNED_DECL}. Define this macro when you need to see @code{ASM_OUTPUT_ALIGNED_DECL}. Define this macro when you need to see
the variable's decl in order to chose what to output. the variable's decl in order to chose what to output.
...@@ -5641,7 +5642,7 @@ no other definition is available. Use the expression ...@@ -5641,7 +5642,7 @@ no other definition is available. Use the expression
itself; before and after that, output the additional assembler syntax itself; before and after that, output the additional assembler syntax
for making that name weak, and a newline. for making that name weak, and a newline.
If you don't define this macro, GNU CC will not support weak If you don't define this macro, GCC will not support weak
symbols and you should not define the @code{SUPPORTS_WEAK} macro. symbols and you should not define the @code{SUPPORTS_WEAK} macro.
@findex SUPPORTS_WEAK @findex SUPPORTS_WEAK
...@@ -5790,7 +5791,7 @@ the tree nodes are available. ...@@ -5790,7 +5791,7 @@ the tree nodes are available.
A C statement to output to the stdio stream @var{stream} assembler code A C statement to output to the stdio stream @var{stream} assembler code
which defines (equates) the symbol @var{symbol} to have a value equal to which defines (equates) the symbol @var{symbol} to have a value equal to
the difference of the two symbols @var{high} and @var{low}, i.e. the difference of the two symbols @var{high} and @var{low}, i.e.
@var{high} minus @var{low}. GNU CC guarantees that the symbols @var{high} @var{high} minus @var{low}. GCC guarantees that the symbols @var{high}
and @var{low} are already known by the assembler so that the difference and @var{low} are already known by the assembler so that the difference
resolves into a constant. resolves into a constant.
...@@ -5940,7 +5941,7 @@ this case, @code{ASM_OUTPUT_CONSTRUCTOR} does not produce an ...@@ -5940,7 +5941,7 @@ this case, @code{ASM_OUTPUT_CONSTRUCTOR} does not produce an
@code{N_SETT} symbol; initialization and termination functions are @code{N_SETT} symbol; initialization and termination functions are
recognized simply by their names. This requires an extra program in the recognized simply by their names. This requires an extra program in the
linkage step, called @code{collect2}. This program pretends to be the linkage step, called @code{collect2}. This program pretends to be the
linker, for use with GNU CC; it does its job by running the ordinary linker, for use with GCC; it does its job by running the ordinary
linker, but also arranges to include the vectors of initialization and linker, but also arranges to include the vectors of initialization and
termination functions. These functions are called via @code{__main} as termination functions. These functions are called via @code{__main} as
described above. described above.
...@@ -5983,7 +5984,7 @@ and termination functions: ...@@ -5983,7 +5984,7 @@ and termination functions:
@findex INIT_SECTION_ASM_OP @findex INIT_SECTION_ASM_OP
@item INIT_SECTION_ASM_OP @item INIT_SECTION_ASM_OP
If defined, a C string constant for the assembler operation to identify If defined, a C string constant for the assembler operation to identify
the following data as initialization code. If not defined, GNU CC will the following data as initialization code. If not defined, GCC will
assume such a section does not exist. When you are using special assume such a section does not exist. When you are using special
sections for initialization and termination functions, this macro also sections for initialization and termination functions, this macro also
controls how @file{crtstuff.c} and @file{libgcc2.c} arrange to run the controls how @file{crtstuff.c} and @file{libgcc2.c} arrange to run the
...@@ -6408,7 +6409,7 @@ or @samp{-fPIC} is in effect, the @code{data_section}, otherwise the ...@@ -6408,7 +6409,7 @@ or @samp{-fPIC} is in effect, the @code{data_section}, otherwise the
@item EH_FRAME_SECTION_ASM_OP @item EH_FRAME_SECTION_ASM_OP
If defined, a C string constant for the assembler operation to switch to If defined, a C string constant for the assembler operation to switch to
the section for exception handling frame unwind information. If not the section for exception handling frame unwind information. If not
defined, GNU CC will provide a default definition if the target supports defined, GCC will provide a default definition if the target supports
named sections. @file{crtstuff.c} uses this macro to switch to the named sections. @file{crtstuff.c} uses this macro to switch to the
appropriate section. appropriate section.
...@@ -6550,7 +6551,7 @@ registers that the compiler knows about and DBX does not, or vice ...@@ -6550,7 +6551,7 @@ registers that the compiler knows about and DBX does not, or vice
versa. In such cases, some register may need to have one number in versa. In such cases, some register may need to have one number in
the compiler and another for DBX. the compiler and another for DBX.
If two registers have consecutive numbers inside GNU CC, and they can be If two registers have consecutive numbers inside GCC, and they can be
used as a pair to hold a multiword value, then they @emph{must} have used as a pair to hold a multiword value, then they @emph{must} have
consecutive numbers after renumbering with @code{DBX_REGISTER_NUMBER}. consecutive numbers after renumbering with @code{DBX_REGISTER_NUMBER}.
Otherwise, debuggers will be unable to access such a pair, because they Otherwise, debuggers will be unable to access such a pair, because they
...@@ -6578,19 +6579,19 @@ having address @var{x} (an RTL expression). The nominal offset is ...@@ -6578,19 +6579,19 @@ having address @var{x} (an RTL expression). The nominal offset is
@findex PREFERRED_DEBUGGING_TYPE @findex PREFERRED_DEBUGGING_TYPE
@item PREFERRED_DEBUGGING_TYPE @item PREFERRED_DEBUGGING_TYPE
A C expression that returns the type of debugging output GNU CC should A C expression that returns the type of debugging output GCC should
produce when the user specifies just @samp{-g}. Define produce when the user specifies just @samp{-g}. Define
this if you have arranged for GNU CC to support more than one format of this if you have arranged for GCC to support more than one format of
debugging output. Currently, the allowable values are @code{DBX_DEBUG}, debugging output. Currently, the allowable values are @code{DBX_DEBUG},
@code{SDB_DEBUG}, @code{DWARF_DEBUG}, @code{DWARF2_DEBUG}, and @code{SDB_DEBUG}, @code{DWARF_DEBUG}, @code{DWARF2_DEBUG}, and
@code{XCOFF_DEBUG}. @code{XCOFF_DEBUG}.
When the user specifies @samp{-ggdb}, GNU CC normally also uses the When the user specifies @samp{-ggdb}, GCC normally also uses the
value of this macro to select the debugging output format, but with two value of this macro to select the debugging output format, but with two
exceptions. If @code{DWARF2_DEBUGGING_INFO} is defined and exceptions. If @code{DWARF2_DEBUGGING_INFO} is defined and
@code{LINKER_DOES_NOT_WORK_WITH_DWARF2} is not defined, GNU CC uses the @code{LINKER_DOES_NOT_WORK_WITH_DWARF2} is not defined, GCC uses the
value @code{DWARF2_DEBUG}. Otherwise, if @code{DBX_DEBUGGING_INFO} is value @code{DWARF2_DEBUG}. Otherwise, if @code{DBX_DEBUGGING_INFO} is
defined, GNU CC uses @code{DBX_DEBUG}. defined, GCC uses @code{DBX_DEBUG}.
The value of this macro only affects the default debugging output; the The value of this macro only affects the default debugging output; the
user can always get a specific type of output by using @samp{-gstabs}, user can always get a specific type of output by using @samp{-gstabs},
...@@ -6606,17 +6607,17 @@ These are specific options for DBX output. ...@@ -6606,17 +6607,17 @@ These are specific options for DBX output.
@table @code @table @code
@findex DBX_DEBUGGING_INFO @findex DBX_DEBUGGING_INFO
@item DBX_DEBUGGING_INFO @item DBX_DEBUGGING_INFO
Define this macro if GNU CC should produce debugging output for DBX Define this macro if GCC should produce debugging output for DBX
in response to the @samp{-g} option. in response to the @samp{-g} option.
@findex XCOFF_DEBUGGING_INFO @findex XCOFF_DEBUGGING_INFO
@item XCOFF_DEBUGGING_INFO @item XCOFF_DEBUGGING_INFO
Define this macro if GNU CC should produce XCOFF format debugging output Define this macro if GCC should produce XCOFF format debugging output
in response to the @samp{-g} option. This is a variant of DBX format. in response to the @samp{-g} option. This is a variant of DBX format.
@findex DEFAULT_GDB_EXTENSIONS @findex DEFAULT_GDB_EXTENSIONS
@item DEFAULT_GDB_EXTENSIONS @item DEFAULT_GDB_EXTENSIONS
Define this macro to control whether GNU CC should by default generate Define this macro to control whether GCC should by default generate
GDB's extended version of DBX debugging information (assuming DBX-format GDB's extended version of DBX debugging information (assuming DBX-format
debugging information is enabled at all). If you don't define the debugging information is enabled at all). If you don't define the
macro, the default is 1: always generate the extended information macro, the default is 1: always generate the extended information
...@@ -6902,17 +6903,17 @@ Here are macros for SDB and DWARF output. ...@@ -6902,17 +6903,17 @@ Here are macros for SDB and DWARF output.
@table @code @table @code
@findex SDB_DEBUGGING_INFO @findex SDB_DEBUGGING_INFO
@item SDB_DEBUGGING_INFO @item SDB_DEBUGGING_INFO
Define this macro if GNU CC should produce COFF-style debugging output Define this macro if GCC should produce COFF-style debugging output
for SDB in response to the @samp{-g} option. for SDB in response to the @samp{-g} option.
@findex DWARF_DEBUGGING_INFO @findex DWARF_DEBUGGING_INFO
@item DWARF_DEBUGGING_INFO @item DWARF_DEBUGGING_INFO
Define this macro if GNU CC should produce dwarf format debugging output Define this macro if GCC should produce dwarf format debugging output
in response to the @samp{-g} option. in response to the @samp{-g} option.
@findex DWARF2_DEBUGGING_INFO @findex DWARF2_DEBUGGING_INFO
@item DWARF2_DEBUGGING_INFO @item DWARF2_DEBUGGING_INFO
Define this macro if GNU CC should produce dwarf version 2 format Define this macro if GCC should produce dwarf version 2 format
debugging output in response to the @samp{-g} option. debugging output in response to the @samp{-g} option.
To support optional call frame debugging information, you must also To support optional call frame debugging information, you must also
...@@ -6923,15 +6924,15 @@ as appropriate from @code{FUNCTION_PROLOGUE} if you don't. ...@@ -6923,15 +6924,15 @@ as appropriate from @code{FUNCTION_PROLOGUE} if you don't.
@findex DWARF2_FRAME_INFO @findex DWARF2_FRAME_INFO
@item DWARF2_FRAME_INFO @item DWARF2_FRAME_INFO
Define this macro to a nonzero value if GNU CC should always output Define this macro to a nonzero value if GCC should always output
Dwarf 2 frame information. If @code{DWARF2_UNWIND_INFO} Dwarf 2 frame information. If @code{DWARF2_UNWIND_INFO}
(@pxref{Exception Region Output} is nonzero, GNU CC will output this (@pxref{Exception Region Output} is nonzero, GCC will output this
information not matter how you define @code{DWARF2_FRAME_INFO}. information not matter how you define @code{DWARF2_FRAME_INFO}.
@findex LINKER_DOES_NOT_WORK_WITH_DWARF2 @findex LINKER_DOES_NOT_WORK_WITH_DWARF2
@item LINKER_DOES_NOT_WORK_WITH_DWARF2 @item LINKER_DOES_NOT_WORK_WITH_DWARF2
Define this macro if the linker does not work with Dwarf version 2. Define this macro if the linker does not work with Dwarf version 2.
Normally, if the user specifies only @samp{-ggdb} GNU CC will use Dwarf Normally, if the user specifies only @samp{-ggdb} GCC will use Dwarf
version 2 if available; this macro disables this. See the description version 2 if available; this macro disables this. See the description
of the @code{PREFERRED_DEBUGGING_TYPE} macro for more details. of the @code{PREFERRED_DEBUGGING_TYPE} macro for more details.
...@@ -7366,7 +7367,7 @@ tested into the sign bit. ...@@ -7366,7 +7367,7 @@ tested into the sign bit.
There is no way to describe a machine that always sets the low-order bit There is no way to describe a machine that always sets the low-order bit
for a true value, but does not guarantee the value of any other bits, for a true value, but does not guarantee the value of any other bits,
but we do not know of any machine that has such an instruction. If you but we do not know of any machine that has such an instruction. If you
are trying to port GNU CC to such a machine, include an instruction to are trying to port GCC to such a machine, include an instruction to
perform a logical-and of the result with 1 in the pattern for the perform a logical-and of the result with 1 in the pattern for the
comparison operators and let us know comparison operators and let us know
@ifset USING @ifset USING
...@@ -7640,7 +7641,7 @@ only needed if neither @code{HAVE_ATEXIT} nor ...@@ -7640,7 +7641,7 @@ only needed if neither @code{HAVE_ATEXIT} nor
Define this macro as a C expression that is nonzero if it is safe for the Define this macro as a C expression that is nonzero if it is safe for the
delay slot scheduler to place instructions in the delay slot of @var{insn}, delay slot scheduler to place instructions in the delay slot of @var{insn},
even if they appear to use a resource set or clobbered in @var{insn}. even if they appear to use a resource set or clobbered in @var{insn}.
@var{insn} is always a @code{jump_insn} or an @code{insn}; GNU CC knows that @var{insn} is always a @code{jump_insn} or an @code{insn}; GCC knows that
every @code{call_insn} has this behavior. On machines where some @code{insn} every @code{call_insn} has this behavior. On machines where some @code{insn}
or @code{jump_insn} is really a function call and hence has this behavior, or @code{jump_insn} is really a function call and hence has this behavior,
you should define this macro. you should define this macro.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment