diff options
author | John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | 2007-12-20 01:17:57 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2007-12-20 01:17:57 +0000 |
commit | f946206c0eb307caa93dea8d55a7a2416e64049f (patch) | |
tree | f9c094b5e97c7b5b420d6184d397f495bca01283 | |
parent | ec871836a4c7bafdf23109ab2b1f11f5cbd1d794 (diff) | |
download | gcc-f946206c0eb307caa93dea8d55a7a2416e64049f.zip gcc-f946206c0eb307caa93dea8d55a7a2416e64049f.tar.gz gcc-f946206c0eb307caa93dea8d55a7a2416e64049f.tar.bz2 |
re PR target/34525 (ICE in extract_insn, at recog.c:1990 on hppa)
PR target/34525
* pa.c (legitimize_pic_address): Force function labels into memory.
From-SVN: r131096
-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))); |