aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>2001-05-07 15:45:47 +0000
committerJeff Law <law@gcc.gnu.org>2001-05-07 09:45:47 -0600
commitcb0bb87d89f7f00656c8ffe9907490bf9de34631 (patch)
tree9c1217dcd9d8d9ef9c7af7e691dbb1211b2977f8 /gcc
parent5cdba4ff5fcb672b983d5dbffba74d89b899a2ab (diff)
downloadgcc-cb0bb87d89f7f00656c8ffe9907490bf9de34631.zip
gcc-cb0bb87d89f7f00656c8ffe9907490bf9de34631.tar.gz
gcc-cb0bb87d89f7f00656c8ffe9907490bf9de34631.tar.bz2
except.c (sjlj_mark_call_sites): Do not search for assignments to non-argumment registers that are mentioned in...
* except.c (sjlj_mark_call_sites): Do not search for assignments to non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE. From-SVN: r41896
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/except.c5
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bddbc08..dd27cd5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
Mon May 7 09:30:14 2001 Jeffrey A Law (law@cygnus.com)
+ * except.c (sjlj_mark_call_sites): Do not search for assignments to
+ non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE.
+
* pa.h (MAX_LONG_TYPE_SIZE): Should be 32, not 64.
* pa-64.h (*_TYPE_SIZE): Undefine before redefining.
diff --git a/gcc/except.c b/gcc/except.c
index b21769c..ca68f65 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -2087,6 +2087,11 @@ sjlj_mark_call_sites (lp_info)
if (REGNO (XEXP (XEXP (p, 0), 0)) >= FIRST_PSEUDO_REGISTER)
abort ();
+ /* We only care about registers which can hold function
+ arguments. */
+ if (! FUNCTION_ARG_REGNO_P (REGNO (XEXP (XEXP (p, 0), 0))))
+ continue;
+
SET_HARD_REG_BIT (parm_regs, REGNO (XEXP (XEXP (p, 0), 0)));
nparm_regs++;
}