2006-06-01 Mark Shinwell * gcc/builtins.c (expand_builtin_return_addr): Always use hard_frame_pointer_rtx and prevent frame pointer elimination if INITIAL_FRAME_ADDRESS_RTX isn't set. 2006-06-01 Mark Shinwell * gcc/tree.h: Declare folding_initializer. * gcc/builtins.c (fold_builtin_constant_p): Give definite answer if folding inside an initializer. * gcc/fold-const.c: Define folding_initializer. (START_FOLD_INIT): Save and then set folding_initializer. (END_FOLD_INIT): Restore folding_initializer. * gcc/testsuite/gcc.c-torture/compile/builtin_constant_p.c: New test. 2006-05-31 Carlos O'Donell Backport from mainline: 2006-05-31 Richard Earnshaw PR target/27829 * gcc/config/arm/arm.c (arm_print_operand case 'S'): Validate that the operand is a shift operand before calling shift_op. Avoid redundant call of shift_op. 2006-05-29 Kazu Hirata Backport from mainline: 2006-05-28 Kazu Hirata PR tree-optimization/26622. * gcc/fold-const.c (fold_ternary) : Call fold_convert on arg1. PR tree-optimization/26622. * gcc/testsuite/gcc.c-torture/compile/pr26622.c: New. 2006-05-19 Nathan Sidwell * libiberty/make-relative-prefix.c (split_directories): Add ignore_final arg. (make_relative_prefix): Keep the final path component if it was a directory. Adjust calls to split_directories. 2006-05-20 Richard Sandiford Merge from mainline: gcc/ 2006-05-19 Richard Sandiford * config/mips/linux-unwind.h: Include (mips_fallback_frame_state): Use syscall numbers to determine the appropriate li instruction for the current ABI. Only use __NR_sigreturn for o32. 2006-05-11 Joseph S. Myers * gcc/testsuite/lib/target-supports.exp (check_effective_target_powerpc_fprs, check_effective_target_powerpc_altivec_ok): New. * gcc/testsuite/g++.dg/eh/simd-2.C, gcc/testsuite/g++.dg/ext/altivec-1.C, gcc/testsuite/g++.dg/ext/altivec-10.C, gcc/testsuite/g++.dg/ext/altivec-11.C, gcc/testsuite/g++.dg/ext/altivec-12.C, gcc/testsuite/g++.dg/ext/altivec-13.C, gcc/testsuite/g++.dg/ext/altivec-2.C, gcc/testsuite/g++.dg/ext/altivec-3.C, gcc/testsuite/g++.dg/ext/altivec-4.C, gcc/testsuite/g++.dg/ext/altivec-5.C, gcc/testsuite/g++.dg/ext/altivec-6.C, gcc/testsuite/g++.dg/ext/altivec-7.C, gcc/testsuite/g++.dg/ext/altivec-8.C, gcc/testsuite/g++.dg/ext/altivec-9.C, gcc/testsuite/g++.dg/ext/altivec-types-1.C, gcc/testsuite/g++.dg/ext/altivec-types-2.C, gcc/testsuite/g++.dg/ext/altivec-types-3.C, gcc/testsuite/g++.dg/ext/altivec-types-4.C, gcc/testsuite/gcc.dg/simd-3.c, gcc/testsuite/gcc.dg/vect/vect-82_64.c, gcc/testsuite/gcc.dg/vect/vect-83_64.c, gcc/testsuite/gcc.dg/vmx/vmx.exp, gcc/testsuite/gcc.target/powerpc/980827-1.c, gcc/testsuite/gcc.target/powerpc/altivec-1.c, gcc/testsuite/gcc.target/powerpc/altivec-10.c, gcc/testsuite/gcc.target/powerpc/altivec-11.c, gcc/testsuite/gcc.target/powerpc/altivec-12.c, gcc/testsuite/gcc.target/powerpc/altivec-13.c, gcc/testsuite/gcc.target/powerpc/altivec-14.c, gcc/testsuite/gcc.target/powerpc/altivec-15.c, gcc/testsuite/gcc.target/powerpc/altivec-16.c, gcc/testsuite/gcc.target/powerpc/altivec-17.c, gcc/testsuite/gcc.target/powerpc/altivec-18.c, gcc/testsuite/gcc.target/powerpc/altivec-19.c, gcc/testsuite/gcc.target/powerpc/altivec-2.c, gcc/testsuite/gcc.target/powerpc/altivec-21.c, gcc/testsuite/gcc.target/powerpc/altivec-22.c, gcc/testsuite/gcc.target/powerpc/altivec-3.c, gcc/testsuite/gcc.target/powerpc/altivec-4.c, gcc/testsuite/gcc.target/powerpc/altivec-5.c, gcc/testsuite/gcc.target/powerpc/altivec-6.c, gcc/testsuite/gcc.target/powerpc/altivec-7.c, gcc/testsuite/gcc.target/powerpc/altivec-8.c, gcc/testsuite/gcc.target/powerpc/altivec-9.c, gcc/testsuite/gcc.target/powerpc/altivec-consts.c, gcc/testsuite/gcc.target/powerpc/altivec-pr22085.c, gcc/testsuite/gcc.target/powerpc/altivec-splat.c, gcc/testsuite/gcc.target/powerpc/altivec-types-1.c, gcc/testsuite/gcc.target/powerpc/altivec-types-2.c, gcc/testsuite/gcc.target/powerpc/altivec-types-3.c, gcc/testsuite/gcc.target/powerpc/altivec-types-4.c, gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c, gcc/testsuite/gcc.target/powerpc/altivec-vec-merge.c, gcc/testsuite/gcc.target/powerpc/ppc-vector-memcpy.c, gcc/testsuite/gcc.target/powerpc/ppc-vector-memset.c, gcc/testsuite/gcc.target/powerpc/ppc64-abi-2.c, gcc/testsuite/gcc.target/powerpc/pr16155.c, gcc/testsuite/gcc.target/powerpc/pr16286.c: Use these effective targets. * gcc/testsuite/gcc.dg/20020103-1.c: XFAIL on powerpc*-*-*. 2006-05-08 Paul Brook * gcc/cofnig/arm/arm.c (output_move_vfp): Fix typo. 2006-05-07 Nathan Sidwell * configure.in (TOPLEVEL_CONFIGURE_ARGS): Protect args with active characters. (baseargs): Simplify protection, use ac_arg temp name, correct $ to $$ conversion. * configure: Rebuilt. 2006-05-05 Joseph Myers * gcc/testsuite/gcc.c-torture/execute/loop-2f.x, gcc/testsuite/gcc.c-torture/execute/loop-2g.x: New. XFAIL on mips*-*-linux*. 2006-05-05 Mark Mitchell * configure.in: Do not mangle arguments like "--with-foo=A B C" when storing in baseargs. * configure: Regenerated. * gcc/configure.ac: Add --with-versuffix and --with-bugurl. * gcc/version.c (VERSUFFIX): Remove. (bug_report_url): Do not hard-code initializer. * gcc/Makefile.in (VERSUFFIX_s): Define. (BUGURL_s): Likewise. (version.o): Define VERSUFFIX and BUGURL. * gcc/doc/install.texi: Document them. * gcc/configure: Regenerated. 2006-05-04 Kazu Hirata Backport: 2006-05-04 Richard Sandiford PR target/26765 * gcc/config/mips/mips.c (mips_symbolic_address_p): Return true for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL, SYMBOL_GOTTPREL, and SYMBOL_TLS. 2006-05-04 Kazu Hirata PR target/26765 * gcc/testsuite/gcc.target/mips/pr26765.c: New. 2006-05-04 Paul Brook * gcc/version.c: Revert back to Sourcery G++. 2006-05-03 Paul Brook Merge from branches/csl/arm-4_1 r113476. 2006-05-02 Paul Brook * gcc/config/arm/arm.c (add_minipool_forward_ref): Check if insn and pool overlap. (create_fix_barrier): Check that a suitable barrier location is found. (arm_reorg): Include ftmp->address in allowable range of addresses. 2006-05-01 Kazu Hirata Paul Brook * gcc/config/arm/vfp.md (arm_movdi_vfp): Correct the output templates for case 3 and 4. (thumb2_movdi_vfp): Ditto. 2006-04-21 Kazu Hirata * gcc/config/arm/arm-protos.h: Add a prototype for output_move_vfp. * gcc/config/arm/arm.c (arm_coproc_mem_operand): When WB is false, accept PRE_DEC and POST_INC. (output_move_vfp): New. * gcc/config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp, *arm_movdi_vfp, *thumb2_movdi_vfp, *movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp): Call output_move_vfp on loads to and stores from VFP registers. * gcc/testsuite/gcc.target/arm/arm.exp, gcc/testsuite/gcc.target/arm/vfp-ldmdbd.c, gcc/testsuite/gcc.target/arm/vfp-ldmdbs.c, gcc/testsuite/gcc.target/arm/vfp-ldmiad.c, gcc/testsuite/gcc.target/arm/vfp-ldmias.c, gcc/testsuite/gcc.target/arm/vfp-stmdbd.c, gcc/testsuite/gcc.target/arm/vfp-stmdbs.c, gcc/testsuite/gcc.target/arm/vfp-stmiad.c, gcc/testsuite/gcc.target/arm/vfp-stmias.c: New. 2006-04-02 Paul Brook * gcc/config/arm/ieee754-df.S (adddf3): Avoid clobbering yl. 2006-04-02 Paul Brook * gcc/config/arm/arm.c (arm_file_start): Output additional object attribute directives. 2006-03-31 Paul Brook * gcc/config/arm/thumb2.md (thumb2_shiftsi3_short): Disallow rotate by immediate. (divsi3, udivsi3): Remove bogus length attribute. 2006-03-31 Paul Brook * gcc/config/arm/arm.c (arm_output_shift): Fix typo in condition modifier characters. 2006-03-31 Paul Brook * gcc/config/arm/arm.c (arm_output_shift): Handle Thumb register shifts. 2006-03-30 Paul Brook * gcc/config/arm/arm.c (arm_output_shift): Change set_flags to tristate option. Use modified shift value. * gcc/config/arm/thumb2.md (thumb2_shiftsi3_short): Use arm_output_shift. * gcc/config/arm/arm.md (arm_shiftsi3, shiftsi3_compare0, shiftsi3_compare0_scratch): Adjust arguments to arm_output_shift. 2006-03-29 Paul Brook * gcc/config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives. (thumb2_movsf_vfp, movdf_vfp, thumb2_movdf_vfp): Ditto. 2005-03-21 Paul Brook * gcc/config/arm/thumb2.md (divsi3, udivsi3): New define_insn. * gcc/config/arm/arm.c (arm_arch_hwdiv): Define. (arm_override_options): Set arm_arch_hwdiv. * gcc/config/arm/arm.h (arm_arch_hwdiv): Declare. 2006-03-14 Paul Brook * doc/install.texi: Docuemnt --with-mode. * config.gcc: Add --with-mode for arm*-*-*. * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode". 2006-03-13 Paul Brook * gcc/config/arm/arm.c (arm_dwarf_handle_frame_unspec): New function. (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define. (arm_compute_save_reg0_reg12_mask): Save r0 if dynamic stack alignment is required. (arm_output_epilogue): Restore sp from r0. (arm_expand_prologue): Save sp in r0 before aligning stack. (arm_unwind_emit_sequence): Remove redundant SP push code. (arm_unwind_emit_set): Handle UNSPEC_STACK_ALIGN. * gcc/config/arm/arm.md (UNSPEC_STACK_ALIGN): Define. 2006-03-01 Paul Brook * gcc/doc/extend.texi: Document ARMv7 interrupt attribute. * gcc/config/arm/arm.c (arm_isr_value): Check arm_arch_notm. (use_return_insn): Return 0 is SP needs realignment. (arm_function_ok_for_sibcall): Ditto. (arm_output_function_prologue): Add IS_STACKALIGN comment. (arm_output_epilogue): Restore SP from stack if it needed realignment. (arm_expand_prologue): Add dynamic stack alignment code. (-arm_unwind_emit_stm): Rename... (arm_unwind_emit_sequence): ... to this. Handle popping SP. * gcc/config/arm/arm.h (ARM_FT_STACKALIGN, IS_STACKALIGN): Define. * gcc/g++.dg/other/armv7m-1.c: New test. 2006-02-27 Paul Brook * gcc/config/arm/t-arm-elf: Fix backwards MULTILIB_MATCHES. 2006-02-24 Paul Brook * gcc/config/arm/arm.c (FL_NOTM, FL_DIV, FL_FOR_ARCH7, FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M): New defines. (arm_arch_notm): New variable. (arm_override_options): Check if CPU supports ARM mode. Set arm_arch_notm. * gcc/config/arm/lib1funcs.asm: Recognise V7 architecture variants. * gcc/config/arm/arm.h (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Define. (arm_arch_notm): Declare. * gcc/config/arm/arm-cores.def: Add cortex-a8, cortex-r4 and cortex-m3. * gcc/config/arm/arm-cores.def: Regenerate. * gcc/config/arm/t-arm-elf: Add Armv7 Thumb-2 multilib. * gcc/config/arm/arm.md (mulhisi3, mulhisi3tb, mulhisi3bt, mulhisi3tt, mulhisi3addsi, mulhidi3adddi): Depend on TARGET_DSP_MULTIPLY. (arm_zero_extendhisi2addsi, arm_zero_extendqisi2addsi, arm_extendhisi2addsi, arm_extendqisi2addsi): Depend on TARGET_INT_SIMD. 2006-02-07 Paul Brook * config/gcc/arm/lib1funcs.asm: Use unified assembly syntax. Assemble "Arm" code as Thumb-2 where appropriate. * config/gcc/arm/ieee754-df.S: Use unified assembly syntax for Arm code. Add Thumb-2 code. * config/gcc/arm/ieee754-df.S: Ditto. * config/gcc/arm/libunwind.S: Ditto. * config/gcc/arm/bpabi.S: Ditto. 2006-01-27 Paul Brook * version.c: Mark as CodeSourcery build. 2006-01-26 Paul Brook Thumb-2 support. * gcc/doc/invoke.texi: Document -cpu=arm1156t2-s and -march=armv6t2 Document that -mthumb may enable Thumb-2. * gcc/config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_VEC_ELT): Set Thumb bit on Thumb-2 addresses. * gcc/config/arm/out.h (ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_VEC_ELT): Ditto. * gcc/config/arm/arm-cores.def: Add arm1156t2-s. * gcc/config/arm/arm-protos.h: Update and add function prototypes. * gcc/config/arm/arm-tune.md: Regenerate. * gcc/config/arm/arm.c (TARGET_ASM_FILE_START, FL_THUMB2, FL_FOR_ARCH6T2): Define. (arm_arch_thumb2, arm_condexec_count, arm_condexec_mask, arm_condexec_masklen): New variables. (ARM_LSL_NAME): Define. (THUMB2_WORK_REGS): Define. (all_architectures): Add 6T2. (arm_override_options): Set arm_arch_thumb2. Allow use of coprocessors in Thumb-2. (use_return_insn): Only use StrongARM workaround in Arm mode. (const_ok_for_arm): Handle Thumb-2 constants. (arm_gen_constant): Ditto. (legitimize_pic_address): Add Thumb-2. (arm_load_pic_register): Generate Thumb-2 sequence. (arm_call_tls_get_addr): Ditto. (legitimize_tls_address): Ditto. (thumb2_legitimate_address_p): New function. (thumb2_index_mul_operand): New function. (thumb2_legitimate_index_p): New function. (thumb_base_register_rtx_p, thumb_index_register_rtx_p, thumb_legitimate_address_p, thumb_rtx_costs, thumb_compute_save_reg_mask, thumb_final_prescan_insn, thumb_expand_prologue, thumb_expand_epilogue, thumb_output_function_prologue, thumb_cmp_operand, thumb_cmpneg_operand): Rename ... (thumb1_base_register_rtx_p, thumb1_index_register_rtx_p, thumb1_legitimate_address_p, thumb1_rtx_costs, thumb1_compute_save_reg_mask, thumb1_final_prescan_insn, thumb1_expand_prologue, thumb1_expand_epilogue, thumb1_output_function_prologue, thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this. Update callers. (arm_address_cost): Use arm routine for Thumb-2. (load_multiple_sequence): Only allow ldmib and ldmda in Arm mode. (emit_ldm_seq): Output unified assembly. (emit_stm_seq): Ditto. (arm_select_cc_mode): Treat Thumb-2 like Arm. (print_multi_reg): Don't print comma. (output_mov_long_double_fpa_from_arm): Output unified assebly. (output_mov_double_arm_from_fpa): Ditto. (output_move_double): Ditto. Disallow Arm specific addressing modes in Thumb-2 mode. (arm_shift_nmem): New function. (arithmetic_instr, shift_op): Use it. Use ARM_LSL_NAME. (arm_compute_save_reg0_reg12_mask): Handle Thumb-2 frames. (arm_compute_save_reg_mask): Don't create apcs frame for Thumb-2. Create scratch register if needed for PIC. (output_return_instruction): Only use StrongARM workaround in Arm mode. (arm_output_function_prologue): Threat Thumb-2 like Arm. (arm_output_epilogue): Implement Thumb-2. (arm_output_function_epilogue): Treat Thumb-2 like Arm. (arm_get_frame_offsets): Ditto. (arm_save_coproc_regs, thumb_set_frame_pointer): New function. (arm_expand_prologue): Use them. Handle Thumb-2. (arm_print_condition): New function. (arm_print_operand): Use it. Implement '(', ')', '.', '!' and 'L'. (thumb2_final_prescan_insn): New function. (thumb2_asm_output_opcode): New function. (arm_hard_regno_mode_ok): Treat Thumb-2 like Arm. (arm_regno_class): Implement thumb2 classes. (arm_file_start): New function. (arm_output_mi_thunk): Treat Thumb-2 like Arm. (thumb_set_return_address): Implement Thumb-2. (arm_output_shift): New function. * gcc/config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __thumb2__. (TARGET_THUMB1, TARGET_THUMB2, TARGET_32BIT, TARGET_UNIFIED_ASM): Define. (arm_arch_thumb2): Declare; (CONDITIONAL_REGISTER_USAGE): Enable coprocessor registers on Thumb-2. (STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES, CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR, SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS, REGISTER_MOVE_COST, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P, REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST, (HAVE_PRE_INCREMENT, HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP, HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG, PRINT_OPERAND_ADDRESS): Treat Thumb-2 like Arm. (CONST_OK_FOR_THUMB2_LETTER): Define. (CONST_OK_FOR_THUMB_LETTER, THUMB_TRAMPOLINE_TEMPLATE, THUMB_REGNO_MODE_OK_FOR_BASE_P, THUMB_REG_MODE_OK_FOR_BASE_P, THUMB_REG_MODE_OK_FOR_BASE_P, THUMB_REG_OK_FOR_INDEX_P, THUMB_GO_IF_LEGITIMATE_ADDRESS): Rename ... (CONST_OK_FOR_THUMB1_LETTER, THUMB_TRAMPOLINE_TEMPLATE, THUMB1_REGNO_MODE_OK_FOR_BASE_P, THUMB1_REG_MODE_OK_FOR_BASE_P, THUMB1_REG_MODE_OK_FOR_BASE_P, THUMB1_REG_OK_FOR_INDEX_P, THUMB1_GO_IF_LEGITIMATE_ADDRESS): ... to this. (CONST_OK_FOR_LETTER_P, TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, GO_IF_LEGITIMATE_ADDRESS, LEGITIMIZE_ADDRESS, ASM_APP_OFF, ARM_DECLARE_FUNCTION_NAME): Handle Thumb-2. (THUMB2_TRAMPOLINE_TEMPLATE): Define. (TRAMPOLINE_ADJUST_ADDRESS, ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS, ADJUST_INSN_LENGTH): Define. (PRINT_OPERAND_PUNCT_VALID_P): Add '(', ')', '.' and '!'. (PREFERRED_RELOAD_CLASS): Prefer LO_REGS for core integer reg classes. * gcc/config/arm/arm.md: Rename thumb_* thumb1_*. Make 16-bit thumb patterns conditional on TARGET_THUMB1. Replace '%?' with '%(', '%)' and '%.' as appropriate for unified assembly syntax. Enable many Arm patterns/expanders for Thumb-2. Add new "ce_count" attribute. Include thumb2.md (incscc, decscc, smaxsi3, sminsi3, umaxsi3, sminsi3, zero_extendsidi2, zero_extendqidi2, extendsidi2): Divide into define_expand and define_insn. (ne_zeroextractsi, minmax_arithsi): Insert IT instructions for Thumb-2. (arm_shiftsi3, shiftsi3_compare0, shiftsi3_compare0_scratch): Use arm_output_shift. (movhi, indirect_jump): Handle thumb2. (push_multi): Use push and pop for thumb2. (nop): Output "nop" in unified assembly. * gcc/config/arm/cirrus.md: Enable arithmetic patterns for Thumb-2. (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn, thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New. * gcc/config/arm/fpa.md: Enable arithmetic patterns for Thumb-2. (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa): New. (thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New. * gcc/config/arm/vfp.md: Enable arithmetic patterns for Thumb-2. (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp, thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New. * gcc/config/arm/predicates.md (low_register_operand): New predicate. (low_reg_or_int_operand, thumb_16bit_operator): New predicates. (thumb_cmp_operand, thumb_cmpneg_operand): Rename... (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this. * gcc/config/arm/lib1funcs.asm: Add __ARM_ARCH_6T2__. * gcc/config/arm/t-arm (MD_INCLUDES): Add thumb2.md * gcc/config/arm/thumb2.md: New file. 2006-05-02 Kazu Hirata Backport: 2006-05-02 Kazu Hirata PR target/27387 * arm.c (arm_output_mi_thunk): Use pc-relative addressing when -mthumb -fPIC are used. 2006-05-02 Kazu Hirata PR target/27387 * gcc.target/arm/arm.exp: New. * gcc.target/arm/pr27387.C: Likewise. 2006-05-02 Kazu Hirata Backport: 2006-05-01 Kazu Hirata PR target/27374 * gcc/config/arm/vfp.md (*arm_movdi_vfp): Correct the output templates for case 3 and 4. 2006-04-30 Mark Mitchell Backport: 2004-10-28 Pascal Obry * w32-shared-ptr.c: New file. * w32-shared-ptr.h: Likewise. 2006-04-28 Joseph S. Myers * gcc/gcc.c (process_command): Add program name to GCC_EXEC_PREFIX value before passing to make_relative_prefix. 2006-04-26 Joseph Myers From Bugzilla: 2006-04-26 Joshua Kinard PR target/25871 * gcc/config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves with 64-bit pointers. 2006-04-25 Joseph Myers * gcc/config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove. 2006-04-22 Carlos O'Donell * gcc/Makefile.in: Correct dependencies for gcc, cpp, gccint, and cppinternals html manuals. 2006-04-22 Joseph Myers * gcc/testsuite/gcc.c-torture/compile/20060421-1.c: New testcase. 2006-04-21 Carlos O'Donell * Makefile.tpl: Add install-html to install target. * Makefile.in: Regenerate. 2006-04-21 Carlos O'Donell * Makefile.tpl: Add install-html target. * Makefile.def: Add install-html target. * Makefile.in: Regenerate. * configure.in: Add --with-datarootdir, --with-docdir, and --with-htmldir options. AC_SUBST datarootdir, docdir and htmldir. * configure: Regenerate. * gcc/Makefile.in: Rename htmldir to gcc_htmldir. Add install-html target. Define HTMLS for all manuals. Simplify html target. * gcc/configure.ac: AC_SUBST datarootdir, docdir, and htmldir. * gcc/configure: Regenerate. * gcc/fortran/Make-lang.in: Rename htmldir to gcc_htmldir. * gcc/java/Make-lang.in: Likewise. * gcc/treelang/Make-lang.in: Likewise. * fixincludes/Makefile.in: Add install-html target. Fixup .PHONY listing. * intl/Makefile.in: Add html info ps pdf and dvi and install-html to .PHONY. Add install-html target. * libcpp/Makefile.in: Add install-html target. Add install-html to .PHONY list. * libstdc++-v3/Makefile.am: Add install-html target. * libstdc++-v3/aclocal.m4: Regenerate. * libstdc++-v3/Makefile.in: Regenerate. * libstdc++-v3/include/Makefile.in: Regenerate. * libstdc++-v3/libmath/Makefile.in: Regenerate. * libstdc++-v3/libsupc++/Makefile.in: Regenerate. * libstdc++-v3/po/Makefile.in: Regenerate. * libstdc++-v3/src/Makefile.in: Regenerate. * libstdc++-v3/testsuite/Makefile.in: Regenerate. * libmudflap/Makefile.am: Add install-html target. * libmudflap/Makefile.in: Regenerate. * libssp/Makefile.am: Add install-html target. * libssp/Makefile.in: Regenerate. * fastjar/Makefile.am: Add install-html target. * fastjar/Makefile.in: Regenerate. * fastjar/aclocal.m4: Regenerate. * zlib/Makefile.am: Add install-html target. * zlib/Makefile.in: Regenerate. * zlib/aclocal.m4: Regenerate. * libobjc/Makefile.in: Add install-html target. * libffi/Makefile.am: Add install-html target. * libffi/Makefile.in: Regenerate. * libffi/aclocal.m4: Regenerate. * libffi/include/Makefile.in: Regenerate. * libffi/testsuite/Makefile.in: Regenerate. * libjava/Makefile.am: Add install-html target. * libjava/Makefile.in: Regenerate. * libjava/aclocal.m4: Regenerate. * libjava/classpath/Makefile.in: Regenerate. * libjava/classpath/aclocal.m4: Regenerate. * libjava/classpath/doc/Makefile.in: Regenerate. * libjava/classpath/doc/api/Makefile.am: Conditionalize html target. * libjava/classpath/doc/api/Makefile.in: Regenerate. * libjava/classpath/examples/Makefile.in: Regenerate. * libjava/classpath/external/Makefile.in: Regenerate. * libjava/classpath/external/sax/Makefile.in: Regenerate. * libjava/classpath/external/w3c_dom/Makefile.in: Regenerate. * libjava/classpath/include/Makefile.in: Regenerate. * libjava/classpath/lib/Makefile.in: Regenerate. * libjava/classpath/native/Makefile.in: Regenerate. * libjava/classpath/native/fdlibm/Makefile.in: Regenerate. * libjava/classpath/native/jawt/Makefile.in: Regenerate. * libjava/classpath/native/jni/Makefile.in: Regenerate. * libjava/classpath/native/jni/classpath/Makefile.in: Regenerate. * libjava/classpath/native/jni/gtk-peer/Makefile.in : Regenerate. * libjava/classpath/native/jni/java-io/Makefile.in: Regenerate. * libjava/classpath/native/jni/java-lang/Makefile.in: Regenerate. * libjava/classpath/native/jni/java-net/Makefile.in : Regenerate. * libjava/classpath/native/jni/java-nio/Makefile.in : Regenerate. * libjava/classpath/native/jni/java-util/Makefile.in: Regenerate. * libjava/classpath/native/jni/midi-alsa/Makefile.in: Regenerate. * libjava/classpath/native/jni/midi-dssi/Makefile.in: Regenerate. * libjava/classpath/native/jni/qt-peer/Makefile.in: Regenerate. * libjava/classpath/native/jni/xmlj/Makefile.in: Regenerate. * libjava/classpath/native/target/Linux/Makefile.in: Regenerate. * libjava/classpath/native/target/Makefile.in: Regenerate. * libjava/classpath/native/target/generic/Makefile.in: Regenerate. * libjava/classpath/resource/Makefile.in: Regenerate. * libjava/classpath/scripts/Makefile.in: Regenerate. * libjava/gcj/Makefile.in: Regenerate. * libjava/include/Makefile.in : Regenerate. * libjava/testsuite/Makefile.in: Regenerate. * boehm-gc/Makefile.am: Add install-html target. * boehm-gc/Makefile.in: Regenerate. * boehm-gc/aclocal.m4: Regenerate. * boehm-gc/include/Makefile.in: Regenerate. * gnattools/Makefile.in: Add html and install-html targets. * libgfortran/Makefile.am: Add install-html target. * libgfortran/Makefile.in: Regenerate. * libada/Makefile.in: Add install-html target. 2006-04-21 Carlos O'Donell Backport from mainline. 2006-04-06 Carlos O'Donell * libiberty/Makefile.in: Add install-html, install-html-am, and install-html-recursive targets. Define mkdir_p and NORMAL_INSTALL. * libiberty/configure.ac: AC_SUBST datarootdir, docdir, htmldir. * libiberty/configure: Regenerate. * libiberty/testsuite/Makefile.in: Add install-html and html targets. 2006-03-30 Carlos O'Donell * gcc/Makefile.in: Rename docdir to gcc_docdir. * gcc/java/Make-lang.in: Rename docdir to gcc_docdir. * gcc/ada/Make-lang.in: Rename docdir to gcc_docdir. * gcc/fortran/Make-lang.in: Rename docdir to gcc_docdir. * gcc/treelang/Make-lang.in: Rename docdir to gcc_docdir. 2006-04-11 Kazu Hirata Backport from mainline. 2006-03-13 Roger Sayle PR middle-end/26557 * gcc/stmt.c (emit_case_nodes): Handle the case where the index is a CONST_INT, where the comparison mode is specified by the index type. 2006-03-13 Roger Sayle PR middle-end/26557 * gcc/gcc.c-torture/compile/switch-1.c: New test case. 2006-04-04 Carlos O'Donell * gcc/testsuite/gcc.dg/struct-parse-1.c: New test case. 2006-03-31 Nathan Sidwell * gcc/stor-layout.c: Place invalid field at the current end of the structure or start of union, to maintain placement invariants. 2006-04-02 Paul Brook Backport form mainline. * gcc/testsuite/gcc.c-torture/execute/loop-ivopts-3.c: New test. 2006-01-14 Zdenek Dvorak * gcc/tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several functions. (number_of_iterations_ne, number_of_iterations_lt_to_ne, assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt, number_of_iterations_le): New functions. (number_of_iterations_special): Removed. (number_of_iterations_exit): Do not use number_of_iterations_special. * gcc/tree.c (unsigned_type_for): Always return integer type. * gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c: Update outcome. Add new test loop. * gcc/testsuite/gcc.dg/tree-ssa/pr19210-2.c: Ditto. 2005-01-06 Zdenek Dvorak PR tree-optimization/18527 * gcc/tree-ssa-loop-niter.c (number_of_iterations_cond, number_of_iterations_special, number_of_iterations_exit): Move base and step of an iv to a single structure. Add no_overflow flag, and use it in # of iterations analysis. * gcc/tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add folded_casts argument. (simple_iv): Pass base and step in a structure. Set no_overflow flag. (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop. Evaluate expensiveness of computing # of iterations instead of the final expression. * gcc/tree-scalar-evolution.h (affine_iv): New structure. (simple_iv): Declaration changed. * gcc/tree-chrec.c (chrec_apply): Handle chrecs containing symbols. * gcc/tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev, find_givs_in_stmt): Changed due to simple_iv change. 2006-03-30 Mark Mitchell * libiberty/cygpath.c (fopen): Allocate MAX_PATH + 1 bytes for the filename. (open): Likewise. (stat): Likewise. (access): Likewise. 2006-03-30 Mark Mitchell * libiberty/configure.ac: Add cygpath for mingw hosts. * libiberty.configure: Rebuilt. * libiberty/Makefile.in: Add cygpath. * libiberty/cygpath.c: New. 2006-03-28 Paul Brook PR middle-end/23623 * gcc/targhooks.c (default_narrow_bitfield): New fuction. * gcc/targhooks.h (default_narrow_bitfield): add prototype. * gcc/target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define. * gcc/doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS. * gcc/config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define. 2006-03-28 Paul Brook * gcc/reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators. (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses. 2006-03-27 Jim Blandy * include/libiberty.h (pex_write_input): New declaration. * libiberty/pex-common.c (pex_write_input): New function. * libiberty/pexecute.txh (pex_write_input): Document it. * libiberty/pex-common.h (struct pex_funcs): New function ptr fdopenw. * libiberty/pex-unix.c (pex_unix_fdopenw): New function. (funcs): List it as our fdopenw function. * libiberty/pex-win32.c (pex_win32_fdopenw): New function. (funcs): List it as our fdopenw function. * libiberty/pex-djgpp.c (funcs): Leave fdopenw null. * libiberty/pex-msdos (funcs): Same. * libiberty/functions.texi: Regenerated. * libiberty/pex-common.h (struct pex_obj): Doc fixes. * libiberty/functions.texi: Regenerate. 2006-03-27 Mark Mitchell * libiberty/pex-win32.c (pex_win32_exec_child): Close stdout/stderr in parent. 2006-03-24 Mark Mitchell Joseph S. Myers PR libstdc++/20448 PR libstdc++/20451 * libstdc++-v3/scripts/testsuite_flags.in (--cxxflags): Don't define LOCALEDIR. * libstdc++-v3/testsuite/lib/libstdc++.exp (libstdc++_init): Always define LOCALEDIR to ".". (v3-build_support): Build MO files. 2006-03-20 Mark Mitchell * libiberty/pex-win32.c (): Include. (fix_argv): Remove. (argv_to_cmdline): New function. (std_suffixes): New variable. (no_suffixes): Likewise. (find_executable): New function. (win32_spawn): Likewise. (spawn_script): Use win32_spawn instead of _spawnv[p]. (pex_win32_exec_child): Replace MSVCRT calls with Win32 API calls. (pex_win32_wait): Likewise. 2006-03-17 Joseph Myers * gcc/dwarf2.h (DW64_CIE_ID): Define. * gcc/dwarf2out.c (DWARF_CIE_ID): Define. (output_call_frame_info): Output 0xffffffff before standard 8-byte length header. Use DWARF_CIE_ID. (value_format): Use DW_FORM_data4 or DW_FORM_data8 for dw_val_class_loc_list depending on DWARF_OFFSET_SIZE. 2006-03-17 Carlos O'Donell * gcc/doc/invoke.texi: Define -femit-class-debug-always. * gcc/common.opts: Likewise. * gcc/cp/search.c (maybe_suppress_debug_info): Suppress debug info if flag_emit_class_debug_always is zero. 2006-03-17 Richard Sandiford Backport from mainline: * gcc/config.gcc (mips64*-*-linux*): Keep existing tm_defines. (mips*-*-linux*): Likewise. 2006-03-16 Joseph S. Myers * gcc/config.gcc (tm_defines): Always add to previous value rather than replacing it. 2006-03-15 Paul Brook Backport from mainline. * gcc/config/arm/arm.c (minipool_pad): New. (add_minipool_forward_ref): Unclude pool alignment padding in address calculation. (push_minipool_fix): Set minipool_pad. (minipool_pad): Ditto. 2006-02-27 Nathan Sidwell Backport the following * gcc/config.gcc (mt-*-*): Add --with-arch support. (--with): Print accepted options on error. * gcc/config/mt/mt.h (OPTION_DEFAULT_SPECS): Define. * gcc/config/mt/mt.c (DEF_VEC_P(basic_block), DEF_VEC_ALLOC_P(basic_bloc,heap)): Remove from here. * gcc/config/mt/mt.md (UNSPEC_LOOP): New constant. (loop_end, loop_init, doloop_end): New insns. * gcc/config/mt/mt.h (LOOP_FIRST, LOOP_LAST): New. (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust. (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust. (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust. * gcc/config/mt/mt.c: #include basic-block.h (struct machine_function): Add has_loops field. (mt_add_loop): New. (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New. (struct loop_info, struct loop_work): New. (mt_loop_nesting, ms1_block_length, ms1_scan_loop): New workers. (mt_reorg_loops): New loop optimization. (mt_machine_reorg): Call it. * gcc/config/mt/mt-protos.h (mt_add_loop): Declare. * gcc/vec.h (VEC_block_remove): New. * gcc/loop-doloop.c (add_test): Only add jump notes if we did emit a jump. 2006-02-18 Joseph S. Myers PR target/24837 * gcc/config.gcc: Define UCLIBC_DEFAULT to 0 or 1. * gcc/opth-gen.awk: Handle Var and InverseMask together. * gcc/config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc). * gcc/config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT. (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC. (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc used together. (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. * gcc/config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER): Define. (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER. * gcc/config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. * gcc/config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define. (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option. * gcc/config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. (TARGET_C99_FUNCTIONS): Don't define. * gcc/config/i386/linux.h (DYNAMIC_LINKER): Rename to GLIBC_DYNAMIC_LINKER. (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER. * gcc/config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and LINUX_DYNAMIC_LINKER64. * gcc/config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * gcc/config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * gcc/config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * gcc/config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64 and LINUX_DYNAMIC_LINKER32. * gcc/config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * gcc/config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * gcc/config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. * gcc/config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise. (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32. (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64. * gcc/config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER): Define. (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE. * gcc/config/s390/linux.h (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and LINUX_DYNAMIC_LINKER64. * gcc/config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define. (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * gcc/config/sparc/linux.h (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. * gcc/config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32. (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64. (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. * gcc/config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * gcc/doc/invoke.texi (-muclibc): Remove caveat about supported targets. * gcc/testsuite/gcc.dg/glibc-uclibc-1.c, gcc/testsuite/gcc.dg/glibc-uclibc-2.c: New tests. 2006-02-16 Joseph S. Myers PR libstdc++/14939 PR target/20353 PR target/24578 PR target/24837 * gcc/config/linux.opt: New file. * gcc/config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER): Define. (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC. * gcc/config.gcc (*-*-linux*): Define extra_options. (*-*-*uclibc*): Define UCLIBC_DEFAULT. (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi. * gcc/config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to GLIBC_DYNAMIC_LINKER. * gcc/config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise. (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * gcc/config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define. (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. * gcc/doc/invoke.texi (GNU/Linux Options): New section. * gcc/testsuite/gcc.dg/builtins-config.h (HAVE_C99_RUNTIME): Don't define if __UCLIBC__ is defined. * libstdc++-v3/config/os/uclibc/ctype_base.h, libstdc++-v3/config/os/uclibc/ctype_inline.h, libstdc++-v3/config/os/uclibc/ctype_noninline.h, libstdc++-v3/config/os/uclibc/os_defines.h: New. * libstdc++-v3/acinclude.m4 (GLIBCXX_CONFIGURE): Test whether using uClibc. * libstdc++-v3/configure.host: Use os/uclibc for uClibc. * libstdc++-v3/crossconfig.m4 (*-linux*): Use link tests. Don't hardcode presence of math functions. * libstdc++-v3/configure: Regenerate. 2005-02-16 Paul Brook * reload1.c (emit_reload_insns): Invalidate dead input registers used for reloads. 2006-02-01 Paul Brook Backport form mainline. * gcc/function.c (assign_parm_setup_reg): Use function argument promotion rules. * gcc/expr.c (expand_expr_real_1): Use function argument promotion rules for PARM_DECLs. 2006-01-27 Paul Brook * version.c: Mark as CodeSourcery build. 2006-01-24 Joseph Myers Backport from mainline. 2006-01-23 Adam Nemet * fix-header.c (read_scan_file): Add new parameter imultilib when calling register_include_chains. 2006-01-23 Julian Brown Backport from mainline. 2006-01-23 Kazu Hirata PR testsuite/25590 * gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11.c: Add -fwrapv. 2006-01-20 Paul Brook Merge from csl-arm-branch. 2005-09-21 Kazu Hirata * gcc/config/arm/arm.md (movdi): Force operands[1] to a register if we have a non-register source. (*arm_movdi, *movdf_soft_insn): Require that one of the operands be a register. * gcc/config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise. * gcc/config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise. 2006-01-20 Joseph S. Myers PR libstdc++/25524 * gcc/cppdefault.h (struct default_include): Add multilib flag. * gcc/cppdefault.c (cpp_include_defaults): Set it. * gcc/c.opt (-imultilib): New option. * gcc/c-opts.c (imultilib): New. (c_common_handle_option): Handle -imultilib. (c_common_post_options): Likewise. * gcc/c-incpath.c (add_standard_paths, register_include_chains): Likewise. * gcc/c-incpath.h (register_include_chains): Add extra parameter. * gcc/gcc.c (do_spec_1): Generate -imultilib option. (The Specs Language): Update %I description. (process_command): Update copyright notice. * gcc/doc/cppopts.texi (-imultilib): Document. * gcc/doc/invoke.texi (-imultilib): Include in option summary. (%I): Update specs documentation. * libstdc++-v3/include/Makefile.am: Install host-specific headers in multilib subdirectory. * libstdc++-v3/include/Makefile.in: Regenerate. 2006-01-20 Julian Brown Merge from csl-gxxpro-3_4-branch. 2005-11-28 Mark Mitchell Backport: 2004-10-28 Pascal Obry * unwind-dw2-fde.c: Import from MingW build for ZCX support. * unwind-sjlj.c: Idem. * config/i386/cygming.h: Idem. * config/i386/mingw32.h: Idem. * config/i386/t-cygming: Idem. * config/i386/t-mingw32: Idem. * config/i386/win32-ehfb.c: New file to support unwinding through signals on Windows. Provides support for ZCX on Windows platforms. This set of patch comes from the MingW compiler (Danny Smith) adapted and enhanced to support unwinding through signals for example. 2005-07-29 Pascal Obry Support for crtbegin/crtend.o on MingW. * config.gcc: Add crtbegin.o and crtend.o as extra_parts on MingW. * crtstuff.c: Add support for MingW. Provides support for ZCX on Windows platforms. This set of patch comes from the MingW compiler (Danny Smith) adapted to GCC 3.4. 2006-01-20 Julian Brown Backport from mainline. 2006-01-02 Mark Mitchell * libstdc++-v3/src/Makefile.am (LTLDFLAGS): New variable. (CXXLINK): Use LTLDFLAGS. * libstdc++-v3/src/Makefile.in: Regenerated. * libstdc++-v3/libsupc++/Makefile.am (LTLDFLAGS): New variable. (CXXLINK): Use LTLDFLAGS. * libstdc++-v3/libsupc++/Makefile.in: Regenerated. 2006-01-02 Mark Mitchell * libtool-ldflags: New script. 2006-01-20 Julian Brown Merge from csl-gxxpro-3_4-branch: 2005-09-14 Mark Mitchell * gcc/config/vx-common.h (DBX_DEBUGGING_INFO): Define to 1. 2006-01-20 Julian Brown Backport from mainline. 2005-11-23 Mark Mitchell * gcc/doc/invoke.texi: For man pages, include gcc-vers.texi. List @file in the option summary. Include the libiberty documentation for @file. * gcc/gcc.c (main): Call expandargv. * gcc/Makefile.in (gcc-vers.texi): Define srcdir. 2005-11-23 Mark Mitchell * maintainer-scripts/update_web_docs_svn: Set @srcdir in gcc-vers.texi. 2006-01-20 Paul Brook Merge from csl-arm-branch. 2005-10-20 Paul Brook * config/arm/arm.c (arm_default_cpu): New. (arm_override_options): Set arm_default_cpu. (arm_file_start): Output EABI attribute directives. 2006-01-20 Paul Brook Merge from csl-arm-branch. 2005-10-20 Paul Brook * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED from priority argument. Use different section names for non-default priority. * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY. 2006-01-18 Paul Brook Merge from csl-arm-branch. 2005-03-14 Julian Brown * gcc/config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS. (aeabi_llsl): Likewise. (ashrdi3): Likewise. (aeabi_lasr): Likewise. (lshrdi3): Likewise. (aeabi_llsr): Likewise. 2005-03-10 Julian Brown * gcc/config.gcc: Disable shared libgcc for SymbianOS. * gcc/config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c. 2006-01-18 Paul Brook Merge from csl-arm-branch 2005-03-10 Julian Brown * libstdc++configure.ac (LIBSUPCXX_PRONLY): New AM_CONDITIONAL: yes if we are compiling for SymbianOS on ARM. * libstdc++include/Makefile.am: Don't install C++ headers if LIBSUPCXX_PRONLY is true. * libstdc++libsupc++/Makefile.am: Include only eh_personality.cc in libsupc++ if LIBSUPCXX_PRONLY is true. * libstdc++Makefile.in: Regenerate. * libstdc++configure: Regenerate. * libstdc++include/Makefile.in: Regenerate. * libstdc++libmath/Makefile.in: Regenerate. * libstdc++libsupc++/Makefile.in: Regenerate. * libstdc++po/Makefile.in: Regenerate. * libstdc++src/Makefile.in: Regenerate. * libstdc++testsuite/Makefile.in: Regenerate. 2005-01-17 Paul Brook Backport from mainline. 2005-12-13 Carlos O'Donell * gcc/c-cppbuiltin.c (builtin_define_float_constants): Add fp_cast parameter, pass to builtin_define_with_hex_fp_value. Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__. (builtin_define_with_hex_fp_value): Use fp_cast when building macro. (c_cpp_builtins): If flag_single_precision_constant then set fp_cast to "((double)%sL)" otherwise "%s". * gcc/testsuite/gcc.dg/single-precision-constant.c: New test. * libstdc++-v3/include/std/std_limits.h (struct numeric_limits): Use __DBL_HAS_DENORM__, __FLT_HAS_DENORM__, __LDBL_HAS_DENORM__. 2005-01-17 Paul Brook Backport from mainline. 2005-12-15 Richard Sandiford * gcc/config/arm/predicates.md (call_memory_operand): New. * gcc/config/arm/arm.md (*call_mem, *call_value_mem): Use it. * gcc/testsuite/gcc.dg/20051215-1.c: New file. * gcc/config/arm/arm.md: Provide a big-endian version of the (zero_extend:SI (subreg:QI ...)) splitter. 2006-01-16 Paul Brook * config/m68k/m68k.c (output_move_const_into_data_reg): Output correct mnemonic for mvz and mvs. 2006-01-03 Paul Brook * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr. 2005-12-30 Paul Brook * config/m68k/m68k.md: Convert define_peephole to define_peephole2. (UNSPEC_MOVEQ_MEM): New constant. (movsi_smallconst): New pattern. * config/m68k/m68k.h (HARD_FP_REG_P): Define. 2005-12-30 Paul Brook PR target/23482 * doc/md.texi: Document m68k Q, S, T and U constraints. * config/m68k/m68k.h (EXTRA_CONSTRAINTS): Restrict U to 16-bit offsets. 2005-12-29 Paul Brook * config/m68k/m68k.h (RETURN_ADDR_RTX): Define. * config/m68k/m68k.c (m68k_initial_elimination_offset): Remove FIXME. Include offset due to FIRST_PARM_OFFSET. 2005-12-29 Paul Brook * config/m68k/lb1sf68.asm (__cmpdf2): Fix typo in immediate mask. Create wrapper and rename body... (__cmpdf2_internal): ... to this. Return correct value for unordered result. (__cmpsf2): Create wrapper and rename body... (__cmpsf2_internal): ... to this. Return corerct value for unordered result. (__eqdf2, __nedf2, __gtdf2, __gedf2, __ltdf2, __ledf2): Use __cmpdf2_internal. (__eqsf2, __nesf2, __gtsf2, __gesf2, __ltsf2, __lesf2): Use __cmpsf2_internal. 2005-12-29 Paul Brook * config/m68k/fpgnulib.c (__extendsfdf2): Handle negative zero. (__truncdfsf2): Ditto. (__extenddfxf2): Ditto. (__truncxfdf2): Ditto. * config/m68k/lb1sf68.asm (__addsf3): Return -0.0 for -0.0 + -0.0. (__adddf3): Ditto. 2005-12-29 Daniel Jacobowitz Paul Brook * gcc/config/m68k/m68k.c (m68k_output_pic_call): Don't use bsr.l for !TARGET_68020. * gcc/config/m68k/t-m68kelf (EXTRA_PARTS): Remove. (EXTRA_MULTILIB_PARTS): Set. * gcc/config/m68k/t-uclinux (EXTRA_PARTS): Remove. (EXTRA_MULTILIB_PARTS): Set. 2005-12-21 Paul Brook * gcc/testsuite/gcc.dg/pr19340.c: Skip on m68k targets. 2005-12-20 Paul Brook * gcc/testsuite/lib/target-supports.exp (check_profiling_available): Add m68k-*-elf. 2005-12-17 Paul Brook * gcc/config/m68k/m68k.md (m68k_output_function_prologue): Always call dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset when frame_pointer_needed. 2005-12-02 Paul Brook * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2, __floatunsidf, __floatunsisf, __floatunsixf): New functions. 2005-11-28 Paul Brook * config.gcc: Don't use fixproto on m68k-elf.