PR target/34525
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Dec 2007 01:17:57 +0000 (01:17 +0000)
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Dec 2007 01:17:57 +0000 (01:17 +0000)
* pa.c (legitimize_pic_address): Force function labels into memory.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131096 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 7066277..5e4ac24 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 b4d890c..46ecbc1 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)));