OSDN Git Service

(nonlocal_goto_receiver): New pattern.
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 20 Apr 1997 21:44:57 +0000 (21:44 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 20 Apr 1997 21:44:57 +0000 (21:44 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13943 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/rs6000/rs6000.md

index c64c4f1..eba1a89 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