diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1997-04-20 17:44:57 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1997-04-20 17:44:57 -0400 |
commit | f0f6a2233fb12c26e42ddee6856396585bbd79cd (patch) | |
tree | a2543bb7e56a2d0e75344466ad70e3621c2aad7e | |
parent | c7ca610ed5e808e725711d3a9acd275f6f3eb727 (diff) | |
download | gcc-f0f6a2233fb12c26e42ddee6856396585bbd79cd.zip gcc-f0f6a2233fb12c26e42ddee6856396585bbd79cd.tar.gz gcc-f0f6a2233fb12c26e42ddee6856396585bbd79cd.tar.bz2 |
(nonlocal_goto_receiver): New pattern.
From-SVN: r13943
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index c64c4f1..eba1a89 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 |