From f0f6a2233fb12c26e42ddee6856396585bbd79cd Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sun, 20 Apr 1997 17:44:57 -0400 Subject: [PATCH] (nonlocal_goto_receiver): New pattern. From-SVN: r13943 --- gcc/config/rs6000/rs6000.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index c64c4f1efce..eba1a896323 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -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. @@ -7082,6 +7082,17 @@ 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")]) ;; 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 -- 2.30.2