]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/34525 (ICE in extract_insn, at recog.c:1990 on hppa)
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Thu, 20 Dec 2007 01:17:57 +0000 (01:17 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Thu, 20 Dec 2007 01:17:57 +0000 (01:17 +0000)
PR target/34525
* pa.c (legitimize_pic_address): Force function labels into memory.

From-SVN: r131096

gcc/ChangeLog
gcc/config/pa/pa.c

index 7066277b236e566e52204b92ca22074d4a7b4368..5e4ac241865e412340421a00f4f822d868875067 100644 (file)
@@ -1,3 +1,8 @@
+2007-12-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/34525
+       * pa.c (legitimize_pic_address): Force function labels into memory.
+
 2007-12-19  Zdenek Dvorak  <ook@ucw.cz>
 
        * omp-low.c (build_omp_regions_1): Recognition of combined parallels
index b4d890c930c45b49db5890e7be2c2491c4f2abd5..46ecbc1a1dfe16bd1e771e5b51d5e92fb5b8a09a 100644 (file)
@@ -694,6 +694,10 @@ legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg)
       tmp_reg = ((reload_in_progress || reload_completed)
                 ? reg : gen_reg_rtx (Pmode));
 
+      /* Force function labels into memory.  */
+      if (function_label_operand (orig, mode))
+       orig = force_const_mem (mode, orig);
+
       emit_move_insn (tmp_reg,
                      gen_rtx_PLUS (word_mode, pic_offset_table_rtx,
                                    gen_rtx_HIGH (word_mode, orig)));