aboutsummaryrefslogtreecommitdiff
path: root/gcc/except.c
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/except.c
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/except.c')
-rw-r--r--gcc/except.c5
1 files changed, 5 insertions, 0 deletions
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++;
}