summaryrefslogtreecommitdiff
path: root/gcc/target-globals.h
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2010-07-12 18:53:25 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2010-07-12 18:53:25 +0000
commit6642445b2caf5917b0aa341ab998b01796310751 (patch)
treeede7c51733a098412f5ed16fc7ef5a103c40df67 /gcc/target-globals.h
parent5fb0e246f4d16dd1f341cc34ded11eb4813fe50d (diff)
downloadgcc-6642445b2caf5917b0aa341ab998b01796310751.tar.gz
hard-reg-set.h (target_hard_regs): New structure.
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. From-SVN: r162089
Diffstat (limited to 'gcc/target-globals.h')
-rw-r--r--gcc/target-globals.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/target-globals.h b/gcc/target-globals.h
index f8db59c1827..913c5120147 100644
--- a/gcc/target-globals.h
+++ b/gcc/target-globals.h
@@ -24,11 +24,13 @@ along with GCC; see the file COPYING3. If not see
extern struct target_flag_state *this_target_flag_state;
extern struct target_regs *this_target_regs;
extern struct target_rtl *this_target_rtl;
+extern struct target_hard_regs *this_target_hard_regs;
struct GTY(()) target_globals {
struct target_flag_state *GTY((skip)) flag_state;
struct target_regs *GTY((skip)) regs;
struct target_rtl *rtl;
+ struct target_hard_regs *GTY((skip)) hard_regs;
};
extern struct target_globals default_target_globals;
@@ -41,6 +43,7 @@ restore_target_globals (struct target_globals *g)
this_target_flag_state = g->flag_state;
this_target_regs = g->regs;
this_target_rtl = g->rtl;
+ this_target_hard_regs = g->hard_regs;
}
#endif