diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2010-07-12 18:54:17 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2010-07-12 18:54:17 +0000 |
commit | bcbaaba1a33590a2795a9e49228943466e360315 (patch) | |
tree | 5eb3ab86331c6edc711e274c6b449087603a4829 /gcc/reload.h | |
parent | 462f85cedc8375e893fd1179f5ecab498085c78d (diff) | |
download | gcc-bcbaaba1a33590a2795a9e49228943466e360315.zip gcc-bcbaaba1a33590a2795a9e49228943466e360315.tar.gz gcc-bcbaaba1a33590a2795a9e49228943466e360315.tar.bz2 |
defaults.h (MAX_MOVE_MAX, [...]): Define if not defined.
gcc/
* defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
* libgcc2.c (MIN_UNITS_PER_WORD): Delete.
* hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
(no_caller_save_reg_set): Redefine as a macro.
* reload.h (target_reload): Add x_caller_save_initialized_p and
x_regno_save_mode.
(caller_save_initialized_p): Redefine as a macro.
* caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
(MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
(regno_save_mode): Redefine as a macro.
From-SVN: r162095
Diffstat (limited to 'gcc/reload.h')
-rw-r--r-- | gcc/reload.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/gcc/reload.h b/gcc/reload.h index 48b8dfd..16d52d9 100644 --- a/gcc/reload.h +++ b/gcc/reload.h @@ -171,6 +171,17 @@ struct target_reload { means that (MEM (MEM (REG n))) is also valid if (REG n) does not get a hard register. */ bool x_spill_indirect_levels; + + /* True if caller-save has been reinitialized. */ + bool x_caller_save_initialized_p; + + /* Modes for each hard register that we can save. The smallest mode is wide + enough to save the entire contents of the register. When saving the + register because it is live we first try to save in multi-register modes. + If that is not possible the save is done one register at a time. */ + enum machine_mode (x_regno_save_mode + [FIRST_PSEUDO_REGISTER] + [MAX_MOVE_MAX / MIN_UNITS_PER_WORD + 1]); }; extern struct target_reload default_target_reload; @@ -184,6 +195,8 @@ extern struct target_reload *this_target_reload; (this_target_reload->x_indirect_symref_ok) #define double_reg_address_ok \ (this_target_reload->x_double_reg_address_ok) +#define caller_save_initialized_p \ + (this_target_reload->x_caller_save_initialized_p) extern GTY (()) VEC(rtx,gc) *reg_equiv_memory_loc_vec; extern rtx *reg_equiv_constant; @@ -377,9 +390,6 @@ extern void calculate_elim_costs_all_insns (void); /* Deallocate the reload register used by reload number R. */ extern void deallocate_reload_reg (int r); -/* True if caller-save has been reinitialized. */ -extern bool caller_save_initialized_p; - /* Functions in caller-save.c: */ /* Initialize for caller-save. */ |