remove some hard reg ifdefs

This commit is contained in:
YamaArashi
2016-02-15 01:41:55 -08:00
parent 3c265a4653
commit ffa585754d
8 changed files with 7 additions and 746 deletions

View File

@@ -990,11 +990,7 @@ find_reg (allocno, losers, alt_regs_p, accept_call_clobbered, retrying)
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
{
#ifdef REG_ALLOC_ORDER
int regno = reg_alloc_order[i];
#else
int regno = i;
#endif
if (! TEST_HARD_REG_BIT (used, regno)
&& HARD_REGNO_MODE_OK (regno, mode)
&& (allocno_calls_crossed[allocno] == 0
@@ -1012,9 +1008,7 @@ find_reg (allocno, losers, alt_regs_p, accept_call_clobbered, retrying)
best_reg = regno;
break;
}
#ifndef REG_ALLOC_ORDER
i = j; /* Skip starting points we know will lose */
#endif
}
}
}
@@ -1145,11 +1139,7 @@ find_reg (allocno, losers, alt_regs_p, accept_call_clobbered, retrying)
/* Count from the end, to find the least-used ones first. */
for (i = FIRST_PSEUDO_REGISTER - 1; i >= 0; i--)
{
#ifdef REG_ALLOC_ORDER
int regno = reg_alloc_order[i];
#else
int regno = i;
#endif
if (local_reg_n_refs[regno] != 0
/* Don't use a reg no good for this pseudo. */

View File

@@ -24,10 +24,8 @@ Boston, MA 02111-1307, USA. */
/* HARD_REG_ELT_TYPE is a typedef of the unsigned integral type which
will be used for hard reg sets, either alone or in an array.
If HARD_REG_SET is a macro, its definition is HARD_REG_ELT_TYPE,
and it has enough bits to represent all the target machine's hard
registers. Otherwise, it is a typedef for a suitably sized array
of HARD_REG_ELT_TYPEs. HARD_REG_SET_LONGS is defined as how many.
HARD_REG_SET is a macro. Its definition is HARD_REG_ELT_TYPE,
and it has enough bits to represent all the THUMB hard registers.
Note that lots of code assumes that the first part of a regset is
the same format as a HARD_REG_SET. To help make sure this is true,
@@ -38,19 +36,8 @@ Boston, MA 02111-1307, USA. */
typedef unsigned HOST_WIDE_INT HARD_REG_ELT_TYPE;
#if FIRST_PSEUDO_REGISTER <= HOST_BITS_PER_WIDE_INT
#define HARD_REG_SET HARD_REG_ELT_TYPE
#else
#define HARD_REG_SET_LONGS \
((FIRST_PSEUDO_REGISTER + HOST_BITS_PER_WIDE_INT - 1) \
/ HOST_BITS_PER_WIDE_INT)
typedef HARD_REG_ELT_TYPE HARD_REG_SET[HARD_REG_SET_LONGS];
#endif
/* HARD_CONST is used to cast a constant to the appropriate type
for use with a HARD_REG_SET. */
@@ -83,8 +70,6 @@ typedef HARD_REG_ELT_TYPE HARD_REG_SET[HARD_REG_SET_LONGS];
if X is a subset of Y, go to TO.
*/
#ifdef HARD_REG_SET
#define SET_HARD_REG_BIT(SET, BIT) \
((SET) |= HARD_CONST (1) << (BIT))
#define CLEAR_HARD_REG_BIT(SET, BIT) \
@@ -107,282 +92,6 @@ typedef HARD_REG_ELT_TYPE HARD_REG_SET[HARD_REG_SET_LONGS];
#define GO_IF_HARD_REG_EQUAL(X,Y,TO) if ((X) == (Y)) goto TO
#else
#define UHOST_BITS_PER_WIDE_INT ((unsigned) HOST_BITS_PER_WIDE_INT)
#define SET_HARD_REG_BIT(SET, BIT) \
((SET)[(BIT) / UHOST_BITS_PER_WIDE_INT] \
|= HARD_CONST (1) << ((BIT) % UHOST_BITS_PER_WIDE_INT))
#define CLEAR_HARD_REG_BIT(SET, BIT) \
((SET)[(BIT) / UHOST_BITS_PER_WIDE_INT] \
&= ~(HARD_CONST (1) << ((BIT) % UHOST_BITS_PER_WIDE_INT)))
#define TEST_HARD_REG_BIT(SET, BIT) \
((SET)[(BIT) / UHOST_BITS_PER_WIDE_INT] \
& (HARD_CONST (1) << ((BIT) % UHOST_BITS_PER_WIDE_INT)))
#if FIRST_PSEUDO_REGISTER <= 2*HOST_BITS_PER_WIDE_INT
#define CLEAR_HARD_REG_SET(TO) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO); \
scan_tp_[0] = 0; \
scan_tp_[1] = 0; } while (0)
#define SET_HARD_REG_SET(TO) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO); \
scan_tp_[0] = -1; \
scan_tp_[1] = -1; } while (0)
#define COPY_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] = scan_fp_[0]; \
scan_tp_[1] = scan_fp_[1]; } while (0)
#define COMPL_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] = ~ scan_fp_[0]; \
scan_tp_[1] = ~ scan_fp_[1]; } while (0)
#define AND_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] &= scan_fp_[0]; \
scan_tp_[1] &= scan_fp_[1]; } while (0)
#define AND_COMPL_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] &= ~ scan_fp_[0]; \
scan_tp_[1] &= ~ scan_fp_[1]; } while (0)
#define IOR_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] |= scan_fp_[0]; \
scan_tp_[1] |= scan_fp_[1]; } while (0)
#define IOR_COMPL_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] |= ~ scan_fp_[0]; \
scan_tp_[1] |= ~ scan_fp_[1]; } while (0)
#define GO_IF_HARD_REG_SUBSET(X,Y,TO) \
do { register HARD_REG_ELT_TYPE *scan_xp_ = (X), *scan_yp_ = (Y); \
if ((0 == (scan_xp_[0] & ~ scan_yp_[0])) \
&& (0 == (scan_xp_[1] & ~ scan_yp_[1]))) \
goto TO; } while (0)
#define GO_IF_HARD_REG_EQUAL(X,Y,TO) \
do { register HARD_REG_ELT_TYPE *scan_xp_ = (X), *scan_yp_ = (Y); \
if ((scan_xp_[0] == scan_yp_[0]) \
&& (scan_xp_[1] == scan_yp_[1])) \
goto TO; } while (0)
#else
#if FIRST_PSEUDO_REGISTER <= 3*HOST_BITS_PER_WIDE_INT
#define CLEAR_HARD_REG_SET(TO) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO); \
scan_tp_[0] = 0; \
scan_tp_[1] = 0; \
scan_tp_[2] = 0; } while (0)
#define SET_HARD_REG_SET(TO) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO); \
scan_tp_[0] = -1; \
scan_tp_[1] = -1; \
scan_tp_[2] = -1; } while (0)
#define COPY_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] = scan_fp_[0]; \
scan_tp_[1] = scan_fp_[1]; \
scan_tp_[2] = scan_fp_[2]; } while (0)
#define COMPL_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] = ~ scan_fp_[0]; \
scan_tp_[1] = ~ scan_fp_[1]; \
scan_tp_[2] = ~ scan_fp_[2]; } while (0)
#define AND_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] &= scan_fp_[0]; \
scan_tp_[1] &= scan_fp_[1]; \
scan_tp_[2] &= scan_fp_[2]; } while (0)
#define AND_COMPL_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] &= ~ scan_fp_[0]; \
scan_tp_[1] &= ~ scan_fp_[1]; \
scan_tp_[2] &= ~ scan_fp_[2]; } while (0)
#define IOR_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] |= scan_fp_[0]; \
scan_tp_[1] |= scan_fp_[1]; \
scan_tp_[2] |= scan_fp_[2]; } while (0)
#define IOR_COMPL_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] |= ~ scan_fp_[0]; \
scan_tp_[1] |= ~ scan_fp_[1]; \
scan_tp_[2] |= ~ scan_fp_[2]; } while (0)
#define GO_IF_HARD_REG_SUBSET(X,Y,TO) \
do { register HARD_REG_ELT_TYPE *scan_xp_ = (X), *scan_yp_ = (Y); \
if ((0 == (scan_xp_[0] & ~ scan_yp_[0])) \
&& (0 == (scan_xp_[1] & ~ scan_yp_[1])) \
&& (0 == (scan_xp_[2] & ~ scan_yp_[2]))) \
goto TO; } while (0)
#define GO_IF_HARD_REG_EQUAL(X,Y,TO) \
do { register HARD_REG_ELT_TYPE *scan_xp_ = (X), *scan_yp_ = (Y); \
if ((scan_xp_[0] == scan_yp_[0]) \
&& (scan_xp_[1] == scan_yp_[1]) \
&& (scan_xp_[2] == scan_yp_[2])) \
goto TO; } while (0)
#else
#if FIRST_PSEUDO_REGISTER <= 4*HOST_BITS_PER_WIDE_INT
#define CLEAR_HARD_REG_SET(TO) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO); \
scan_tp_[0] = 0; \
scan_tp_[1] = 0; \
scan_tp_[2] = 0; \
scan_tp_[3] = 0; } while (0)
#define SET_HARD_REG_SET(TO) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO); \
scan_tp_[0] = -1; \
scan_tp_[1] = -1; \
scan_tp_[2] = -1; \
scan_tp_[3] = -1; } while (0)
#define COPY_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] = scan_fp_[0]; \
scan_tp_[1] = scan_fp_[1]; \
scan_tp_[2] = scan_fp_[2]; \
scan_tp_[3] = scan_fp_[3]; } while (0)
#define COMPL_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] = ~ scan_fp_[0]; \
scan_tp_[1] = ~ scan_fp_[1]; \
scan_tp_[2] = ~ scan_fp_[2]; \
scan_tp_[3] = ~ scan_fp_[3]; } while (0)
#define AND_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] &= scan_fp_[0]; \
scan_tp_[1] &= scan_fp_[1]; \
scan_tp_[2] &= scan_fp_[2]; \
scan_tp_[3] &= scan_fp_[3]; } while (0)
#define AND_COMPL_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] &= ~ scan_fp_[0]; \
scan_tp_[1] &= ~ scan_fp_[1]; \
scan_tp_[2] &= ~ scan_fp_[2]; \
scan_tp_[3] &= ~ scan_fp_[3]; } while (0)
#define IOR_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] |= scan_fp_[0]; \
scan_tp_[1] |= scan_fp_[1]; \
scan_tp_[2] |= scan_fp_[2]; \
scan_tp_[3] |= scan_fp_[3]; } while (0)
#define IOR_COMPL_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
scan_tp_[0] |= ~ scan_fp_[0]; \
scan_tp_[1] |= ~ scan_fp_[1]; \
scan_tp_[2] |= ~ scan_fp_[2]; \
scan_tp_[3] |= ~ scan_fp_[3]; } while (0)
#define GO_IF_HARD_REG_SUBSET(X,Y,TO) \
do { register HARD_REG_ELT_TYPE *scan_xp_ = (X), *scan_yp_ = (Y); \
if ((0 == (scan_xp_[0] & ~ scan_yp_[0])) \
&& (0 == (scan_xp_[1] & ~ scan_yp_[1])) \
&& (0 == (scan_xp_[2] & ~ scan_yp_[2])) \
&& (0 == (scan_xp_[3] & ~ scan_yp_[3]))) \
goto TO; } while (0)
#define GO_IF_HARD_REG_EQUAL(X,Y,TO) \
do { register HARD_REG_ELT_TYPE *scan_xp_ = (X), *scan_yp_ = (Y); \
if ((scan_xp_[0] == scan_yp_[0]) \
&& (scan_xp_[1] == scan_yp_[1]) \
&& (scan_xp_[2] == scan_yp_[2]) \
&& (scan_xp_[3] == scan_yp_[3])) \
goto TO; } while (0)
#else /* FIRST_PSEUDO_REGISTER > 3*HOST_BITS_PER_WIDE_INT */
#define CLEAR_HARD_REG_SET(TO) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO); \
register int i; \
for (i = 0; i < HARD_REG_SET_LONGS; i++) \
*scan_tp_++ = 0; } while (0)
#define SET_HARD_REG_SET(TO) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO); \
register int i; \
for (i = 0; i < HARD_REG_SET_LONGS; i++) \
*scan_tp_++ = -1; } while (0)
#define COPY_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
register int i; \
for (i = 0; i < HARD_REG_SET_LONGS; i++) \
*scan_tp_++ = *scan_fp_++; } while (0)
#define COMPL_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
register int i; \
for (i = 0; i < HARD_REG_SET_LONGS; i++) \
*scan_tp_++ = ~ *scan_fp_++; } while (0)
#define AND_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
register int i; \
for (i = 0; i < HARD_REG_SET_LONGS; i++) \
*scan_tp_++ &= *scan_fp_++; } while (0)
#define AND_COMPL_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
register int i; \
for (i = 0; i < HARD_REG_SET_LONGS; i++) \
*scan_tp_++ &= ~ *scan_fp_++; } while (0)
#define IOR_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
register int i; \
for (i = 0; i < HARD_REG_SET_LONGS; i++) \
*scan_tp_++ |= *scan_fp_++; } while (0)
#define IOR_COMPL_HARD_REG_SET(TO, FROM) \
do { register HARD_REG_ELT_TYPE *scan_tp_ = (TO), *scan_fp_ = (FROM); \
register int i; \
for (i = 0; i < HARD_REG_SET_LONGS; i++) \
*scan_tp_++ |= ~ *scan_fp_++; } while (0)
#define GO_IF_HARD_REG_SUBSET(X,Y,TO) \
do { register HARD_REG_ELT_TYPE *scan_xp_ = (X), *scan_yp_ = (Y); \
register int i; \
for (i = 0; i < HARD_REG_SET_LONGS; i++) \
if (0 != (*scan_xp_++ & ~ *scan_yp_++)) break; \
if (i == HARD_REG_SET_LONGS) goto TO; } while (0)
#define GO_IF_HARD_REG_EQUAL(X,Y,TO) \
do { register HARD_REG_ELT_TYPE *scan_xp_ = (X), *scan_yp_ = (Y); \
register int i; \
for (i = 0; i < HARD_REG_SET_LONGS; i++) \
if (*scan_xp_++ != *scan_yp_++) break; \
if (i == HARD_REG_SET_LONGS) goto TO; } while (0)
#endif
#endif
#endif
#endif
/* Define some standard sets of registers. */
/* Indexed by hard register number, contains 1 for registers
@@ -429,21 +138,6 @@ extern HARD_REG_SET call_fixed_reg_set;
extern char global_regs[FIRST_PSEUDO_REGISTER];
/* Table of register numbers in the order in which to try to use them. */
#ifdef REG_ALLOC_ORDER /* Avoid undef symbol in certain broken linkers. */
extern int reg_alloc_order[FIRST_PSEUDO_REGISTER];
#endif
/* CYGNUS LOCAL z8k */
/* Table of register numbers in the order in which to try to use them
for reloads. */
/* ??? Hack, see reload1.c. */
#ifdef RELOAD_ALLOC_ORDER
extern int reload_alloc_order[FIRST_PSEUDO_REGISTER];
#endif
/* END CYGNUS LOCAL */
/* For each reg class, a HARD_REG_SET saying which registers are in it. */
extern HARD_REG_SET reg_class_contents[];

