* config/ia64/ia64.md (UNSPECV_SETJMP_RECEIVER): New.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Mar 2003 19:07:03 +0000 (19:07 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Mar 2003 19:07:03 +0000 (19:07 +0000)
        (builtin_setjmp_receiver): Delay call to ia64_reload_gp
        until after reload.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64546 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/ia64/ia64.md

index bd1f10a..d00d7d0 100644 (file)
@@ -1,5 +1,11 @@
 2003-03-18  Richard Henderson  <rth@redhat.com>
 
+       * 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  <rth@redhat.com>
+
        * builtins.c (expand_builtin_unop): New target_mode operand;
        use it to convert the result to the correct mode.
        (expand_builtin): Update all callers.
index 8ad2621..51e3e28 100644 (file)
@@ -83,6 +83,7 @@
    (UNSPECV_SET_BSP            4)
    (UNSPECV_PSAC_ALL           5)      ; pred.safe_across_calls
    (UNSPECV_PSAC_NORMAL                6)
+   (UNSPECV_SETJMP_RECEIVER    7)
   ])
 \f
 ;; ::::::::::::::::::::
   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;