diff options
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/config/pa/pa.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7066277..5e4ac24 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index b4d890c..46ecbc1 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -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))); |
