diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2005-08-10 17:53:52 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2005-08-10 10:53:52 -0700 |
commit | 4f8dbd340cd7e0181a24666bb82ea9fea5a78565 (patch) | |
tree | 51397593a2890a298bd74aacc8acf0aebf36cfb5 /gcc/config/darwin.c | |
parent | d75e02d6431bdc368eeff1d96212279a8ca30886 (diff) | |
download | gcc-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
Diffstat (limited to 'gcc/config/darwin.c')
-rw-r--r-- | gcc/config/darwin.c | 6 |
1 files changed, 4 insertions, 2 deletions
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 (); |