aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2005-08-10 17:53:52 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2005-08-10 10:53:52 -0700
commit4f8dbd340cd7e0181a24666bb82ea9fea5a78565 (patch)
tree51397593a2890a298bd74aacc8acf0aebf36cfb5
parentd75e02d6431bdc368eeff1d96212279a8ca30886 (diff)
downloadgcc-4f8dbd340cd7e0181a24666bb82ea9fea5a78565.zip
gcc-4f8dbd340cd7e0181a24666bb82ea9fea5a78565.tar.gz
gcc-4f8dbd340cd7e0181a24666bb82ea9fea5a78565.tar.bz2
darwin.c (machopic_indirect_data_reference): Use a new register for the high part when generating dynamic-no-pic code.
2005-08-10 Andrew Pinski <pinskia@physics.uc.edu> * config/darwin.c (machopic_indirect_data_reference): Use a new register for the high part when generating dynamic-no-pic code. From-SVN: r102955
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/darwin.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4de14de..6a6159b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-08-10 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * config/darwin.c (machopic_indirect_data_reference): Use a new register
+ for the high part when generating dynamic-no-pic code.
+
2005-08-10 H.J. Lu <hongjiu.lu@intel.com>
* config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file.
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index cac61e4..fd503ef 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -419,8 +419,10 @@ machopic_indirect_data_reference (rtx orig, rtx reg)
if (defined && MACHO_DYNAMIC_NO_PIC_P)
{
#if defined (TARGET_TOC)
- emit_insn (gen_macho_high (reg, orig));
- emit_insn (gen_macho_low (reg, reg, orig));
+ /* Create a new register for CSE opportunities. */
+ rtx hi_reg = (no_new_pseudos ? reg : gen_reg_rtx (Pmode));
+ emit_insn (gen_macho_high (hi_reg, orig));
+ emit_insn (gen_macho_low (reg, hi_reg, orig));
#else
/* some other cpu -- writeme! */
gcc_unreachable ();