diff options
author | aldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-08 03:20:30 +0000 |
---|---|---|
committer | aldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-08 03:20:30 +0000 |
commit | 643df0593c630691fa6877cddeefdd4c3023d444 (patch) | |
tree | 1eb48ad31d05a9ce117bedc17115de96dffa2f0b /gcc/reginfo.c | |
parent | 54f3f029d816c6d1626310649adfda740e203f7b (diff) | |
parent | d5d8f1ccc6d3972dc5cfc0949e85e0b1c9e24ee0 (diff) | |
download | gcc-transactional-memory.tar.gz |
* Merge from mainline rev 181122.transactional-memory
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/transactional-memory@181148 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reginfo.c')
-rw-r--r-- | gcc/reginfo.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/reginfo.c b/gcc/reginfo.c index 537364192da..e9bf65f3003 100644 --- a/gcc/reginfo.c +++ b/gcc/reginfo.c @@ -1,7 +1,7 @@ /* Compute different info about registers. Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, - 2009, 2010 Free Software Foundation, Inc. + 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of GCC. @@ -94,6 +94,9 @@ static tree GTY(()) global_regs_decl[FIRST_PSEUDO_REGISTER]; in dataflow more conveniently. */ regset regs_invalidated_by_call_regset; +/* Same information as FIXED_REG_SET but in regset form. */ +regset fixed_reg_set_regset; + /* The bitmap_obstack is used to hold some static variables that should not be reset after each function is compiled. */ static bitmap_obstack persistent_obstack; @@ -451,6 +454,10 @@ init_reg_sets_1 (void) } else CLEAR_REG_SET (regs_invalidated_by_call_regset); + if (!fixed_reg_set_regset) + fixed_reg_set_regset = ALLOC_REG_SET (&persistent_obstack); + else + CLEAR_REG_SET (fixed_reg_set_regset); for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) { @@ -462,7 +469,10 @@ init_reg_sets_1 (void) #endif if (fixed_regs[i]) - SET_HARD_REG_BIT (fixed_reg_set, i); + { + SET_HARD_REG_BIT (fixed_reg_set, i); + SET_REGNO_REG_SET (fixed_reg_set_regset, i); + } if (call_used_regs[i]) SET_HARD_REG_BIT (call_used_reg_set, i); |