mkconfig.sh: Include insn-flags.h and insn-constants.h before defaults.h.
* mkconfig.sh: Include insn-flags.h and insn-constants.h before defaults.h. * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS to defaults.h * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO, DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING, FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE, STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN, STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP, STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT, STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE, STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h. * defaults.h: Updated for above mentioned changes. From-SVN: r160195
This commit is contained in:
parent
3f7c0b1bc3
commit
77ec430740
|
@ -1,3 +1,19 @@
|
|||
2010-06-02 Steven Bosscher <steven@gcc.gnu.org>
|
||||
|
||||
* mkconfig.sh: Include insn-flags.h and insn-constants.h before
|
||||
defaults.h.
|
||||
* except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
|
||||
to defaults.h
|
||||
* expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
|
||||
DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
|
||||
FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
|
||||
STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
|
||||
STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
|
||||
STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
|
||||
STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
|
||||
STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
|
||||
* defaults.h: Updated for above mentioned changes.
|
||||
|
||||
2010-06-02 Kai Tietz <kai.tietz@onevision.com>
|
||||
|
||||
* c-common.c: Remove header include of tm_p.h.
|
||||
|
|
201
gcc/defaults.h
201
gcc/defaults.h
|
@ -1165,4 +1165,205 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|||
#define CONSTANT_ADDRESS_P(X) (CONSTANT_P (X) && GET_CODE (X) != CONST_DOUBLE)
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GCC_INSN_FLAGS_H
|
||||
/* Dependent default target macro definitions
|
||||
|
||||
This section of defaults.h defines target macros that depend on generated
|
||||
headers. This is a bit awkward: We want to put all default definitions
|
||||
for target macros in defaults.h, but some of the defaults depend on the
|
||||
HAVE_* flags defines of insn-flags.h. But insn-flags.h is not always
|
||||
included by files that do include defaults.h.
|
||||
|
||||
Fortunately, the default macro definitions that depend on the HAVE_*
|
||||
macros are also the ones that will only be used inside GCC itself, i.e.
|
||||
not in the gen* programs or in target objects like libgcc.
|
||||
|
||||
Obviously, it would be best to keep this section of defaults.h as small
|
||||
as possible, by converting the macros defined below to target hooks or
|
||||
functions.
|
||||
*/
|
||||
|
||||
/* Just because the user configured --with-sjlj-exceptions=no doesn't
|
||||
mean that we can use call frame exceptions. Detect that the target
|
||||
has appropriate support. */
|
||||
|
||||
#ifndef MUST_USE_SJLJ_EXCEPTIONS
|
||||
# if defined (EH_RETURN_DATA_REGNO) \
|
||||
&& (defined (TARGET_UNWIND_INFO) \
|
||||
|| (DWARF2_UNWIND_INFO \
|
||||
&& (defined (EH_RETURN_HANDLER_RTX) \
|
||||
|| defined (HAVE_eh_return))))
|
||||
# define MUST_USE_SJLJ_EXCEPTIONS 0
|
||||
# else
|
||||
# define MUST_USE_SJLJ_EXCEPTIONS 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SJLJ_EXCEPTIONS
|
||||
# if CONFIG_SJLJ_EXCEPTIONS == 1
|
||||
# define USING_SJLJ_EXCEPTIONS 1
|
||||
# endif
|
||||
# if CONFIG_SJLJ_EXCEPTIONS == 0
|
||||
# define USING_SJLJ_EXCEPTIONS 0
|
||||
# if !defined(EH_RETURN_DATA_REGNO)
|
||||
#error "EH_RETURN_DATA_REGNO required"
|
||||
# endif
|
||||
# if ! (defined(TARGET_UNWIND_INFO) || DWARF2_UNWIND_INFO)
|
||||
#error "{DWARF2,TARGET}_UNWIND_INFO required"
|
||||
# endif
|
||||
# if !defined(TARGET_UNWIND_INFO) \
|
||||
&& !(defined(EH_RETURN_HANDLER_RTX) || defined(HAVE_eh_return))
|
||||
#error "EH_RETURN_HANDLER_RTX or eh_return required"
|
||||
# endif
|
||||
/* Usually the above error checks will have already triggered an
|
||||
error, but backends may set MUST_USE_SJLJ_EXCEPTIONS for their own
|
||||
reasons. */
|
||||
# if MUST_USE_SJLJ_EXCEPTIONS
|
||||
#error "Must use SJLJ exceptions but configured not to"
|
||||
# endif
|
||||
# endif
|
||||
#else
|
||||
# define USING_SJLJ_EXCEPTIONS MUST_USE_SJLJ_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
/* The default branch cost is 1. */
|
||||
#ifndef BRANCH_COST
|
||||
#define BRANCH_COST(speed_p, predictable_p) 1
|
||||
#endif
|
||||
|
||||
/* If a memory-to-memory move would take MOVE_RATIO or more simple
|
||||
move-instruction sequences, we will do a movmem or libcall instead. */
|
||||
|
||||
#ifndef MOVE_RATIO
|
||||
#if defined (HAVE_movmemqi) || defined (HAVE_movmemhi) || defined (HAVE_movmemsi) || defined (HAVE_movmemdi) || defined (HAVE_movmemti)
|
||||
#define MOVE_RATIO(speed) 2
|
||||
#else
|
||||
/* If we are optimizing for space (-Os), cut down the default move ratio. */
|
||||
#define MOVE_RATIO(speed) ((speed) ? 15 : 3)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* If a clear memory operation would take CLEAR_RATIO or more simple
|
||||
move-instruction sequences, we will do a setmem or libcall instead. */
|
||||
|
||||
#ifndef CLEAR_RATIO
|
||||
#if defined (HAVE_setmemqi) || defined (HAVE_setmemhi) || defined (HAVE_setmemsi) || defined (HAVE_setmemdi) || defined (HAVE_setmemti)
|
||||
#define CLEAR_RATIO(speed) 2
|
||||
#else
|
||||
/* If we are optimizing for space, cut down the default clear ratio. */
|
||||
#define CLEAR_RATIO(speed) ((speed) ? 15 :3)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* If a memory set (to value other than zero) operation would take
|
||||
SET_RATIO or more simple move-instruction sequences, we will do a movmem
|
||||
or libcall instead. */
|
||||
#ifndef SET_RATIO
|
||||
#define SET_RATIO(speed) MOVE_RATIO(speed)
|
||||
#endif
|
||||
|
||||
/* Supply a default definition for FUNCTION_ARG_PADDING:
|
||||
usually pad upward, but pad short args downward on
|
||||
big-endian machines. */
|
||||
|
||||
#define DEFAULT_FUNCTION_ARG_PADDING(MODE, TYPE) \
|
||||
(! BYTES_BIG_ENDIAN \
|
||||
? upward \
|
||||
: (((MODE) == BLKmode \
|
||||
? ((TYPE) && TREE_CODE (TYPE_SIZE (TYPE)) == INTEGER_CST \
|
||||
&& int_size_in_bytes (TYPE) < (PARM_BOUNDARY / BITS_PER_UNIT)) \
|
||||
: GET_MODE_BITSIZE (MODE) < PARM_BOUNDARY) \
|
||||
? downward : upward))
|
||||
|
||||
#ifndef FUNCTION_ARG_PADDING
|
||||
#define FUNCTION_ARG_PADDING(MODE, TYPE) \
|
||||
DEFAULT_FUNCTION_ARG_PADDING ((MODE), (TYPE))
|
||||
#endif
|
||||
|
||||
/* Supply a default definition for FUNCTION_ARG_BOUNDARY. Normally, we let
|
||||
FUNCTION_ARG_PADDING, which also pads the length, handle any needed
|
||||
alignment. */
|
||||
|
||||
#ifndef FUNCTION_ARG_BOUNDARY
|
||||
#define FUNCTION_ARG_BOUNDARY(MODE, TYPE) PARM_BOUNDARY
|
||||
#endif
|
||||
|
||||
/* Supply a default definition of STACK_SAVEAREA_MODE for emit_stack_save.
|
||||
Normally move_insn, so Pmode stack pointer. */
|
||||
|
||||
#ifndef STACK_SAVEAREA_MODE
|
||||
#define STACK_SAVEAREA_MODE(LEVEL) Pmode
|
||||
#endif
|
||||
|
||||
/* Supply a default definition of STACK_SIZE_MODE for
|
||||
allocate_dynamic_stack_space. Normally PLUS/MINUS, so word_mode. */
|
||||
|
||||
#ifndef STACK_SIZE_MODE
|
||||
#define STACK_SIZE_MODE word_mode
|
||||
#endif
|
||||
|
||||
/* Provide default values for the macros controlling stack checking. */
|
||||
|
||||
/* The default is neither full builtin stack checking... */
|
||||
#ifndef STACK_CHECK_BUILTIN
|
||||
#define STACK_CHECK_BUILTIN 0
|
||||
#endif
|
||||
|
||||
/* ...nor static builtin stack checking. */
|
||||
#ifndef STACK_CHECK_STATIC_BUILTIN
|
||||
#define STACK_CHECK_STATIC_BUILTIN 0
|
||||
#endif
|
||||
|
||||
/* The default interval is one page (4096 bytes). */
|
||||
#ifndef STACK_CHECK_PROBE_INTERVAL_EXP
|
||||
#define STACK_CHECK_PROBE_INTERVAL_EXP 12
|
||||
#endif
|
||||
|
||||
/* The default is not to move the stack pointer. */
|
||||
#ifndef STACK_CHECK_MOVING_SP
|
||||
#define STACK_CHECK_MOVING_SP 0
|
||||
#endif
|
||||
|
||||
/* This is a kludge to try to capture the discrepancy between the old
|
||||
mechanism (generic stack checking) and the new mechanism (static
|
||||
builtin stack checking). STACK_CHECK_PROTECT needs to be bumped
|
||||
for the latter because part of the protection area is effectively
|
||||
included in STACK_CHECK_MAX_FRAME_SIZE for the former. */
|
||||
#ifdef STACK_CHECK_PROTECT
|
||||
#define STACK_OLD_CHECK_PROTECT STACK_CHECK_PROTECT
|
||||
#else
|
||||
#define STACK_OLD_CHECK_PROTECT \
|
||||
(USING_SJLJ_EXCEPTIONS ? 75 * UNITS_PER_WORD : 8 * 1024)
|
||||
#endif
|
||||
|
||||
/* Minimum amount of stack required to recover from an anticipated stack
|
||||
overflow detection. The default value conveys an estimate of the amount
|
||||
of stack required to propagate an exception. */
|
||||
#ifndef STACK_CHECK_PROTECT
|
||||
#define STACK_CHECK_PROTECT \
|
||||
(USING_SJLJ_EXCEPTIONS ? 75 * UNITS_PER_WORD : 12 * 1024)
|
||||
#endif
|
||||
|
||||
/* Make the maximum frame size be the largest we can and still only need
|
||||
one probe per function. */
|
||||
#ifndef STACK_CHECK_MAX_FRAME_SIZE
|
||||
#define STACK_CHECK_MAX_FRAME_SIZE \
|
||||
((1 << STACK_CHECK_PROBE_INTERVAL_EXP) - UNITS_PER_WORD)
|
||||
#endif
|
||||
|
||||
/* This is arbitrary, but should be large enough everywhere. */
|
||||
#ifndef STACK_CHECK_FIXED_FRAME_SIZE
|
||||
#define STACK_CHECK_FIXED_FRAME_SIZE (4 * UNITS_PER_WORD)
|
||||
#endif
|
||||
|
||||
/* Provide a reasonable default for the maximum size of an object to
|
||||
allocate in the fixed frame. We may need to be able to make this
|
||||
controllable by the user at some point. */
|
||||
#ifndef STACK_CHECK_MAX_VAR_SIZE
|
||||
#define STACK_CHECK_MAX_VAR_SIZE (STACK_CHECK_MAX_FRAME_SIZE / 100)
|
||||
#endif
|
||||
|
||||
#endif /* GCC_INSN_FLAGS_H */
|
||||
|
||||
#endif /* ! GCC_DEFAULTS_H */
|
||||
|
|
44
gcc/except.h
44
gcc/except.h
|
@ -295,50 +295,6 @@ extern eh_landing_pad get_eh_landing_pad_from_rtx (const_rtx);
|
|||
FUNCTION_DECL for `std::terminate'. */
|
||||
extern tree (*lang_protect_cleanup_actions) (void);
|
||||
|
||||
|
||||
/* Just because the user configured --with-sjlj-exceptions=no doesn't
|
||||
mean that we can use call frame exceptions. Detect that the target
|
||||
has appropriate support. */
|
||||
|
||||
#ifndef MUST_USE_SJLJ_EXCEPTIONS
|
||||
# if defined (EH_RETURN_DATA_REGNO) \
|
||||
&& (defined (TARGET_UNWIND_INFO) \
|
||||
|| (DWARF2_UNWIND_INFO \
|
||||
&& (defined (EH_RETURN_HANDLER_RTX) \
|
||||
|| defined (HAVE_eh_return))))
|
||||
# define MUST_USE_SJLJ_EXCEPTIONS 0
|
||||
# else
|
||||
# define MUST_USE_SJLJ_EXCEPTIONS 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SJLJ_EXCEPTIONS
|
||||
# if CONFIG_SJLJ_EXCEPTIONS == 1
|
||||
# define USING_SJLJ_EXCEPTIONS 1
|
||||
# endif
|
||||
# if CONFIG_SJLJ_EXCEPTIONS == 0
|
||||
# define USING_SJLJ_EXCEPTIONS 0
|
||||
# if !defined(EH_RETURN_DATA_REGNO)
|
||||
#error "EH_RETURN_DATA_REGNO required"
|
||||
# endif
|
||||
# if ! (defined(TARGET_UNWIND_INFO) || DWARF2_UNWIND_INFO)
|
||||
#error "{DWARF2,TARGET}_UNWIND_INFO required"
|
||||
# endif
|
||||
# if !defined(TARGET_UNWIND_INFO) \
|
||||
&& !(defined(EH_RETURN_HANDLER_RTX) || defined(HAVE_eh_return))
|
||||
#error "EH_RETURN_HANDLER_RTX or eh_return required"
|
||||
# endif
|
||||
/* Usually the above error checks will have already triggered an
|
||||
error, but backends may set MUST_USE_SJLJ_EXCEPTIONS for their own
|
||||
reasons. */
|
||||
# if MUST_USE_SJLJ_EXCEPTIONS
|
||||
#error "Must use SJLJ exceptions but configured not to"
|
||||
# endif
|
||||
# endif
|
||||
#else
|
||||
# define USING_SJLJ_EXCEPTIONS MUST_USE_SJLJ_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
struct GTY(()) throw_stmt_node {
|
||||
gimple stmt;
|
||||
int lp_nr;
|
||||
|
|
136
gcc/expr.h
136
gcc/expr.h
|
@ -34,11 +34,6 @@ along with GCC; see the file COPYING3. If not see
|
|||
/* For GET_MODE_BITSIZE, word_mode */
|
||||
#include "machmode.h"
|
||||
|
||||
/* The default branch cost is 1. */
|
||||
#ifndef BRANCH_COST
|
||||
#define BRANCH_COST(speed_p, predictable_p) 1
|
||||
#endif
|
||||
|
||||
/* This is the 4th arg to `expand_expr'.
|
||||
EXPAND_STACK_PARM means we are possibly expanding a call param onto
|
||||
the stack.
|
||||
|
@ -61,37 +56,6 @@ enum expand_modifier {EXPAND_NORMAL = 0, EXPAND_STACK_PARM, EXPAND_SUM,
|
|||
more information. */
|
||||
#define OK_DEFER_POP (inhibit_defer_pop -= 1)
|
||||
|
||||
/* If a memory-to-memory move would take MOVE_RATIO or more simple
|
||||
move-instruction sequences, we will do a movmem or libcall instead. */
|
||||
|
||||
#ifndef MOVE_RATIO
|
||||
#if defined (HAVE_movmemqi) || defined (HAVE_movmemhi) || defined (HAVE_movmemsi) || defined (HAVE_movmemdi) || defined (HAVE_movmemti)
|
||||
#define MOVE_RATIO(speed) 2
|
||||
#else
|
||||
/* If we are optimizing for space (-Os), cut down the default move ratio. */
|
||||
#define MOVE_RATIO(speed) ((speed) ? 15 : 3)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* If a clear memory operation would take CLEAR_RATIO or more simple
|
||||
move-instruction sequences, we will do a setmem or libcall instead. */
|
||||
|
||||
#ifndef CLEAR_RATIO
|
||||
#if defined (HAVE_setmemqi) || defined (HAVE_setmemhi) || defined (HAVE_setmemsi) || defined (HAVE_setmemdi) || defined (HAVE_setmemti)
|
||||
#define CLEAR_RATIO(speed) 2
|
||||
#else
|
||||
/* If we are optimizing for space, cut down the default clear ratio. */
|
||||
#define CLEAR_RATIO(speed) ((speed) ? 15 :3)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* If a memory set (to value other than zero) operation would take
|
||||
SET_RATIO or more simple move-instruction sequences, we will do a movmem
|
||||
or libcall instead. */
|
||||
#ifndef SET_RATIO
|
||||
#define SET_RATIO(speed) MOVE_RATIO(speed)
|
||||
#endif
|
||||
|
||||
enum direction {none, upward, downward};
|
||||
|
||||
/* Structure to record the size of a sequence of arguments
|
||||
|
@ -166,106 +130,6 @@ do { \
|
|||
((SIZE).var == 0 ? GEN_INT ((SIZE).constant) \
|
||||
: expand_normal (ARGS_SIZE_TREE (SIZE)))
|
||||
|
||||
/* Supply a default definition for FUNCTION_ARG_PADDING:
|
||||
usually pad upward, but pad short args downward on
|
||||
big-endian machines. */
|
||||
|
||||
#define DEFAULT_FUNCTION_ARG_PADDING(MODE, TYPE) \
|
||||
(! BYTES_BIG_ENDIAN \
|
||||
? upward \
|
||||
: (((MODE) == BLKmode \
|
||||
? ((TYPE) && TREE_CODE (TYPE_SIZE (TYPE)) == INTEGER_CST \
|
||||
&& int_size_in_bytes (TYPE) < (PARM_BOUNDARY / BITS_PER_UNIT)) \
|
||||
: GET_MODE_BITSIZE (MODE) < PARM_BOUNDARY) \
|
||||
? downward : upward))
|
||||
|
||||
#ifndef FUNCTION_ARG_PADDING
|
||||
#define FUNCTION_ARG_PADDING(MODE, TYPE) \
|
||||
DEFAULT_FUNCTION_ARG_PADDING ((MODE), (TYPE))
|
||||
#endif
|
||||
|
||||
/* Supply a default definition for FUNCTION_ARG_BOUNDARY. Normally, we let
|
||||
FUNCTION_ARG_PADDING, which also pads the length, handle any needed
|
||||
alignment. */
|
||||
|
||||
#ifndef FUNCTION_ARG_BOUNDARY
|
||||
#define FUNCTION_ARG_BOUNDARY(MODE, TYPE) PARM_BOUNDARY
|
||||
#endif
|
||||
|
||||
/* Supply a default definition of STACK_SAVEAREA_MODE for emit_stack_save.
|
||||
Normally move_insn, so Pmode stack pointer. */
|
||||
|
||||
#ifndef STACK_SAVEAREA_MODE
|
||||
#define STACK_SAVEAREA_MODE(LEVEL) Pmode
|
||||
#endif
|
||||
|
||||
/* Supply a default definition of STACK_SIZE_MODE for
|
||||
allocate_dynamic_stack_space. Normally PLUS/MINUS, so word_mode. */
|
||||
|
||||
#ifndef STACK_SIZE_MODE
|
||||
#define STACK_SIZE_MODE word_mode
|
||||
#endif
|
||||
|
||||
/* Provide default values for the macros controlling stack checking. */
|
||||
|
||||
/* The default is neither full builtin stack checking... */
|
||||
#ifndef STACK_CHECK_BUILTIN
|
||||
#define STACK_CHECK_BUILTIN 0
|
||||
#endif
|
||||
|
||||
/* ...nor static builtin stack checking. */
|
||||
#ifndef STACK_CHECK_STATIC_BUILTIN
|
||||
#define STACK_CHECK_STATIC_BUILTIN 0
|
||||
#endif
|
||||
|
||||
/* The default interval is one page (4096 bytes). */
|
||||
#ifndef STACK_CHECK_PROBE_INTERVAL_EXP
|
||||
#define STACK_CHECK_PROBE_INTERVAL_EXP 12
|
||||
#endif
|
||||
|
||||
/* The default is not to move the stack pointer. */
|
||||
#ifndef STACK_CHECK_MOVING_SP
|
||||
#define STACK_CHECK_MOVING_SP 0
|
||||
#endif
|
||||
|
||||
/* This is a kludge to try to capture the discrepancy between the old
|
||||
mechanism (generic stack checking) and the new mechanism (static
|
||||
builtin stack checking). STACK_CHECK_PROTECT needs to be bumped
|
||||
for the latter because part of the protection area is effectively
|
||||
included in STACK_CHECK_MAX_FRAME_SIZE for the former. */
|
||||
#ifdef STACK_CHECK_PROTECT
|
||||
#define STACK_OLD_CHECK_PROTECT STACK_CHECK_PROTECT
|
||||
#else
|
||||
#define STACK_OLD_CHECK_PROTECT \
|
||||
(USING_SJLJ_EXCEPTIONS ? 75 * UNITS_PER_WORD : 8 * 1024)
|
||||
#endif
|
||||
|
||||
/* Minimum amount of stack required to recover from an anticipated stack
|
||||
overflow detection. The default value conveys an estimate of the amount
|
||||
of stack required to propagate an exception. */
|
||||
#ifndef STACK_CHECK_PROTECT
|
||||
#define STACK_CHECK_PROTECT \
|
||||
(USING_SJLJ_EXCEPTIONS ? 75 * UNITS_PER_WORD : 12 * 1024)
|
||||
#endif
|
||||
|
||||
/* Make the maximum frame size be the largest we can and still only need
|
||||
one probe per function. */
|
||||
#ifndef STACK_CHECK_MAX_FRAME_SIZE
|
||||
#define STACK_CHECK_MAX_FRAME_SIZE \
|
||||
((1 << STACK_CHECK_PROBE_INTERVAL_EXP) - UNITS_PER_WORD)
|
||||
#endif
|
||||
|
||||
/* This is arbitrary, but should be large enough everywhere. */
|
||||
#ifndef STACK_CHECK_FIXED_FRAME_SIZE
|
||||
#define STACK_CHECK_FIXED_FRAME_SIZE (4 * UNITS_PER_WORD)
|
||||
#endif
|
||||
|
||||
/* Provide a reasonable default for the maximum size of an object to
|
||||
allocate in the fixed frame. We may need to be able to make this
|
||||
controllable by the user at some point. */
|
||||
#ifndef STACK_CHECK_MAX_VAR_SIZE
|
||||
#define STACK_CHECK_MAX_VAR_SIZE (STACK_CHECK_MAX_FRAME_SIZE / 100)
|
||||
#endif
|
||||
|
||||
/* This structure is used to pass around information about exploded
|
||||
unary, binary and trinary expressions between expand_expr_real_1 and
|
||||
|
|
|
@ -63,6 +63,10 @@ done
|
|||
|
||||
# The first entry in HEADERS may be auto-FOO.h ;
|
||||
# it wants to be included even when not -DIN_GCC.
|
||||
# Postpone including defaults.h until after the insn-*
|
||||
# headers, so that the HAVE_* flags are available
|
||||
# when defaults.h gets included.
|
||||
postpone_defaults_h="no"
|
||||
if [ -n "$HEADERS" ]; then
|
||||
set $HEADERS
|
||||
case "$1" in auto-* )
|
||||
|
@ -73,7 +77,11 @@ if [ -n "$HEADERS" ]; then
|
|||
if [ $# -ge 1 ]; then
|
||||
echo '#ifdef IN_GCC' >> ${output}T
|
||||
for file in "$@"; do
|
||||
echo "# include \"$file\"" >> ${output}T
|
||||
if test x"$file" = x"defaults.h"; then
|
||||
postpone_defaults_h="yes"
|
||||
else
|
||||
echo "# include \"$file\"" >> ${output}T
|
||||
fi
|
||||
done
|
||||
echo '#endif' >> ${output}T
|
||||
fi
|
||||
|
@ -94,6 +102,11 @@ EOF
|
|||
;;
|
||||
esac
|
||||
|
||||
# If we postponed including defaults.h, add the #include now.
|
||||
if test x"$postpone_defaults_h" = x"yes"; then
|
||||
echo "# include \"defaults.h\"" >> ${output}T
|
||||
fi
|
||||
|
||||
# Add multiple inclusion protection guard, part two.
|
||||
echo "#endif /* ${header_guard} */" >> ${output}T
|
||||
|
||||
|
|
Loading…
Reference in New Issue