/* Sets (bit vectors) of hard registers, and operations on them.
- Copyright (C) 1987, 1992, 1994, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1992, 1994, 2000, 2003 Free Software Foundation, Inc.
This file is part of GCC
extern char call_used_regs[FIRST_PSEUDO_REGISTER];
+#ifdef CALL_REALLY_USED_REGISTERS
+extern char call_really_used_regs[];
+#endif
+
/* The same info as a HARD_REG_SET. */
extern HARD_REG_SET call_used_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 STRUCT_VALUE_REGNUM or STATIC_CHAIN_REGNUM. These are the
+ 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 const char * reg_names[FIRST_PSEUDO_REGISTER];
+/* Given a hard REGN a FROM mode and a TO mode, return nonzero if
+ REGN cannot change modes between the specified modes. */
+#define REG_CANNOT_CHANGE_MODE_P(REGN, FROM, TO) \
+ CANNOT_CHANGE_MODE_CLASS (FROM, TO, REGNO_REG_CLASS (REGN))
+
#endif /* ! GCC_HARD_REG_SET_H */