summaryrefslogtreecommitdiff
path: root/gcc/target-globals.c
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-12 18:53:25 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-12 18:53:25 +0000
commit6d0eb0c4660dc7c6454be5b04f24de84dab27342 (patch)
treeede7c51733a098412f5ed16fc7ef5a103c40df67 /gcc/target-globals.c
parent679bcc8d703e71303adf2e956a1496a00cecf854 (diff)
downloadgcc-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.c5
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;