diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.md | 24 |
2 files changed, 26 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 373d606..2162863 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2000-01-21 Jakub Jelinek <jakub@redhat.com> + + * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new + pseudos if expanded after first flow. + (movdi_pic_label_ref): Likewise. + 2000-01-20 Richard Henderson <rth@cygnus.com> * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0. diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index a8fe0c0..d704965 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -2273,8 +2273,16 @@ { current_function_uses_pic_offset_table = 1; operands[2] = gen_rtx_SYMBOL_REF (Pmode, \"_GLOBAL_OFFSET_TABLE_\"); - operands[3] = gen_reg_rtx (SImode); - operands[4] = gen_reg_rtx (SImode); + if (no_new_pseudos) + { + operands[3] = operands[0]; + operands[4] = operands[0]; + } + else + { + operands[3] = gen_reg_rtx (SImode); + operands[4] = gen_reg_rtx (SImode); + } operands[5] = pic_offset_table_rtx; }") @@ -2467,8 +2475,16 @@ { current_function_uses_pic_offset_table = 1; operands[2] = gen_rtx_SYMBOL_REF (Pmode, \"_GLOBAL_OFFSET_TABLE_\"); - operands[3] = gen_reg_rtx (DImode); - operands[4] = gen_reg_rtx (DImode); + if (no_new_pseudos) + { + operands[3] = operands[0]; + operands[4] = operands[0]; + } + else + { + operands[3] = gen_reg_rtx (DImode); + operands[4] = gen_reg_rtx (DImode); + } operands[5] = pic_offset_table_rtx; }") |