OSDN Git Service

* config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant.
authorsje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Dec 2008 23:25:51 +0000 (23:25 +0000)
committersje <sje@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Dec 2008 23:25:51 +0000 (23:25 +0000)
(nonlocal_goto_receiver): New instruction.

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

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

index 979d207..ad62abe 100644 (file)
@@ -1,3 +1,8 @@
+2008-12-08  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant.
+       (nonlocal_goto_receiver): New instruction.
+
 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
 
        PR c/35443
index b03032d..b4894ab 100644 (file)
    (UNSPECV_PSAC_ALL           5)      ; pred.safe_across_calls
    (UNSPECV_PSAC_NORMAL                6)
    (UNSPECV_SETJMP_RECEIVER    7)
+   (UNSPECV_GOTO_RECEIVER      8)
   ])
 
 (include "predicates.md")
   DONE;
 })
 
+(define_insn_and_split "nonlocal_goto_receiver"
+  [(unspec_volatile [(const_int 0)] UNSPECV_GOTO_RECEIVER)]
+  ""
+  "#"
+  "reload_completed"
+  [(const_int 0)]
+{
+  ia64_reload_gp ();
+  DONE;
+})
+
 (define_insn_and_split "builtin_setjmp_receiver"
   [(unspec_volatile [(match_operand:DI 0 "" "")] UNSPECV_SETJMP_RECEIVER)]
   ""