re PR target/45807 (Lying eh_frame r2 save info causes crashes with static libgcc_eh and libstdc++)
PR target/45807 * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign extend toc_restore_insn. From-SVN: r164825
This commit is contained in:
parent
c98b08ff4b
commit
d7e7073f49
2 changed files with 8 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2010-10-01 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR target/45807
|
||||
* config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
|
||||
extend toc_restore_insn.
|
||||
|
||||
2010-09-30 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/43959
|
||||
|
|
|
@ -20234,8 +20234,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);
|
||||
|
|
Loading…
Add table
Reference in a new issue