------- Comment #6 from bergner at gcc dot gnu dot org 2006-10-19 04:05 ------- Subject: Bug 26026
Author: bergner Date: Thu Oct 19 04:05:34 2006 New Revision: 117877 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117877 Log: * doc/invoke.texi: Add cpu_type power6x (RS/6000 and PowerPC Options): Add -mmfpgpr. * recog.c (store_data_bypass_p): Add support to allow IN_INSN to be a PARALLEL containing sets. Return false when out_pat is not a PARALLEL insn. * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x. * config.gcc: Add cpu_type power6x. * configure.ac: Add test for mf{t,f}gpr instructions. (HAVE_AS_MFPGPR): New. * config.in: Regenerate. * configure: Regenerate. * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Default to POWER6. (PROCESSOR_DEFAULT64): Likewise. * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword, shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr and mftgpr attributes. (define_attr "cpu"): Add power6. Add power6x. Change instruction sequences to use new attributes. (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR. (fix_truncdfsi2_internal_mfpgpr): New. (floatsidf_ppc64_mfpgpr): New. (floatsidf_ppc64): Added !TARGET_MFPGPR condition. (movdf_hardfloat64_mfpgpr,movdi_internal64_mfpgpr): New. (movdf_hardfloat64): Added !TARGET_MFPGPR condition. (movdi_internal64): Added !TARGET_MFPGPR and related conditions. (fix_truncdfsi2): Use gpc_reg_operand constraint. * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md, 7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}: Add descriptions for insert_dword, shift,trap,var_shift_rotate, cntlz,exts and var_delayed_compare. * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define _ARCH_PWR6X, if features enabled. * config/rs6000/rs6000.opt (mmfpgpr): New. * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable. (cached_can_issue_more): New variable. (processor_costs): Add power6_cost. (rs6000_sched_init): New function. (is_dispatch_slot_restricted): Deleted. (set_to_load_agen): New function. (is_load_insn,is_store_insn): New functions. (adjacent_mem_locations): New function. (insn_must_be_first_in_group): New function. (insn_must_be_last_in_group): New function. (rs6000_sched_reorder): New function. (rs6000_sched_reorder2): New function. (TARGET_SCHED_INIT,TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2): Define. (processor_target_table): Use PROCESSOR_POWER6 for power6. Add power6x. Add MASK_MFPGPR for power6x. (POWERPC_MASKS): Add MASK_MFPGPR. (rs6000_override_options): Set rs6000_always_hint to false for power6. Set rs6000_align_branch_targets. Replace rs6000_sched_groups check with rs6000_align_branch_targets. Use PROCESSOR_POWER6. (last_scheduled_insn): New variable. (load_store_pendulum): New variable. (rs6000_variable_issue): Set last_scheduled_insn and cached_can_issue_more. (rs6000_adjust_cost): Add power6 cost adjustments. (rs6000_adjust_priority): Replace is_dispatch_slot_restricted with insn_must_be_first_in_group. Add power6 priority adjustments. (rs6000_issue_rate): Add CPU_POWER6. Add CPU_POWER6X. (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group. * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6. (TARGET_MFPGPR): New. (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR. (ASM_CPU_SPEC): Add power6x. Pass -mpower5 when cpu=power5. Pass -mpower5 when cpu=power5+. Pass -mpower6 when cpu=power6. (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode conditions. * config/rs6000/power6.md: New file. PR rtl-optimization/26026 Backport from mainline 2006-04-19 Alan Modra <[EMAIL PROTECTED]> * fold-const.c (fold_binary): Optimize div and mod where the divisor is a known power of two shifted left a variable amount. Added: branches/ibm/gcc-4_1-branch/gcc/config/rs6000/power6.md Modified: branches/ibm/gcc-4_1-branch/gcc/ChangeLog branches/ibm/gcc-4_1-branch/gcc/config.gcc branches/ibm/gcc-4_1-branch/gcc/config.in branches/ibm/gcc-4_1-branch/gcc/config/rs6000/40x.md branches/ibm/gcc-4_1-branch/gcc/config/rs6000/440.md branches/ibm/gcc-4_1-branch/gcc/config/rs6000/603.md branches/ibm/gcc-4_1-branch/gcc/config/rs6000/6xx.md branches/ibm/gcc-4_1-branch/gcc/config/rs6000/7450.md branches/ibm/gcc-4_1-branch/gcc/config/rs6000/7xx.md branches/ibm/gcc-4_1-branch/gcc/config/rs6000/8540.md branches/ibm/gcc-4_1-branch/gcc/config/rs6000/aix52.h branches/ibm/gcc-4_1-branch/gcc/config/rs6000/linux64.h branches/ibm/gcc-4_1-branch/gcc/config/rs6000/mpc.md branches/ibm/gcc-4_1-branch/gcc/config/rs6000/power4.md branches/ibm/gcc-4_1-branch/gcc/config/rs6000/power5.md branches/ibm/gcc-4_1-branch/gcc/config/rs6000/rios1.md branches/ibm/gcc-4_1-branch/gcc/config/rs6000/rios2.md branches/ibm/gcc-4_1-branch/gcc/config/rs6000/rs6000-c.c branches/ibm/gcc-4_1-branch/gcc/config/rs6000/rs6000.c branches/ibm/gcc-4_1-branch/gcc/config/rs6000/rs6000.h branches/ibm/gcc-4_1-branch/gcc/config/rs6000/rs6000.md branches/ibm/gcc-4_1-branch/gcc/config/rs6000/rs6000.opt branches/ibm/gcc-4_1-branch/gcc/config/rs6000/rs64.md branches/ibm/gcc-4_1-branch/gcc/configure branches/ibm/gcc-4_1-branch/gcc/configure.ac branches/ibm/gcc-4_1-branch/gcc/doc/invoke.texi branches/ibm/gcc-4_1-branch/gcc/fold-const.c branches/ibm/gcc-4_1-branch/gcc/recog.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26026