This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RS6000] PR 45807 r2 eh_frame info error
- From: Alan Modra <amodra at gmail dot com>
- To: gcc-patches at gcc dot gnu dot org, David Edelsohn <dje dot gcc at gmail dot com>
- Date: Fri, 1 Oct 2010 12:57:12 +0930
- Subject: Re: [RS6000] PR 45807 r2 eh_frame info error
- References: <20100927142714.GS16376@bubble.grove.modra.org>
Fixes breakage when building on 64-bit hosts. Committed.
PR target/45807
* config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
extend toc_restore_insn.
Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c (revision 164818)
+++ gcc/config/rs6000/rs6000.c (working copy)
@@ -20234,8 +20242,8 @@ rs6000_emit_prologue (void)
be updated if we arrived at this function via a plt call or
toc adjusting stub. */
emit_move_insn (tmp_reg_si, gen_rtx_MEM (SImode, tmp_reg));
- toc_restore_insn = ((TARGET_32BIT ? 0x80410014 : 0xE8410028)
- ^ 0x80000000) - 0x80000000;
+ toc_restore_insn = TARGET_32BIT ? 0x80410014 : 0xE8410028;
+ toc_restore_insn = (toc_restore_insn ^ 0x80000000) - 0x80000000;
emit_insn (gen_xorsi3 (tmp_reg_si, tmp_reg_si,
GEN_INT (toc_restore_insn & ~0xffff)));
compare_result = gen_rtx_REG (CCUNSmode, CR0_REGNO);
--
Alan Modra
Australia Development Lab, IBM