OSDN Git Service

(nonlocal_goto_receiver): New pattern.
[pf3gnuchains/gcc-fork.git] / 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