(nonlocal_goto_receiver): New pattern.
authorRichard Kenner <kenner@gcc.gnu.org>
Sun, 20 Apr 1997 21:44:57 +0000 (17:44 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Sun, 20 Apr 1997 21:44:57 +0000 (17:44 -0400)
From-SVN: r13943

gcc/config/rs6000/rs6000.md

index c64c4f1efcedcc050d668cc9710ee403fb589168..eba1a8963233b1bccf0e0e5e3747eba89620dc08 100644 (file)
@@ -1,5 +1,5 @@
 ;; Machine description for IBM RISC System 6000 (POWER) for GNU C compiler
-;; Copyright (C) 1990, 91, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 91-96, 1997 Free Software Foundation, Inc.
 ;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
 
 ;; This file is part of GNU CC.
   DONE;
 }")
 
+;; If we have -mmiminal-toc, we need to reload r30 after a nonlocal goto.
+
+(define_insn "nonlocal_goto_receiver"
+  [(unspec_volatile [(const_int 0)] 1)]
+  "TARGET_TOC && TARGET_MINIMAL_TOC && get_pool_size () != 0"
+  "*
+{
+  rs6000_output_load_toc_table (asm_out_file);
+  return \"\";
+}"
+  [(set_attr "type" "load")])
 \f
 ;; A function pointer under AIX is a pointer to a data area whose first word
 ;; contains the actual address of the function, whose second word contains a