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.h | |
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.h')
-rw-r--r-- | gcc/target-globals.h | 3 |
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 |