From 6642445b2caf5917b0aa341ab998b01796310751 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Mon, 12 Jul 2010 18:53:25 +0000 Subject: 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 --- gcc/target-globals.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'gcc/target-globals.h') diff --git a/gcc/target-globals.h b/gcc/target-globals.h index f8db59c..913c512 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 -- cgit v1.1