aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2000-01-21 21:49:33 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2000-01-21 21:49:33 +0100
commit7652adb5c699caf28e8139289e6cd8a2f203c0f8 (patch)
tree43c344503b7c870c3a6439e634568adae3eb5e35
parent57e9826105b1535eaf1bfc6aa7da5b9d6f8aa13c (diff)
downloadgcc-7652adb5c699caf28e8139289e6cd8a2f203c0f8.zip
gcc-7652adb5c699caf28e8139289e6cd8a2f203c0f8.tar.gz
gcc-7652adb5c699caf28e8139289e6cd8a2f203c0f8.tar.bz2
sparc.md (movsi_pic_label_ref): Avoid creating new pseudos if expanded after first flow.
* config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new pseudos if expanded after first flow. (movdi_pic_label_ref): Likewise. From-SVN: r31549
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/sparc/sparc.md24
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;
}")