diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-07-12 18:53:25 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-07-12 18:53:25 +0000 |
commit | 6d0eb0c4660dc7c6454be5b04f24de84dab27342 (patch) | |
tree | ede7c51733a098412f5ed16fc7ef5a103c40df67 /gcc/target-globals.c | |
parent | 679bcc8d703e71303adf2e956a1496a00cecf854 (diff) | |
download | gcc-6d0eb0c4660dc7c6454be5b04f24de84dab27342.tar.gz |
gcc/
* hard-reg-set.h (target_hard_regs): New structure.
(default_target_hard_regs): Declare.
(this_target_hard_regs): Declare as a variable or define as a macro.
(fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
(call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
(reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
(reg_class_size, reg_class_subclasses, reg_class_subunion)
(reg_class_superunion, reg_names): Redefine as macros.
* reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
(call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
(regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
(reg_class_contents, reg_class_size, reg_class_subclasses)
(reg_class_subunion, reg_class_superunion, reg_names): Delete.
(default_target_hard_regs): New variable
(this_target_hard_regs, initial_call_really_used_regs)
(initial_reg_alloc_order): New conditional variables.
(initial_reg_names): New variable.
(init_reg_sets): Assert that initial_call_really_used_regs,
initial_reg_alloc_order and initial_reg_names
are all the same size as their variable counterparts. Use them to
initialize those counterparts.
* target-globals.h (this_target_hard_regs): Declare.
(target_globals): Add a hard_regs field.
(restore_target_globals): Copy the hard_regs field to
this_target_hard_regs.
* target-globals.c: Include hard-reg-set.h.
(default_target_globals): Initialize the hard_regs field.
(save_target_globals): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162089 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/target-globals.c')
-rw-r--r-- | gcc/target-globals.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/target-globals.c b/gcc/target-globals.c index 26b2fa390f2..b6906ce0cd5 100644 --- a/gcc/target-globals.c +++ b/gcc/target-globals.c @@ -29,12 +29,14 @@ along with GCC; see the file COPYING3. If not see #include "flags.h" #include "regs.h" #include "rtl.h" +#include "hard-reg-set.h" #if SWITCHABLE_TARGET struct target_globals default_target_globals = { &default_target_flag_state, &default_target_regs, - &default_target_rtl + &default_target_rtl, + &default_target_hard_regs }; struct target_globals * @@ -46,6 +48,7 @@ save_target_globals (void) g->flag_state = XCNEW (struct target_flag_state); g->regs = XCNEW (struct target_regs); g->rtl = ggc_alloc_cleared_target_rtl (); + g->hard_regs = XCNEW (struct target_hard_regs); restore_target_globals (g); target_reinit (); return g; |