From b39eb2f99a9aafe47a46b1da77261f7a586209f2 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 18 Mar 2003 11:07:03 -0800 Subject: [PATCH] ia64.md (UNSPECV_SETJMP_RECEIVER): New. * config/ia64/ia64.md (UNSPECV_SETJMP_RECEIVER): New. (builtin_setjmp_receiver): Delay call to ia64_reload_gp until after reload. From-SVN: r64546 --- gcc/ChangeLog | 6 ++++++ gcc/config/ia64/ia64.md | 8 ++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bd1f10ad5bed..d00d7d0e272c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-03-18 Richard Henderson + + * config/ia64/ia64.md (UNSPECV_SETJMP_RECEIVER): New. + (builtin_setjmp_receiver): Delay call to ia64_reload_gp + until after reload. + 2003-03-18 Richard Henderson * builtins.c (expand_builtin_unop): New target_mode operand; diff --git a/gcc/config/ia64/ia64.md b/gcc/config/ia64/ia64.md index 8ad262111e8c..51e3e2877651 100644 --- a/gcc/config/ia64/ia64.md +++ b/gcc/config/ia64/ia64.md @@ -83,6 +83,7 @@ (UNSPECV_SET_BSP 4) (UNSPECV_PSAC_ALL 5) ; pred.safe_across_calls (UNSPECV_PSAC_NORMAL 6) + (UNSPECV_SETJMP_RECEIVER 7) ]) ;; :::::::::::::::::::: @@ -5329,9 +5330,12 @@ DONE; }) -(define_expand "builtin_setjmp_receiver" - [(use (match_operand:DI 0 "" ""))] +(define_insn_and_split "builtin_setjmp_receiver" + [(unspec_volatile [(match_operand:DI 0 "" "")] UNSPECV_SETJMP_RECEIVER)] "" + "#" + "reload_completed" + [(const_int 0)] { ia64_reload_gp (); DONE;