/* Sets (bit vectors) of hard registers, and operations on them.
- Copyright (C) 1987, 1992, 1994, 2000, 2003, 2004, 2005, 2007
+ Copyright (C) 1987, 1992, 1994, 2000, 2003, 2004, 2005, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of GCC
<http://www.gnu.org/licenses/>. */
#ifndef GCC_HARD_REG_SET_H
-#define GCC_HARD_REG_SET_H
+#define GCC_HARD_REG_SET_H
/* Define the type of a set of hard registers. */
#define HARD_REG_ELT_BITS UHOST_BITS_PER_WIDE_INT
-/* The implementation of the iterator functions is fully analogous to
+/* The implementation of the iterator functions is fully analogous to
the bitmap iterators. */
static inline void
-hard_reg_set_iter_init (hard_reg_set_iterator *iter, HARD_REG_SET set,
+hard_reg_set_iter_init (hard_reg_set_iterator *iter, HARD_REG_SET set,
unsigned min, unsigned *regno)
{
#ifdef HARD_REG_SET_LONGS
*regno = min;
}
-static inline bool
+static inline bool
hard_reg_set_iter_set (hard_reg_set_iterator *iter, unsigned *regno)
{
while (1)
}
return (*regno < FIRST_PSEUDO_REGISTER);
}
-
+
/* Round to the beginning of the next word. */
*regno = (*regno + HARD_REG_ELT_BITS - 1);
*regno -= *regno % HARD_REG_ELT_BITS;
/* The same info as a HARD_REG_SET. */
extern HARD_REG_SET call_used_reg_set;
-
-/* Registers that we don't want to caller save. */
-extern HARD_REG_SET losing_caller_save_reg_set;
-
-/* Indexed by hard register number, contains 1 for registers that are
- fixed use -- i.e. in fixed_regs -- or a function value return register
- or TARGET_STRUCT_VALUE_RTX or STATIC_CHAIN_REGNUM. These are the
- registers that cannot hold quantities across calls even if we are
- willing to save and restore them. */
-extern char call_fixed_regs[FIRST_PSEUDO_REGISTER];
-
-/* The same info as a HARD_REG_SET. */
+/* Contains registers that are fixed use -- i.e. in fixed_reg_set -- or
+ a function value return register or TARGET_STRUCT_VALUE_RTX or
+ STATIC_CHAIN_REGNUM. These are the registers that cannot hold quantities
+ across calls even if we are willing to save and restore them. */
extern HARD_REG_SET call_fixed_reg_set;