summaryrefslogtreecommitdiff
path: root/gcc/config/i386
Commit message (Collapse)AuthorAgeFilesLines
* * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,jsm282009-04-2115-1/+283
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002, ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib, ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog, FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4, config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h, config/alpha/x-vms, config/arc/t-arc, config/arm/README-interworking, config/arm/arm-c.c, config/arm/gentune.sh, config/arm/libgcc-bpabi.ver, config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp, config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi, config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf, config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe, config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver, config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf, config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux, config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris, config/cris/t-elfmulti, config/crx/t-crx, config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def, config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver, config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh, config/h8300/t-h8300, config/i386/athlon.md, config/i386/darwin-libgcc.10.4.ver, config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver, config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc, config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386, config/i386/t-linux64, config/i386/t-nwld, config/i386/t-rtems-i386, config/i386/t-sol2-10, config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h, config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver, config/ia64/linux.h, config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64, config/iq2000/abi, config/iq2000/lib2extra-funcs.c, config/iq2000/t-iq2000, config/libgcc-glibc.ver, config/m32r/libgcc-glibc.ver, config/m32r/t-linux, config/m32r/t-m32r, config/m68hc11/t-m68hc11, config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs, config/m68k/t-uclinux, config/mcore/t-mcore, config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md, config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm, config/mips/crtn.asm, config/mips/irix-crti.asm, config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver, config/mips/mips-dsp.md, config/mips/mips-dspr2.md, config/mips/mips-fixed.md, config/mips/sb1.md, config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast, config/mips/t-iris6, config/mips/t-isa3264, config/mips/t-libgcc-mips16, config/mips/t-linux64, config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems, config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk, config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st, config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix, config/mn10300/t-linux, config/mn10300/t-mn10300, config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux, config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11, config/picochip/libgccExtras/clzsi2.asm, config/picochip/t-picochip, config/rs6000/darwin-ldouble-format, config/rs6000/darwin-libgcc.10.4.ver, config/rs6000/darwin-libgcc.10.5.ver, config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h, config/rs6000/t-aix43, config/rs6000/t-aix52, config/rs6000/t-darwin, config/rs6000/t-fprules, config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64, config/rs6000/t-lynx, config/rs6000/t-netbsd, config/rs6000/t-ppccomm, config/rs6000/t-ppcendian, config/rs6000/t-ppcgas, config/rs6000/t-rs6000, config/rs6000/t-rtems, config/rs6000/t-spe, config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver, config/score/t-score-elf, config/sh/divcost-analysis, config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh, config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian, config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h, config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h, config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2, config/stormy16/stormy-abi, config/stormy16/t-stormy16, config/t-darwin, config/t-libunwind, config/t-libunwind-elf, config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver, config/t-slibgcc-sld, config/t-sol2, config/t-vxworks, config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850, config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def, gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog, java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver, limitx.h, version.c, xcoff.h: Add copyright and license notices. * config/h8300/genmova.sh: Include copyright and license notices in generated output. * config/h8300/mova.md: Regenerate. * doc/install.texi2html: Include word "Copyright" in copyright notice and use name "Free Software Foundation, Inc.". * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002, ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008: Correct dates. ada: * ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and license notices. cp: * ChangeLog, ChangeLog-1993, ChangeLog-1994, ChangeLog-1995, ChangeLog-1996, ChangeLog-1997, ChangeLog-1998, ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002, ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008, ChangeLog.ptr, ChangeLog.tree-ssa, NEWS, cfns.gperf: Add copyright and license notices. * cfns.h: Regenerate. * ChangeLog, ChangeLog-2004: Correct dates. fortran: * ChangeLog, ChangeLog-2002, ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008, ChangeLog.ptr, config-lang.in, ioparm.def, mathbuiltins.def: Add copyright and license notices. * ChangeLog, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008: Correct dates. java: * ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and license notices. objc: * ChangeLog: Add copyright and license notices. objcp: * ChangeLog: Add copyright and license notices. po: * ChangeLog, EXCLUDES: Add copyright and license notices. testsuite: * ChangeLog, ChangeLog-1993-2007, ChangeLog-2008, ChangeLog.ptr, ChangeLog.tree-ssa, README, README.QMTEST, README.compat, README.gcc, g++.dg/README, g++.dg/compat/break/README, g++.dg/gomp/gomp.exp, g++.old-deja/g++.brendan/README, g++.old-deja/g++.oliva/ChangeLog, g++.old-deja/g++.robertl/README, gcc.c-torture/ChangeLog.0, gcc.c-torture/execute/builtins/builtins.exp, gcc.dg/README, gcc.dg/gomp/gomp.exp, gcc.target/frv/frv.exp, gcc.target/i386/math-torture/math-torture.exp, gcc.target/mips/inter/mips16-inter.exp, gcc.target/mips/mips-nonpic/README, gcc.target/x86_64/abi/README.gcc, gcc.target/xstormy16/xstormy16.exp, gcc.test-framework/README, gfortran.dg/g77/README, gfortran.dg/gomp/gomp.exp, gfortran.fortran-torture/ChangeLog.g95: Add copyright and license notices. * ChangeLog-1993-2007, ChangeLog: Correct dates. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146533 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-04-21 Kai Tietz <kai.tietz@onevision.com>ktietz2009-04-213-0/+62
| | | | | | | | | | | | | | | | * config.gcc: Add additional configuration for i686-w64-mingw* and x86_64-w64-mingw* triplet. * config/i386/mingw-w64.h: New mingw-w64 specific header. (CPP_SPEC): Redefine for allowing -municode option. (STARTFILE_SPEC): Likewise. * config/i386/t-mingw-w64: New. * config/i386/mingw-w64.opt: New. (municode): Add new target option. * doc/invoke.texi (municode): Add documentation for new option. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146529 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/:ian2009-04-203-27/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix enum conversions which are invalid in C++: * auto-inc-dec.c (attempt_change): Change 0 to SET in function call. * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call. * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call. * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type. * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call. (dbxout_parms): Likewise. * df-core.c (df_set_flags): Change changeable_flags parameter to int. (df_clear_flags): Likewise. * df-problems.c (df_rd_bb_local_compute_process_def): Change top_flag parameter to int. (df_chain_create_bb_process_use): Likewise. (df_chain_add_problem): Change chain_flags parameter to unsigned int. Remove cast. * df-scan.c (df_ref_create): Change ref_flags parameter to int. (df_ref_create_structure, df_def_record_1): Likewise. (df_defs_record, df_uses_record, df_get_call_refs): Likewise. (df_notes_rescan): Change 0 to VOIDmode in function call. (df_get_call_refs, df_insn_refs_collect): Likewise. (df_bb_regs_collect): Likewise. (df_entry_block_defs_collect): Likewise. (df_exit_block_uses_collect): Likewise. * df.h: Update declarations. * double-int.c (double_int_divmod): Add cast to enum type. * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode. * dwarf2out.c (new_reg_loc_descr): Add casts to enum type. (based_loc_descr): Likewise. (loc_descriptor_from_tree_1): Change first_op and second_op to enum dwarf_location_atom. Add cast to enum type. * expmed.c (init_expmed): Change 0 to SET in function call. * expr.c (init_expr_target): Change 0 to VOIDmode in function call. (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call. (do_store_flag): Likewise. * fixed-value.h (struct fixed_value): Change mode to enum machine_mode. * function.c (assign_parms): Change 0 to VOIDmode in function call. * genautomata.c (insert_automaton_decl): Change 1 to INSERT in function call. (insert_insn_decl, insert_decl, insert_state): Likewise. (automata_list_finish): Likewise. * genrecog.c (process_define_predicate): Add cast to enum type. * gensupport.c (init_predicate_table): Add cast to enum type. * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in function call. (gimple_build_call_1, gimple_build_label): Likewise. (gimple_build_goto, gimple_build_asm_1): Likewise. (gimple_build_switch_1, gimple_build_cdt): Likewise. * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call. (enum fallback): Rename from enum fallback_t. (fallback_t): Typedef as int. * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to GSI_SAME_STMT in function call. * ira.c (setup_class_subset_and_memory_move_costs): Add casts to enum type. (setup_reg_class_relations): Likewise. (setup_reg_class_nregs): Change cl to int. Add casts to enum type. (setup_prohibited_class_mode_regs): Add cast to enum type. (setup_prohibited_mode_move_regs): Likewise. * ira-costs.c (record_reg_classes): Change rclass to enum reg_class. (record_address_regs): Change i to enum reg_class. * lists.c (alloc_EXPR_LIST): Add cast to enum type. * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class. (GET_MODE_WIDER_MODE): Cast value to enum machine_mode. (GET_MODE_2XWIDER_MODE): Likewise. (GET_CLASS_NARROWEST_MODE): Likewise. * omp-low.c (expand_omp_for): Add cast to enum type. * optabs.c (debug_optab_libfuncs): Add casts to enum type. * opts.c (enable_warning_as_error): Change kind to diagostic_t. * postreload.c (reload_cse_simplify_operands): Change rclass local to enum reg_class. * predict.c (combine_predictions_for_insn): Change best_predictor and predictor to enum br_predictor. (combine_predictions_for_bb): Likewise. (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to use SET_PREDICT_EXPR_OUTCOME. * real.c (real_arithmetic): Change icode to code in function call. * reginfo.c (init_move_cost): Add casts to enum type. (init_reg_sets_1, init_fake_stack_mems): Likewise. * regmove.c (regclass_compatible_p): Change class0 and class1 to enum reg_class. * reload.c (find_valid_class): Add casts to enum type. (push_reload): Change 0 to NO_REGS in function call. (find_reloads): Change this_alternative to array of enum reg_class. Remove some now-unnecessary casts. (make_memloc): Change 0 to VOIDmode in function call. * reload1.c (reload): Change 0 to VOIDmode in function call. (eliminate_regs_1, elimination_effects): Likewise. (eliminate_regs_in_insn): Likewise. (emit_input_reload_insns): Add cast to enum type. (delete_output_reload): Change 0 to VOIDmode in function call. * reorg.c (insn_sets_resource_p): Convert include_delayed_effects to enum type in function call. * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type. (SET_PREDICT_EXPR_OUTCOME): Define. * tree-dump.c (get_dump_file_info): Change phase parameter to int. (get_dump_file_name, dump_begin, dump_enabled_p): Likewise. (dump_initialized_p, dump_flag_name, dump_end): Likewise. (dump_function): Likewise. * tree-dump.h: Update declarations. * tree-pass.h: Update declarations. * varasm.c (assemble_integer): Change mclass to enum mode_class. * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to enum type. (arm_rtx_costs_1): Correct parenthesization. (arm_rtx_costs): Add casts to enum type. (adjacent_mem_locations): Reverse arguments to const_ok_for_op. (vfp_emit_fstmd): Use add_rg_note. (emit_multi_reg_push, emit_sfm): Likewise. (thumb_set_frame_pointer): Likewise. (arm_expand_prologue): Likewise. (arm_regno_class): Change return type to enum reg_class. (thumb1_expand_prologue): Use add_reg_note. * config/arm/arm-protos.h (arm_regno_class): Update declaration. * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL in function call. * config/arm/gentune.sh: Add cast to enum type. * config/arm/arm-tune.md: Rebuild. * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note. (ix86_split_fp_branch, predict_jump): Likewise. (ix86_expand_multi_arg_builtin): Change sub_code from enum insn_code to enum rtx_code. (ix86_builtin_vectorized_function): Add cast to enum type. * config/i386/i386.md (truncdfsf2): Change slot to enum ix86_stack_slot. (truncxf<mode>2, isinf<mode>2): Likewise. * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to enum type. * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note. (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise. (insert_bundle_state): Change 1 to INSERT in function call. (ia64_add_bundle_selector_before): Likewise. * config/ia64/ia64.md (cpu attr): Add cast to enum type. (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call. (restore_stack_nonlocal): Likewise. * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in function call. * config/mips/mips.c (mips_binary_cost): Change 0 to SET in function call. (mips_rtx_costs): Likewise. (mips_override_options): Add casts to enum type. * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in function call. * config/pa/pa.c (legitimize_pic_address): Use add_reg_note. (store_reg, set_reg_plus_d): Likewise. (hppa_expand_prologue, hppa_profile_hook): Likewise. * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add cast to enum type. (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in function call. (emit_unlikely_jump): Use add_reg_note. (rs6000_emit_allocate_stack): Likewise. (rs6000_frame_related, rs6000_emit_prologue): Likewise. (output_toc): Change 1 to INSERT in function call. (output_profile_hook): Change 0 to LCT_NORMAL in function call. (rs6000_initialize_trampoline): Likewise. (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in function call. * config/s390/s390.c (s390_rtx_costs): Add cast to enum type. (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call. (s390_expand_setmem, s390_expand_cmpmem): Likewise. (save_gprs): Use add_reg_note. (s390_emit_prologue): Likewise. (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call. * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note. (sparc_fold_builtin): Add cast to enum type. * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to enum insn_code. (spu_expand_prologue): Use add_reg_note. (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call. * c-parser.c (c_parser_attributes): Change VEC back to tree list. (c_parser_postfix_expression_after_primary): Get VEC for list of arguments. Get original types of arguments. Call build_function_call_vec. (cached_expr_list_1, cached_expr_list_2): New static variables. (c_parser_expr_list): Change return type to VEC *. Add p_orig_types parameter. Change all callers. (c_parser_release_expr): New static function. (c_parser_vec_to_tree_list): New static function. * c-typeck.c (build_function_call): Rewrite to build a VEC and call build_function_call_vec. (build_function_call_vec): New function, based on old build_function_call. (convert_arguments): Remove nargs and argarray parameters. Change values to a VEC. Add origtypes parameter. (build_modify_expr): Add rhs_origtype parameter. Change all callers. (convert_for_assignment): Add origtype parameter. Change all callers. If warn_cxx_compat, check for conversion to an enum type when calling a function. (store_init_value): Add origtype parameter. Change all callers. (digest_init): Likewise. (struct init_node): Add origtype field. (add_pending_init): Add origtype parameter. Change all callers. (output_init_element): Likewise. (output_pending_init_elements): Pass origtype from init_node to output_init_element. (process_init_elemnt): Pass origtype from c_expr to output_init_element. (c_finish_return): Add origtype parameter. Change all callers. * c-common.c (sync_resolve_size): Change params to VEC *. Change caller. (sync_resolve_params): Likewise. (sync_resolve_return): Change params to first_param. Change caller. (resolve_overloaded_builtins): Change params to VEC *. Change callers. Save first parameter around call to build_function_call_vec. * c-decl.c (finish_decl): Add origtype parameter. Change all callers. Call build_function_call_vec rather than build_function_call for cleanup. * c-tree.h: Update declarations. * c-common.h: Update declarations. * stub-objc.c (objc_rewrite_function_call): Change parameter from params to first_param. * target.h (struct gcc_target): Change resolve_overloaded_builtin params parameter from tree to void *. * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change arglist parameter to have type void *, and to be a pointer to a VEC. * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin): Update declaration. * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change fnargs parameter to have type void *, and to be a pointer to a VEC. Call build_function_call_vec instead of build_function_call. * config/spu/spu-protos.h (spu_expand_builtin): Update declaration. gcc/cp/: * typeck.c (build_function_call_vec): New function. (cp_build_function_call): Only pass first parameter to objc_rewrite_function_call. (build_modify_expr): Add rhs_origtype parameter. Change all callers. * decl.c (finish_decl): Add origtype parameter. Change all callers. * semantics.c (finish_call_expr): Pass VEC to resolve_overloaded_builtin. gcc/objc: * objc-act.c (objc_rewrite_function_call): Change parameter from params to first_param. Change all callers. gcc/testsuite: * gcc.dg/Wcxx-compat-3.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146451 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-04-20 Joey Ye <joey.ye@intel.com>hjl2009-04-204-4/+340
| | | | | | | | | | | | | | | | | | | | | | | | Xuepeng Guo <xuepeng.guo@intel.com> H.J. Lu <hongjiu.lu@intel.com> * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count. * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro. (IX86_LEA_PRIORITY): Likewise. (distance_non_agu_define): New function. (distance_agu_use): Likewise. (ix86_lea_for_add_ok): Likewise. (ix86_dep_by_shift_count): Likewise. * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we should split for LEA. * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new function. (ix86_dep_by_shift_count): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146443 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".davek2009-04-191-2/+2
| | | | | | | | (UINTPTR_TYPE): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146360 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update todavek2009-04-111-6/+17
| | | | | | | | | | match changes in Cygwin 1.7 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145949 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/hjl2009-04-091-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-04-09 H.J. Lu <hongjiu.lu@intel.com> PR target/39678 * config/i386/i386.c (classify_argument): Handle SCmode with (bit_offset % 64) != 0. gcc/testsuite/ 2009-04-09 H.J. Lu <hongjiu.lu@intel.com> PR target/39678 * g++.dg/torture/pr39678.C: New. * gcc.dg/compat/struct-complex-2.h: Likewise. * gcc.dg/compat/struct-complex-2_main.c: Likewise. * gcc.dg/compat/struct-complex-2_x.c: Likewise. * gcc.dg/compat/struct-complex-2_y.c: Likewise. * gcc.dg/torture/pr39678.c: Likewise. * gcc.target/i386/pr39678.c: Likewise. * gcc.dg/compat/struct-complex-1_x.c: Add -Wno-psabi. * gcc.dg/compat/struct-complex-1_y.c: Likewise. * gcc.target/x86_64/abi/test_passing_structs.c: Include <complex.h>. Add tests for structure with complex float. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145865 138bc75d-0d04-0410-961f-82ee72b054a4
* Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.jakub2009-04-0937-482/+358
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145841 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-04-09 Paolo Bonzini <bonzini@gnu.org>bonzini2009-04-092-102/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/i386/i386.md (cmpcc): New. * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG. (sync_compare_and_swap_cc*): Delete. * config/s390/s390.c (s390_compare_emitted): Remove. (s390_emit_compare): Handle MODE_CC s390_compare_op0 like s390_compare_emitted used to be handled. Assert that modes match. (s390_emit_compare_and_swap): Use s390_emit_compare, do not refer to sync_compare_and_swap_ccsi. * config/s390/s390.h (s390_compare_emitted): Remove. * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0 instead of s390_compare_emitted. (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0 instead of s390_compare_emitted. * config/s390/s390.md (cmpcc): New. (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber CC_REGNUM, do not pretend it's set. (sync_compare_and_swap_cc*): Delete. * config/s390/predicates.md (cc_reg_operand): New. * expr.c (sync_compare_and_swap_cc): Delete. * optabs.h (sync_compare_and_swap_cc): Delete. * optabs.c (prepare_cmp_insn): Ignore which specific CCmode is being used with can_compare_p. (emit_cmp_and_jump_insn_1): Likewise when looking in the optab. (find_cc_set): New. (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc, look for a MODE_CC set instead. Use emit_store_flag. (expand_compare_and_swap_loop): Likewise, with some additional complication to avoid a force_reg when useless. Use emit_cmp_and_jump_insns. * genopinit.c (optabs): Delete sync_compare_and_swap_cc. * doc/md.texi (sync_compare_and_swap_cc): Merge with sync_compare_and_swap documentation. java: 2009-04-09 Paolo Bonzini <bonzini@gnu.org> * builtins.c (compareAndSwapLong_builtin, compareAndSwapInt_builtin, compareAndSwapObject_builtin, VMSupportsCS8_builtin): Do not look at sync_compare_and_swap_cc. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145825 138bc75d-0d04-0410-961f-82ee72b054a4
* PR bootstrap/39660dannysmith2009-04-081-17/+22
| | | | | | | | | * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't mix declarations and code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145711 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-04-07 Paolo Bonzini <bonzini@gnu.org>bonzini2009-04-074-20/+13
| | | | | | | | | | | | | | * config/i386/i386.c (ix86_compare_emitted): Remove. (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC ix86_compare_op0 like ix86_compare_emitted used to be handled. * config/i386/i386.h (ix86_compare_emitted): Remove. * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0 instead of ix86_compare_emitted. * config/i386/sync.md (sync_compare_and_swap_cc): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145665 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-04-06 H.J. Lu <hongjiu.lu@intel.com>hjl2009-04-061-2/+4
| | | | | | | * config/i386/i386.md: Revert 2 accidental checkins. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145630 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-04-06 Joey Ye <joey.ye@intel.com>hjl2009-04-066-51/+1006
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Xuepeng Guo <xuepeng.guo@intel.com> H.J. Lu <hongjiu.lu@intel.com> Atom pipeline model, tuning and insn selection. * config.gcc (atom): Add atom config options and target. * config/i386/atom.md: New. * config/i386/i386.c (atom_cost): New cost. (m_ATOM): New macro flag. (initial_ix86_tune_features): Set m_ATOM. (x86_accumulate_outgoing_args): Likewise. (x86_arch_always_fancy_math_387): Likewise. (processor_target): Add Atom cost. (cpu_names): Add Atom cpu name. (override_options): Set Atom ISA. (ix86_issue_rate): New case PROCESSOR_ATOM. (ix86_adjust_cost): Likewise. * config/i386/i386.h (TARGET_ATOM): New target macro. (ix86_tune_indices): Add X86_TUNE_OPT_AGU. (TARGET_OPT_AGU): New target option. (target_cpu_default): Add TARGET_CPU_DEFAULT_atom. (processor_type): Add PROCESSOR_ATOM. * config/i386/i386.md (cpu): Add new value "atom". (use_carry, movu): New attr. (atom.md): Include atom.md. (adddi3_carry_rex64): Set attr "use_carry". (addqi3_carry): Likewise. (addhi3_carry): Likewise. (addsi3_carry): Likewise. (*addsi3_carry_zext): Likewise. (subdi3_carry_rex64): Likewise. (subqi3_carry): Likewise. (subhi3_carry): Likewise. (subsi3_carry): Likewise. (x86_movdicc_0_m1_rex64): Likewise. (*x86_movdicc_0_m1_se): Likewise. (x86_movsicc_0_m1): Likewise. (*x86_movsicc_0_m1_se): Likewise. (*adddi_1_rex64): Emit add insn as much as possible. (*addsi_1): Likewise. (return_internal): Set atom_unit. (return_internal_long): Likewise. (return_pop_internal): Likewise. (*rcpsf2_sse): Set atom_sse_attr attr. (*qrt<mode>2_sse): Likewise. (*prefetch_sse): Likewise. * config/i386/i386-c.c (ix86_target_macros_internal): New case PROCESSOR_ATOM. (ix86_target_macros_internal): Likewise. * config/i386/sse.md (cpu): Set attr "atom_sse_attr". (*prefetch_sse_rex): Likewise. (sse_rcpv4sf2): Likewise. (sse_vmrcpv4sf2): Likewise. (sse_sqrtv4sf2): Likewise. (<sse>_vmsqrt<mode>2): Likewise. (sse_ldmxcsr): Likewise. (sse_stmxcsr): Likewise. (*sse_sfence): Likewise. (sse2_clflush): Likewise. (*sse2_mfence): Likewise. (*sse2_lfence): Likewise. (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu". (<sse>_movup<ssemodesuffixf2c>): Likewise. (avx_movdqu<avxmodesuffix>): Likewise. (avx_lddqu<avxmodesuffix>): Likewise. (sse2_movntv2di): Change attr "type" to "ssemov". (sse2_movntsi): Likewise. (rsqrtv8sf2): Change attr "type" to "sseadd". (sse3_addsubv2df3): Set attr "atom_unit". (sse3_h<plusminus_insn>v4sf3): Likewise. (*sse2_pmaddwd): Likewise. (*vec_extractv2di_1_rex64): Likewise. (*vec_extractv2di_1_avx): Likewise. (sse2_psadbw): Likewise. (ssse3_phaddwv8hi3): Likewise. (ssse3_phaddwv4hi3): Likewise. (ssse3_phadddv4si3): Likewise. (ssse3_phadddv2si3): Likewise. (ssse3_phaddswv8hi3): Likewise. (ssse3_phaddswv4hi3): Likewise. (ssse3_phsubwv8hi3): Likewise. (ssse3_phsubwv4hi3): Likewise. (ssse3_phsubdv4si3): Likewise. (ssse3_phsubdv2si3): Likewise. (ssse3_phsubswv8hi3): Likewise. (ssse3_phsubswv4hi3): Likewise. (ssse3_pmaddubsw128): Likewise. (sse3_pmaddubsw: Likewise. (ssse3_palignrti): Likewise. (ssse3_palignrdi): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145624 138bc75d-0d04-0410-961f-82ee72b054a4
* * config.gcc (mingw32 tm_file): Add mingw-stdint.h.dannysmith2009-04-061-0/+50
| | | | | | | | | (mingw32 tm clause use_gcc_stdint): Set to wrap. * config/i386/mingw-stdint.h: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145582 138bc75d-0d04-0410-961f-82ee72b054a4
* * config.gcc (cygwin tm_file): Add cygwin-stdint.h.davek2009-04-051-0/+51
| | | | | | | | | (cygwin tm clause use_gcc_stdint): Set to wrap. * config/i386/cygwin-stdint.h: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145562 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>hjl2009-04-021-1/+3
| | | | | | | | * config/i386/i386.c (ix86_abi): Move initialization to ... (override_options): Here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145449 138bc75d-0d04-0410-961f-82ee72b054a4
* better m128i constant materializationdavidxl2009-04-011-3/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145418 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-04-01 Kai Tietz <kai.tietz@onevision.com>ktietz2009-04-011-2/+13
| | | | | | | | | | | | Andrey Galkin <agalkin@hypercom.com> PR/39492 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Make object_name unique for each process. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145394 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/39592jsm282009-03-311-4/+4
| | | | | | | | | | | | * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed define_splits, floatunssi<mode>2): Require x87 conversions from DImode to be permitted. testsuite: * gcc.target/i386/pr39592-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145342 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-03-30 H.J. Lu <hongjiu.lu@intel.com>hjl2009-03-301-7/+6
| | | | | | | | | PR target/38781 * config/i386/i386.c (classify_argument): Check total size of structure. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145292 138bc75d-0d04-0410-961f-82ee72b054a4
* PR rtl-optimization/323jsm282009-03-302-25/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.c (c_fully_fold, convert_and_check, c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR. (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR. * c-common.def (EXCESS_PRECISION_EXPR): New. * c-cppbuiltin.c (builtin_define_float_constants): Define constants with enough digits for long double. * c-lex.c (interpret_float): Interpret constant with excess precision where appropriate. * c-opts.c (c_common_post_options): Set flag_excess_precision_cmdline. Give an error for -fexcess-precision=standard for C++ for processors where the option is significant. * c-parser.c (c_parser_conditional_expression): Handle excess precision in condition. * c-typeck.c (convert_arguments): Handle arguments with excess precision. (build_unary_op): Move excess precision outside operation. (build_conditional_expr): Likewise. (build_compound_expr): Likewise. (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR. (build_modify_expr): Handle excess precision in RHS. (convert_for_assignment): Handle excess precision in converted value. (digest_init, output_init_element, process_init_element): Handle excess precision in initializer. (c_finish_return): Handle excess precision in return value. (build_binary_op): Handle excess precision in operands and add excess precision as needed for operation. * common.opt (-fexcess-precision=): New option. * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New. * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2): For standard excess precision, output explicit conversion to and truncation from XFmode. (*float<SSEMODEI24:mode><X87MODEF:mode>2_1, *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp, *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed define_splits, *floatunssi<mode>2_1, two unnamed define_splits, floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3, divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387, *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387, *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed define_splits, sqrt<mode>2): Disable where appropriate for standard excess precision. * convert.c (convert_to_real): Do not shorten arithmetic to type for which excess precision would be used. * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define. * doc/invoke.texi (-fexcess-precision=): Document option. (-mfpmath=): Correct index entry. * flags.h (enum excess_precision, flag_excess_precision_cmdline, flag_excess_precision): New. * langhooks.c (lhd_post_options): Set flag_excess_precision_cmdline. * opts.c (common_handle_option): Handle -fexcess-precision=. * toplev.c (flag_excess_precision_cmdline, flag_excess_precision, init_excess_precision): New. (lang_dependent_init_target): Call init_excess_precision. * tree.c (excess_precision_type): New. * tree.h (excess_precision_type): Declare. ada: * gcc-interface/misc.c (gnat_post_options): Set flag_excess_precision_cmdline. Give an error for -fexcess-precision=standard for processors where the option is significant. fortran: * options.c (gfc_post_options): Set flag_excess_precision_cmdline. Give an error for -fexcess-precision=standard for processors where the option is significant. java: * lang.c (java_post_options): Set flag_excess_precision_cmdline. Give an error for -fexcess-precision=standard for processors where the option is significant. testsuite: * gcc.target/i386/excess-precision-1.c, gcc.target/i386/excess-precision-2.c, gcc.target/i386/excess-precision-3.c, gcc.target/i386/excess-precision-4.c, gcc.target/i386/excess-precision-5.c, gcc.target/i386/excess-precision-6.c: New tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145272 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/hjl2009-03-291-2/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-03-29 H.J. Lu <hongjiu.lu@intel.com> PR target/39545 * config/i386/i386.c (classify_argument): Ignore flexible array member in struct and warn ABI change. gcc/testsuite/ 2009-03-29 H.J. Lu <hongjiu.lu@intel.com> PR target/39545 * gcc.c-torture/compile/pr16566-2.c: Add -Wno-psabi for x86-64. * gcc.target/i386/pr39545-1.c: New. * gcc.target/i386/pr39545-2.c: Likewise. * gcc.target/x86_64/abi/test_passing_structs.c (flex1_struct): New. (flex2_struct): Likewise. (check_struct_passing7): Likewise. (check_struct_passing8): Likewise. (f1s): Likewise. (f2s): Likewise. (main): Call check_struct_passing7 and check_struct_passing8. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145237 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>hjl2009-03-292-38/+32
| | | | | | | | | | * config/i386/i386-protos.h (ix86_agi_dependent): New. * config/i386/i386.c (ix86_agi_dependent): Rewrite. (ix86_adjust_cost): Updated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145235 138bc75d-0d04-0410-961f-82ee72b054a4
* Approved in http://gcc.gnu.org/ml/gcc-patches/2008-12/msg00733.html.bje2009-03-281-0/+7
| | | | | | | | | | | * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ. (ix86_init_builtins): Add built-in function __builtin_huge_valq. (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ. * doc/extend.texi (X86 Built-in Functions): Add index entries for __builtin_infq and __builtin_huge_valq. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145212 138bc75d-0d04-0410-961f-82ee72b054a4
* fixincludes:jsm282009-03-282-94/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * inclhack.def (aix_syswait, exception_structure, pthread_page_size): Remove. (math_exception): Remove mention of fixproto in comment. * fixincl.x: Regenerate. * mkheaders.in: Do not handle STMP_FIXPROTO. gcc: * config/arm/t-arm-coff, config/h8300/coff.h, config/i386/i386-aout.h, config/i386/i386-coff.h, config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h, config/pdp11/2bsd.h, config/rs6000/aix41.h, config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h, fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c, scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h, sys-types.h: Remove. * Makefile.in: Remove protoize and fixproto support and references in comments. (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO, PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES): Remove. (ALL_HOST_OBJS): Remove $(PROTO_OBJS). (MOSTLYCLEANFILES): Remove protoize$(exeext) and unprotoize$(exeext). (rest.encap): Don't depend on $(STMP_FIXPROTO) (.PHONY): Don't depend on proto. (libgcc-support): Don't depend on $(STMP_FIXPROTO). (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext), protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple, deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext), build/gen-protos.o, build/scan.o, xsys-protos.h, build/fix-header$(build_exeext), build/fix-header.o, build/scan-decls.o, fixhdr.ready, stmp-fixproto, stmp-install-fixproto): Remove. (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X, SYSCALLS.c or fixproto files. (install-common): Don't install protoize. (install-headers-tar, install-headers-cpio, install-headers-cp): Don't depend on $(STMP_FIXPROTO). (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't install fixproto files or write out fixproto settings. (uninstall): Don't uninstall protoize. * config.gcc (use_fixproto): Remove. (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd, rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove. * config/m32r/t-linux (STMP_FIXPROTO): Remove. * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code. * config/mips/t-iris (FIXPROTO_DEFINES): Remove. * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove. * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code. * config/t-svr4 (FIXPROTO_DEFINES): Remove. * config/t-vxworks (STMP_FIXPROTO): Remove. * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T, STMP_FIXPROTO): Remove. * config.in, configure: Regenerate. * crtstuff.c (gid_t, uid_t): Don't undefine. * doc/install.texi: Change m68k-coff to m68k-elf in example. (arm-*-coff, arm-*-aout: Remove target entries. (*-ibm-aix*): Mention removal of support for AIX 4.2 and older. Remove mention of AIX 4.1. (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*. * doc/invoke.texi (Running Protoize): Remove. * doc/trouble.texi (Actual Bugs): Remove mention of fixproto. (Protoize Caveats): Remove. * tsystem.h: Update comments on headers assumed to exist. gcc/po: * EXCLUDES (fix-header.c, gen-protos.c, scan-decls.c, scan.c, scan.h): Remove. gcc/testsuite: * g++.old-deja/g++.ext/attrib5.C, g++.old-deja/g++.jason/thunk3.C, gcc.c-torture/compile/981006-1.c: Don't XFAIL or add special options for removed targets. libgcc: * config.host (arm-*-coff*, armel-*-coff*, arm-semi-aof, armel-semi-aof, h8300-*-*, i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd, rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145158 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/hjl2009-03-277-50/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-03-27 H.J. Lu <hongjiu.lu@intel.com> PR target/39472 * config/i386/i386.c (ix86_abi): New. (override_options): Handle -mabi=. (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi. (ix86_call_abi_override): Likewise. (init_cumulative_args): Likewise. (function_arg_advance): Likewise. (function_arg_64): Likewise. (function_arg): Likewise. (ix86_pass_by_reference): Likewise. (ix86_function_value_regno_p): Likewise. (ix86_build_builtin_va_list_abi): Likewise. (setup_incoming_varargs_64): Likewise. (is_va_list_char_pointer): Likewise. (ix86_init_machine_status): Likewise. (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi. (ix86_function_type_abi): Return enum calling_abi. Rewrite for 64bit. Replace DEFAULT_ABI with ix86_abi. (ix86_function_abi): Make it static and return enum calling_abi. (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI with ix86_abi. (ix86_fn_abi_va_list): Updated. * config/i386/i386.h (ix86_abi): New. (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi. (CONDITIONAL_REGISTER_USAGE): Likewise. (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi. (machine_function): Likewise. * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI with ix86_abi. * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise. (STACK_BOUNDARY): Likewise. * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise. * config/i386/i386.opt (mabi=): New. * config/i386/i386-protos.h (ix86_cfun_abi): Changed to return enum calling_abi. (ix86_function_type_abi): Likewise. (ix86_function_abi): Removed. * doc/invoke.texi: Document -mabi= option for x86. gcc/testsuite/ 2009-03-27 H.J. Lu <hongjiu.lu@intel.com> PR target/39472 * gcc.target/x86_64/abi/callabi/func-2a.c: New. * gcc.target/x86_64/abi/callabi/func-2b.c: Likewise. * gcc.target/x86_64/abi/callabi/func-indirect-2a.c: Likewise. * gcc.target/x86_64/abi/callabi/func-indirect-2b.c: Likewise. * gcc.target/x86_64/abi/callabi/vaarg-4a.c: Likewise. * gcc.target/x86_64/abi/callabi/vaarg-4b.c: Likewise. * gcc.target/x86_64/abi/callabi/vaarg-5a.c: Likewise. * gcc.target/x86_64/abi/callabi/vaarg-5b.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145133 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/39496jakub2009-03-191-2/+4
| | | | | | | | | | | | | * config/i386/i386.c (ix86_function_regparm): Don't optimize local functions using regparm calling conventions when not optimizing. (ix86_function_sseregparm): Similarly for sseregparm calling conventions. * gcc.target/i386/pr39496.c: New test. * g++.dg/other/pr39496.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144955 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/39482uros2009-03-171-28/+24
| | | | | | | | | | | | | | | | | * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers from different units in a single alternative. (*truncdfsf_i387): Ditto. (*truncxfsf2_mixed): Ditto. (*truncxfdf2_mixed): Ditto. testsuite/ChangeLog: PR target/39482 * gcc.target/i386/pr39482.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144915 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>hjl2009-03-171-6/+4
| | | | | | | | | PR target/39476 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144902 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-03-16 H.J. Lu <hongjiu.lu@intel.com>hjl2009-03-172-12/+14
| | | | | | | | | | | PR target/39473 * config/i386/i386.c (ix86_expand_call): Check extra clobbers for ms->sysv ABI calls only in 64bit mode. * config/i386/i386.md (untyped_call): Support 32bit. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144901 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/clm2009-03-131-1/+1
| | | | | | | | * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace diagnostic.h with $(DIAGNOSTIC_H). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144842 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/39431jakub2009-03-122-7/+49
| | | | | | | | | | | | | | | | | * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New predicate. * config/i386/sync.md (sync_compare_and_swap<mode>, sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check if operands[1] is cmpxchg8b_pic_memory_operand, if not force address into a register. (sync_double_compare_and_swapdi_pic, sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be cmpxchg8b_pic_memory_operand instead of just memory_operand. * gcc.target/i386/pr39431.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144825 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/hjl2009-03-121-4/+3
| | | | | | | | | | | | | | | | | | | | 2009-03-12 H.J. Lu <hongjiu.lu@intel.com> PR target/39445 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment. gcc/testsuite/ 2009-03-12 H.J. Lu <hongjiu.lu@intel.com> PR target/39445 * gcc.target/i386/pr39445.c: New. * gcc.target/i386/push-1.c: XFAIL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144823 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>hjl2009-03-121-4/+4
| | | | | | | | | | | PR target/39327 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits. (avx_addsubv4df3): Likewise. (*avx_addsubv4sf3): Likewise. (sse3_addsubv4sf3): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144819 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>hjl2009-03-121-2/+2
| | | | | | | | | PR target/38824 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144817 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/39137jakub2009-03-112-5/+42
| | | | | | | | | | | | | | | | | | * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro. * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined. * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define. * config/i386/i386.c (ix86_local_alignment): For -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for long long variables on the stack to avoid dynamic realignment. Allow the first argument to be a decl rather than type. * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document. * gcc.target/i386/stackalign/longlong-1.c: New test. * gcc.target/i386/stackalign/longlong-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144792 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.c (ix86_maybe_switch_abi): Use nameduros2009-03-081-1/+1
| | | | | | | constants instead of magic numbers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144706 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.md (R8_REG, R9_REG): New constants.uros2009-03-053-28/+36
| | | | | | | | | | | | | | | | | * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named constants instead of magic numbers. (HARD_REGNO_CALLER_SAVE_MODE): Ditto. (QI_REG_P): Ditto. * config/i386/i386.c (x86_64_int_parameter_registers): Ditto. (x86_64_ms_abi_int_parameter_registers): Ditto. (x86_64_int_return_registers): Ditto. (ix86_expand_call): Ditto for clobbered_registers array. (ix86_hard_regno_mode_ok): Ditto. (x86_extended_QIreg_mentioned_p): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144638 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.md (ST?_REG, MM?_REG): New constants.uros2009-03-023-54/+70
| | | | | | | | | | | | (*call_1_rex64_ms_sysv): Use named constants instead of magic numbers to describe clobbbered registers. (*call_value_0_rex64_ms_sysv): Ditto. * config/i386/mmx.md (emms): Ditto. (femms): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144554 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copyuros2009-03-021-10/+4
| | | | | | | | reg_class_contents of FLOAT_REGS into a temporary. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144542 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use defineduros2009-03-011-2/+2
| | | | | | | | names instead of magic constants for REX SSE registers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144533 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do noturos2009-03-011-26/+17
| | | | | | | | shadow "i" variable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144532 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-02-28 H.J. Lu <hongjiu.lu@intel.com>hjl2009-02-281-16/+16
| | | | | | | | | | | | | | | | | PR target/39327 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits. (avx_addsubv4df3): Likewise. (*avx_addsubv4sf3): Likewise. (sse3_addsubv4sf3): Likewise. (*avx_addsubv2df3): Likewise. (sse3_addsubv2df3): Likewise. (avx_unpckhps256): Correct item selectors. (avx_unpcklps256): Likewise. (avx_unpckhpd256): Likewise. (avx_unpcklpd256): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144498 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-02-21 H.J. Lu <hongjiu.lu@intel.com>hjl2009-02-221-9/+19
| | | | | | | | | | | | | * config/i386/i386.c (classify_argument): Don't allow COImode and OImode. (function_arg_advance_32): Don't allow OImode. (function_arg_32): Likewise. (function_value_32): Likewise. (return_in_memory_32): Likewise. (function_arg_64): Remove OImode comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144367 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-02-21 H.J. Lu <hongjiu.lu@intel.com>hjl2009-02-221-2/+8
| | | | | | | | | | PR target/39261 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use ix86_expand_vector_set for V4DImode in 64bit mode only. (ix86_expand_vector_init_one_var): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144366 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/hjl2009-02-211-2/+11
| | | | | | | | | | | | | | | | | | | | 2008-02-21 H.J. Lu <hongjiu.lu@intel.com> PR target/39256 * config/i386/i386.c (type_natural_mode): Remove an extra space in the warning message. (function_value_32): Handle 32-byte vector modes. (return_in_memory_32): Likewise. gcc/testsuite/ 2008-02-21 Uros Bizjak <ubizjak@gmail.com> PR target/39256 * gcc.target/i386/abi-2.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144355 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revertdannysmith2009-02-211-2/+1
| | | | | | | accidental And undocumented change at revision 140860. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144345 138bc75d-0d04-0410-961f-82ee72b054a4
* Update Copyright years for files modified in 2008 and/or 2009.jakub2009-02-2039-41/+45
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144324 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/39228uros2009-02-191-2/+61
| | | | | | | | | | | | | | | | | * config/i386/i386.md (isinfxf2): Split from isinf<mode>2. (UNSPEC_FXAM_MEM): New unspec. (fxam<mode>2_i387_with_temp): New insn and split pattern. (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through memory using fxam<mode>2_i387_with_temp to remove excess precision. testsuite/ChangeLog: PR target/39228 * gcc.c-torture/execute/pr39228.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144293 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>hjl2009-02-181-4/+7
| | | | | | | | | PR target/39224 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144272 138bc75d-0d04-0410-961f-82ee72b054a4