diff options
author | Jeff Law <law@gcc.gnu.org> | 1993-01-03 11:59:12 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1993-01-03 11:59:12 -0700 |
commit | 9d32f4a54a6978fe264486c3405ed0f380d1f3f7 (patch) | |
tree | 017c4a700c68ebf6b3e809441fa95df7929220d1 | |
parent | 81f433e4372e8a05f26c789bde3a292860d1ed7a (diff) | |
download | gcc-9d32f4a54a6978fe264486c3405ed0f380d1f3f7.zip gcc-9d32f4a54a6978fe264486c3405ed0f380d1f3f7.tar.gz gcc-9d32f4a54a6978fe264486c3405ed0f380d1f3f7.tar.bz2 |
pa.c (hppa_save_pic_table_rtx): New variable.
* pa.c (hppa_save_pic_table_rtx): New variable.
(finalize_pic): Setup hppa_save_pic_table_rtx..
From-SVN: r3068
-rw-r--r-- | gcc/config/pa/pa.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index ab7b218..2e36846 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -41,6 +41,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ rtx hppa_compare_op0, hppa_compare_op1; enum cmp_type hppa_branch_type; +rtx hppa_save_pic_table_rtx; + /* Set by the FUNCTION_PROFILER macro. */ int hp_profile_labelno; @@ -492,9 +494,18 @@ initialize_pic () void finalize_pic () { - /* Need to emit this whether or not we obey regdecls, - since setjmp/longjmp can cause life info to screw up. */ + if (hppa_save_pic_table_rtx) + { + emit_insn_after (gen_rtx (SET, VOIDmode, + hppa_save_pic_table_rtx, + gen_rtx (REG, Pmode, 19)), + get_insns ()); + /* Need to emit this whether or not we obey regdecls, + since setjmp/longjmp can cause life info to screw up. */ + hppa_save_pic_table_rtx = 0; + } emit_insn (gen_rtx (USE, VOIDmode, pic_offset_table_rtx)); + } /* For the HPPA, REG and REG+CONST is cost 0 |