View File

@@ -1955,11 +1955,7 @@ find_free_reg (class, mode, qty, accept_call_clobbered, just_try_suggested,
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
{
#ifdef REG_ALLOC_ORDER
int regno = reg_alloc_order[i];
#else
int regno = i;
#endif
if (! TEST_HARD_REG_BIT (first_used, regno)
&& HARD_REGNO_MODE_OK (regno, mode)
&& (qty_n_calls_crossed[qty] == 0
@@ -1976,9 +1972,7 @@ find_free_reg (class, mode, qty, accept_call_clobbered, just_try_suggested,
post_mark_life (regno, mode, 1, born_index, dead_index);
return regno;
}
#ifndef REG_ALLOC_ORDER
i += j; /* Skip starting points we know will lose */
#endif
}
}

View File

@@ -111,20 +111,6 @@ int n_non_fixed_regs;
and are also considered fixed. */
char global_regs[FIRST_PSEUDO_REGISTER];
/* Table of register numbers in the order in which to try to use them. */
#ifdef REG_ALLOC_ORDER
int reg_alloc_order[FIRST_PSEUDO_REGISTER] = REG_ALLOC_ORDER;
#endif
/* CYGNUS LOCAL z8k */
/* Table of register numbers in the order in which to try to use them
for reloads. */
/* ??? Hack, see reload1.c. */
#ifdef RELOAD_ALLOC_ORDER
int reload_alloc_order[FIRST_PSEUDO_REGISTER] = RELOAD_ALLOC_ORDER;
#endif
/* END CYGNUS LOCAL */
/* For each reg class, a HARD_REG_SET saying which registers are in it. */
@@ -257,13 +243,6 @@ init_reg_sets_1 ()
{
register unsigned int i, j;
/* This macro allows the fixed or call-used registers
and the register classes to depend on target flags. */
#ifdef CONDITIONAL_REGISTER_USAGE
CONDITIONAL_REGISTER_USAGE;
#endif
/* Compute number of hard regs in each class. */
zero_memory ((char *) reg_class_size, sizeof reg_class_size);
@@ -280,11 +259,8 @@ init_reg_sets_1 ()
{
for (j = 0; j < N_REG_CLASSES; j++)
{
#ifdef HARD_REG_SET
register /* Declare it register if it's a scalar. */
#endif
HARD_REG_SET c;
register int k;
HARD_REG_SET c;
int k;
COPY_HARD_REG_SET (c, reg_class_contents[i]);
IOR_HARD_REG_SET (c, reg_class_contents[j]);
@@ -314,11 +290,8 @@ init_reg_sets_1 ()
{
for (j = 0; j < N_REG_CLASSES; j++)
{
#ifdef HARD_REG_SET
register /* Declare it register if it's a scalar. */
#endif
HARD_REG_SET c;
register int k;
HARD_REG_SET c;
int k;
COPY_HARD_REG_SET (c, reg_class_contents[i]);
IOR_HARD_REG_SET (c, reg_class_contents[j]);
@@ -2184,9 +2157,6 @@ reg_classes_intersect_p (c1, c2)
register enum reg_class c1;
register enum reg_class c2;
{
#ifdef HARD_REG_SET
register
#endif
HARD_REG_SET c;
if (c1 == c2) return 1;

View File

@@ -4001,39 +4001,8 @@ order_regs_for_reload (chain)
FREE_REG_SET (pseudos_counted);
/* Prefer registers not so far used, for use in temporary loading.
Among them, if REG_ALLOC_ORDER is defined, use that order.
Otherwise, prefer registers not preserved by calls. */
Prefer registers not preserved by calls. */
/* CYGNUS LOCAL z8k */
#ifdef RELOAD_ALLOC_ORDER
/* ??? This is a hack. This will give poor code, but is used for the
z8k because it is currently the only way to ensure that we will be
able to satisfy all of the reloads. Possible other solutions:
- make reload keep track of how many groups of each size are needed,
instead of just remembering the maximum group size
- improve code for making group 4 reloads
-- try looking for combinations of single register spills and potential
reload regs (sample uncompleted code exists for this)
-- try expanding an existing group 2 reload to a group 4 reload
-- unallocate a group 2 reload, try to allocate the group 4 reload,
then reallocate the group 2 reload, if one step fails then all do
- add code to deal with overlapping register groups(?). */
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
potential_reload_regs[i] = reload_alloc_order[i];
#else
/* END CYGNUS LOCAL */
#ifdef REG_ALLOC_ORDER
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
{
int regno = reg_alloc_order[i];
if (hard_reg_n_uses[regno].uses == 0
&& ! TEST_HARD_REG_BIT (bad_spill_regs, regno))
potential_reload_regs[o++] = regno;
}
#else
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
{
if (hard_reg_n_uses[i].uses == 0 && call_used_regs[i]
@@ -4046,7 +4015,6 @@ order_regs_for_reload (chain)
&& ! TEST_HARD_REG_BIT (bad_spill_regs, i))
potential_reload_regs[o++] = i;
}
#endif
qsort (hard_reg_n_uses, FIRST_PSEUDO_REGISTER,
sizeof hard_reg_n_uses[0], hard_reg_use_compare);
@@ -4062,9 +4030,6 @@ order_regs_for_reload (chain)
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
if (TEST_HARD_REG_BIT (bad_spill_regs, hard_reg_n_uses[i].regno))
potential_reload_regs[o++] = hard_reg_n_uses[i].regno;
/* CYGNUS LOCAL z8k */
#endif
/* END CYGNUS LOCAL */
}
/* Reload pseudo-registers into hard regs around each insn as needed.
@@ -5308,19 +5273,9 @@ allocate_reload_reg (chain, r, last_reload, noerror)
allocating the first one in such a way that we are not left with
sufficient groups to handle the rest. */
/* CYGNUS LOCAL z8k */
#ifndef RELOAD_ALLOC_ORDER
/* If RELOAD_ALLOC_ORDER is defined, then we must always take spill
registers in that defined order, so this round-robin must be
disabled. */
/* END CYGNUS LOCAL */
if (noerror || ! force_group)
i = last_spill_reg;
else
/* CYGNUS LOCAL z8k */
#endif
/* END CYGNUS LOCAL */
i = -1;
for (count = 0; count < n_spills; count++)

View File

@@ -542,11 +542,7 @@ stupid_find_reg (call_preserved, class, mode,
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
{
#ifdef REG_ALLOC_ORDER
int regno = reg_alloc_order[i];
#else
int regno = i;
#endif
/* If a register has screwy overlap problems,
don't use it at all if not optimizing.
@@ -574,9 +570,7 @@ stupid_find_reg (call_preserved, class, mode,
}
return regno;
}
#ifndef REG_ALLOC_ORDER
i += j; /* Skip starting points we know will lose */
#endif
}
}

View File

@@ -1,240 +0,0 @@
enum clnt_stat { ___fake1 };
enum auth_stat { ___fake2 };
struct netconfig;
struct netbuf;
struct address;
struct tm;
struct ldfile;
struct syment;
struct stat;
struct timeval;
struct termios;
struct tms;
struct dma_cb;
struct cred;
struct vnode;
struct vattr;
struct uarg;
struct statfs;
struct statvfs;
struct dirent;
struct itimerval;
struct mnttab;
struct strbuf;
struct vfstab;
struct ldfile;
struct syment;
struct scnhdr;
struct exception;
struct nd_hostservlist;
struct nd_hostserv;
struct utsname;
struct uio;
struct pid;
struct pollfd;
struct nlist;
struct passwd;
struct spwd;
struct flock;
struct seg;
struct sembuf;
struct sigaction;
struct utimbuf;
struct map;
struct filehdr;
struct lineno;
struct nd_addrlist;
struct FTW;
struct buf;
struct ustat;
struct qelem;
struct prpsinfo;
struct user;
struct qelem;
struct execenv;
struct utmpx;
struct direct;
struct tm;
struct stat;
struct rlimit;
struct rusage;
struct sockaddr;
struct sockaddr_in;
struct timeval { int i; };
struct exportent;
struct fstab;
struct hostent;
struct in_addr { int i; };
struct ldfile;
struct mallinfo { int i; };
struct mint;
struct nmtent;
struct netent;
struct pmaplist;
struct protoent;
struct rpcent;
struct servent;
struct authdes_cred;
struct rpc_err;
struct ypall_callback;
union wait;
/* Get size_t and wchar_t. */
#include <stddef.h>
/* #include "sys/types.h" */
#define ssize_t int
/* The actual types used here are mostly wrong,
but it is not supposed to matter what types we use here. */
typedef int dev_t;
typedef int pid_t;
typedef int gid_t;
typedef int off_t;
typedef int mode_t;
typedef int uid_t;
typedef int proc_t;
typedef int time_t;
typedef int addr_t;
typedef int caddr_t;
typedef int clock_t;
typedef int div_t;
typedef int ldiv_t;
typedef int dl_t;
typedef int major_t;
typedef int minor_t;
typedef int emcp_t;
typedef int fpclass_t;
typedef int index_t;
typedef int ecb_t;
typedef int aioop_t;
typedef int evver_t;
typedef int evcntlcmds_t;
typedef int idtype_t;
typedef int id_t;
typedef int procset_t;
typedef int hostid_t;
typedef int evpollcmds_t;
typedef int event_t;
typedef int hrtime_t;
typedef int evqcntlcmds_t;
typedef int sigset_t;
typedef int evsiginfo_t;
typedef int evcontext_t;
typedef int evta_t;
typedef int speed_t;
typedef int rlim_t;
typedef int cred_t;
typedef int file_t;
typedef int vnode_t;
typedef int vfs_t;
typedef int fpos_t;
typedef int exhda_t;
typedef int ucontext_t;
typedef int sess_t;
typedef int hrtcmd_t;
typedef int interval_t;
typedef int key_t;
typedef int daddr_t;
typedef int stack_t;
typedef int sigaction_t;
typedef int siginfo_t;
typedef int mblk_t;
typedef int paddr_t;
typedef int qband_t;
typedef int queue_t;
typedef int rf_resource_t;
typedef int sr_mount_t;
typedef int timer_t;
typedef int fpregset_t;
typedef int prstatus_t;
typedef int vfssw_t;
typedef int eucwidth_t;
typedef int page_t;
typedef int u_int;
typedef int u_short;
typedef int u_long;
typedef int u_char;
typedef int ushort;
typedef int ulong;
typedef int uint;
typedef int __gnuc_va_list;
typedef int archdr;
typedef int AUTH;
typedef int CLIENT;
typedef int DIR;
typedef int ENTRY;
typedef int Elf;
typedef int Elf32_Ehdr;
typedef int Elf32_Phdr;
typedef int Elf32_Shdr;
typedef int Elf_Arhdr;
typedef int Elf_Arsym;
typedef int Elf_Cmd;
typedef int Elf_Data;
typedef int Elf_Scn;
typedef int Elf_Type;
typedef int Elf_Kind;
typedef int FIELD;
typedef int FIELDTYPE;
typedef int PTF_int;
typedef int PTF_void;
typedef int PTF_charP;
typedef int FILE;
typedef int FORM;
typedef int ITEM;
typedef int MENU;
typedef int OPTIONS;
typedef int PANEL;
typedef int FTP_void;
typedef int RPCBLIST;
typedef int SCREEN;
typedef int SVCXPRT;
typedef int TERMINAL;
typedef int WINDOW;
typedef int bool;
typedef int nl_catd;
typedef int nl_item;
typedef int chtype;
typedef int datum;
typedef int fp_rnd;
typedef int spraycumul;
typedef int WORD;
typedef int VISIT;
typedef int ACTION;
typedef int *jmp_buf;
typedef int *sigjmp_buf;
typedef int xdrproc_t;
typedef int CALL;
typedef int bool_t;
typedef int DBM;
typedef int des_block;
typedef int resultproc_t;
#ifdef BSD
#define mode_t int
#define uid_t int
#define gid_t int
#define time_t long
#define pid_t int
#define signal_ret_t int
#define wait_arg_t union wait
#else
#define signal_ret_t void
#define wait_arg_t int
#endif

View File

@@ -1,96 +0,0 @@
#line 59 "config/arc/arc.h"
_("may not use both -EB and -EL")
#line 176 "config/arm/arm.h"
_("-mapcs-26 and -mapcs-32 may not be used together")
#line 187 "config/arm/arm.h"
_("-msoft-float and -mhard_float may not be used together")
#line 198 "config/arm/arm.h"
_("-mbig-endian and -mlittle-endian may not be used together")
#line 72 "config/arm/riscix.h"
_("-mbsd and -pedantic incompatible")
#line 73 "config/arm/riscix.h"
_("-mbsd and -mxopen incompatible")
#line 74 "config/arm/riscix.h"
_("-mxopen and -pedantic incompatible")
#line 133 "config/arm/riscix.h"
_("-mbsd and -pedantic incompatible")
#line 134 "config/arm/riscix.h"
_("-mbsd and -mxopen incompatible")
#line 135 "config/arm/riscix.h"
_("-mxopen and -pedantic incompatible")
#line 126 "config/dsp16xx/dsp16xx.h"
_("A -ifile option requires a -map option")
#line 135 "config/dsp16xx/dsp16xx.h"
_("A -ifile option requires a -map option")
#line 809 "config/i386/sco5.h"
_("-static not valid with -mcoff")
#line 810 "config/i386/sco5.h"
_("-shared not valid with -mcoff")
#line 811 "config/i386/sco5.h"
_("-symbolic not valid with -mcoff")
#line 847 "config/i386/sco5.h"
_("-fpic is not valid with -mcoff")
#line 848 "config/i386/sco5.h"
_("-fPIC is not valid with -mcoff")
#line 882 "config/i386/sco5.h"
_("-static not valid with -mcoff")
#line 883 "config/i386/sco5.h"
_("-shared not valid with -mcoff")
#line 884 "config/i386/sco5.h"
_("-symbolic not valid with -mcoff")
#line 885 "config/i386/sco5.h"
_("-fpic not valid with -mcoff")
#line 886 "config/i386/sco5.h"
_("-fPIC not valid with -mcoff")
#line 305 "config/i860/fx2800.h"
_("-p option not supported: use -pg instead")
#line 674 "config/mips/mips.h"
_("-pipe is not supported.")
#line 811 "config/mips/mips.h"
_("may not use both -mfp64 and -msingle-float")
#line 812 "config/mips/mips.h"
_("may not use both -mfp64 and -m4650")
#line 815 "config/mips/mips.h"
_("may not use both -EB and -EL")
#line 27 "config/mips/r3900.h"
_("-mhard-float not supported.")
#line 29 "config/mips/r3900.h"
_("-msingle-float and -msoft-float can not both be specified.")
#line 41 "config/mips/r3900.h"
_("-mhard-float not supported.")
#line 43 "config/mips/r3900.h"
_("-msingle-float and -msoft-float can not both be specified.")
#line 166 "config/nextstep.h"
_("-p profiling is no longer supported. Use -pg instead.")
#line 169 "config/nextstep.h"
_("-p profiling is no longer supported. Use -pg instead.")
#line 36 "config/vax/vax.h"
_("profiling not supported with -mg\n")
#line 37 "config/vax/vax.h"
_("profiling not supported with -mg\n")
#line 32 "cp/lang-specs.h"
_("GNU C++ does not support -C without using -E")
#line 45 "cp/lang-specs.h"
_("-pg and -fomit-frame-pointer are incompatible")
#line 56 "cp/lang-specs.h"
_("-pg and -fomit-frame-pointer are incompatible")
#line 603 "gcc.c"
_("GNU C does not support -C without using -E")
#line 617 "gcc.c"
_("-pg and -fomit-frame-pointer are incompatible")
#line 624 "gcc.c"
_("GNU C does not support -C without using -E")
#line 633 "gcc.c"
_("-E required when input is from standard input")
#line 637 "gcc.c"
_("GNU C does not support -C without using -E")
#line 652 "gcc.c"
_("-pg and -fomit-frame-pointer are incompatible")
#line 659 "gcc.c"
_("Compilation of header file requested")
#line 661 "gcc.c"
_("GNU C does not support -C without using -E")
#line 676 "gcc.c"
_("-pg and -fomit-frame-pointer are incompatible")
#line 689 "gcc.c"
_("GNU C does not support -C without using -E")