aboutsummaryrefslogtreecommitdiff
path: root/gcc/except.c
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2004-08-16 20:08:31 +0000
committerFariborz Jahanian <fjahanian@gcc.gnu.org>2004-08-16 20:08:31 +0000
commit93f90be62c1d84539017ab6d73b061993b367f54 (patch)
tree7ef0be49eaaa279546b71216e1d64b9fd033a840 /gcc/except.c
parent392765bf8d611c30e50e135893fb61bfad198d42 (diff)
downloadgcc-93f90be62c1d84539017ab6d73b061993b367f54.zip
gcc-93f90be62c1d84539017ab6d73b061993b367f54.tar.gz
gcc-93f90be62c1d84539017ab6d73b061993b367f54.tar.bz2
Patch to fix -mcpu=G5 interface to EH runtime library.
Reviewed by Geoff Keating. From-SVN: r86074
Diffstat (limited to 'gcc/except.c')
-rw-r--r--gcc/except.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/except.c b/gcc/except.c
index d45f1b2..c9e086e 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -628,7 +628,7 @@ get_exception_filter (struct function *fun)
rtx filter = fun->eh->filter;
if (fun == cfun && ! filter)
{
- filter = gen_reg_rtx (word_mode);
+ filter = gen_reg_rtx (targetm.eh_return_filter_mode ());
fun->eh->filter = filter;
}
return filter;
@@ -1528,7 +1528,8 @@ build_post_landing_pads (void)
emit_cmp_and_jump_insns
(cfun->eh->filter,
GEN_INT (tree_low_cst (TREE_VALUE (flt_node), 0)),
- EQ, NULL_RTX, word_mode, 0, c->label);
+ EQ, NULL_RTX,
+ targetm.eh_return_filter_mode (), 0, c->label);
tp_node = TREE_CHAIN (tp_node);
flt_node = TREE_CHAIN (flt_node);
@@ -1560,7 +1561,8 @@ build_post_landing_pads (void)
emit_cmp_and_jump_insns (cfun->eh->filter,
GEN_INT (region->u.allowed.filter),
- EQ, NULL_RTX, word_mode, 0, region->label);
+ EQ, NULL_RTX,
+ targetm.eh_return_filter_mode (), 0, region->label);
/* We delay the generation of the _Unwind_Resume until we generate
landing pads. We emit a marker here so as to get good control
@@ -1738,7 +1740,8 @@ dw2_build_landing_pads (void)
emit_move_insn (cfun->eh->exc_ptr,
gen_rtx_REG (ptr_mode, EH_RETURN_DATA_REGNO (0)));
emit_move_insn (cfun->eh->filter,
- gen_rtx_REG (word_mode, EH_RETURN_DATA_REGNO (1)));
+ gen_rtx_REG (targetm.eh_return_filter_mode (),
+ EH_RETURN_DATA_REGNO (1)));
seq = get_insns ();
end_sequence ();