From 53ddfbd91537434101401d2d77fc82d656540dcc Mon Sep 17 00:00:00 2001 From: amodra Date: Thu, 7 Oct 2010 12:47:52 +0000 Subject: [PATCH] * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode rather than sign extension by hand. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165101 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 34 +++++++++++++++++++--------------- gcc/config/rs6000/rs6000.c | 12 +++++------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0652cf0..e18f700 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-10-07 Alan Modra + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode + rather than sign extension by hand. + 2010-10-07 Jan Hubicka PR middle-end/45926 @@ -20,17 +25,17 @@ * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation. * doc/tm.texi.in: Regenerate. * system.h (CLASS_LIKELY_SPILLED_P): Poison. - * targhooks.c (default_class_likely_spilled_p): Don't use the + * targhooks.c (default_class_likely_spilled_p): Don't use the CLASS_LIKELY_SPILLED_P macro. - * config\arm\arm.md: Update comment. + * config/arm/arm.md: Update comment. 2010-10-06 Jan Hubicka - * ipa.c (cgraph_remove_unreachable_nodes): External references can always - be removed. - (cgraph_externally_visible_p): We can not bring local comdats that are known - to linker; fix handling of internal visibility. + * ipa.c (cgraph_remove_unreachable_nodes): External references can + always be removed. + (cgraph_externally_visible_p): We can not bring local comdats that + are known to linker; fix handling of internal visibility. (function_and_variable_visibility): Likewise. 2010-10-06 Eric Botcazou @@ -65,7 +70,7 @@ 2010-10-06 Nicola Pero - Implemented fast enumeration for Objective-C. + Implemented fast enumeration for Objective-C. * c-parser.c (objc_could_be_foreach_context): New. (c_lex_one_token): Recognize RID_IN keyword in a potential Objective-C foreach context. @@ -87,7 +92,7 @@ perform checks on the loop declarations. * c-tree.h (check_for_loop_decls): Updated declaration. * doc/objc.texi: Document fast enumeration. - + 2010-10-06 Nick Clifton * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by @@ -431,8 +436,7 @@ 2010-10-04 Andi Kleen * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov, - gcov-dump, cc1-dummy, genprog, build/gcov-iov): - Add + to build rule. + gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule. 2010-10-04 Matthias Klose @@ -993,7 +997,7 @@ * extend.texi (interrupt_handler): Add MicroBlaze to list. (save_volatiles): Describe option for MicroBlaze. * invoke.texi: Add MicroBlaze Options. - * contrib.texi: Add acknowledgment. + * contrib.texi: Add acknowledgment. * md.texi: Add MicroBlaze d and z constraints. * install.texi: Add microblaze-*-elf. * configure.ac: Add microblaze-*-* to target list. @@ -1111,7 +1115,7 @@ and RID_AT_PUBLIC instead of RID_PUBLIC. (c_parser_statement_after_labels): Use RID_AT_TRY instead of RID_TRY and RID_AT_CATCH instead of RID_CATCH. - + 2010-09-30 Tom G. Christensen * doc/install.texi (Binaries): Update link to HP-UX porting centre. @@ -1121,7 +1125,7 @@ Merge from 'apple/trunk' branch on FSF servers. * c-parser.c: Applied change originally in c-parse.in. - + 2005-10-04 Fariborz Jahanian Radar 4281748 @@ -9203,7 +9207,7 @@ 2010-07-22 Ramana Radhakrishnan - PR target/43698 + PR target/43698 * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev. Set *arm_rev to be predicable. @@ -12081,7 +12085,7 @@ * ipa-split.c (split_function): For aggregate values, set the return slot optimization bit. When passing DECL_BY_REFERENCE, produce - * = fncall.part (). + * = fncall.part (). (execute_split_functions): Do not care about DECL_BY_REFERENCE. 2010-07-02 Sandra Loosemore diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index adc1d13..509000ba 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -20214,7 +20214,7 @@ rs6000_emit_prologue (void) /* In AIX ABI we need to make sure r2 is really saved. */ if (TARGET_AIX && crtl->calls_eh_return) { - rtx tmp_reg, tmp_reg_si, compare_result, toc_save_done, jump; + rtx tmp_reg, tmp_reg_si, hi, lo, compare_result, toc_save_done, jump; long toc_restore_insn; gcc_assert (frame_reg_rtx == frame_ptr_rtx @@ -20232,15 +20232,13 @@ rs6000_emit_prologue (void) toc adjusting stub. */ emit_move_insn (tmp_reg_si, gen_rtx_MEM (SImode, tmp_reg)); 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))); + hi = gen_int_mode (toc_restore_insn & ~0xffff, SImode); + emit_insn (gen_xorsi3 (tmp_reg_si, tmp_reg_si, hi)); compare_result = gen_rtx_REG (CCUNSmode, CR0_REGNO); validate_condition_mode (EQ, CCUNSmode); + lo = gen_int_mode (toc_restore_insn & 0xffff, SImode); emit_insn (gen_rtx_SET (VOIDmode, compare_result, - gen_rtx_COMPARE (CCUNSmode, tmp_reg_si, - GEN_INT (toc_restore_insn - & 0xffff)))); + gen_rtx_COMPARE (CCUNSmode, tmp_reg_si, lo))); toc_save_done = gen_label_rtx (); jump = gen_rtx_IF_THEN_ELSE (VOIDmode, gen_rtx_EQ (VOIDmode, compare_result, -- 2.7.4