diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-07-12 18:54:17 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-07-12 18:54:17 +0000 |
commit | c3997e3d46be5d16e7ae76140e666d853bb537c9 (patch) | |
tree | 5eb3ab86331c6edc711e274c6b449087603a4829 /gcc/reload.h | |
parent | 6ebe4c6978847bb027afb24b03e91aa4a850056e (diff) | |
download | gcc-c3997e3d46be5d16e7ae76140e666d853bb537c9.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162095 138bc75d-0d04-0410-961f-82ee72b054a4
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 48b8dfd0386..16d52d95a5c 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. */ |