aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
AgeCommit message (Collapse)AuthorFilesLines
2009-05-16re PR target/39942 (Nonoptimal code - leaveq; xchg %ax,%ax; retq)Jakub Jelinek1-8/+49
PR target/39942 * final.c (label_to_max_skip): New function. (label_to_alignment): Only use LABEL_TO_ALIGNMENT if CODE_LABEL_NUMBER <= max_labelno. * output.h (label_to_max_skip): New prototype. * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to... (ix86_avoid_jump_mispredicts): ... this. Don't define if ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment. Handle CODE_LABELs with >= 16 byte alignment or with max_skip == (1 << align) - 1. (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. From-SVN: r147607
2009-05-16re PR target/39942 (Nonoptimal code - leaveq; xchg %ax,%ax; retq)Jakub Jelinek2-3/+7
PR target/39942 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second .p2align 3 if MAX_SKIP is smaller than 7. * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. From-SVN: r147606
2009-05-15i386.c (ix86_reorg): Call optimize_function_for_speed_p only once.H.J. Lu1-6/+7
2009-05-15 H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p only once. From-SVN: r147588
2009-05-15arm.c (neon_vector_mem_operand): Handle element/structure loads.Paul Brook4-21/+48
2009-05-15 Paul Brook <paul@codesourcery.com> Sandra Loosemore <sandra@codesourcery.com> gcc/ * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure loads. Allow PRE_DEC. (output_move_neon): Handle PRE_DEC. (arm_print_operand): Add 'A' for neon structure loads. * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype. * config/arm/neon.md (neon_mov): Update comment. * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand calls. (Um): New constraint. Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com> From-SVN: r147577
2009-05-15frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.Paolo Bonzini27-92/+36
2009-05-15 Paolo Bonzini <bonzini@gnu.org> * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS. * config/frv/frv.c: Likewise. * config/s390/s390.c: Likewise. * config/sparc/sparc.h: Likewise. * config/i386/i386.h: Likewise. * config/i386/i386.c: Likewise. * config/crx/crx.c: Likewise. * config/m68hc11/m68hc11.h: Likewise. * config/iq2000/iq2000.c: Likewise. * config/mn10300/mn10300.h: Likewise. * config/mn10300/mn10300.c: Likewise. * config/m68k/m68k.c: Likewise. * config/rs6000/rs6000.c: Likewise. * config/rs6000/xcoff.h: Likewise. * config/rs6000/linux64.h: Likewise. * config/rs6000/sysv4.h: Likewise. * config/score/score3.c: Likewise. * config/score/score7.c: Likewise. * config/score/score.c: Likewise. * config/arm/arm.md: Likewise. * config/mips/mips.c: Likewise. * config/mips/mips.md: Likewise. * config/bfin/bfin.h: Likewise. * config/pa/pa.c: Likewise. * config/pa/constraints.md: Likewise. * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete. * config/pdp11/pdp11.c (legitimate_address_p): Delete. * config/pdp11/pdp11.h: Use memory_address_p instead. From-SVN: r147560
2009-05-14passes.c (finish_optimization_passes): Change i to int.Ian Lance Taylor1-3/+3
./: * passes.c (finish_optimization_passes): Change i to int. * plugin.c (plugins_active_p): Change event to int. (dump_active_plugins): Likewise. * reginfo.c (invalid_mode_change_p): Change to to unsigned int. Add cast. * tree.c (tree_range_check_failed): Change c to unsigned int. (omp_clause_range_check_failed): Likewise. (build_common_builtin_nodes): Change mode to int. Add cast. * config/ia64/ia64.c (is_emitted): Change r to unsigned int. (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise. * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using ++ or -- with a variable of enum type. cp/: * class.c (layout_class_type): Change itk to unsigned int. * decl.c (finish_enum): Change itk to unsigned int. * parser.c (cp_parser_check_decl_spec): Change ds to int. Remove casts. fortran/: * decl.c (match_attr_spec): Change d to unsigned int. * dump-parse-tree.c (show_namespace): Change op to int. Add cast. * interface.c (gfc_check_interfaces): Change i to int. Add casts. * module.c (read_module): Change i to int. Add cast. (write_module): Change i to int. * symbol.c (gfc_get_namespace): Change in to int. (gfc_free_namespace): Change i to int. * trans-io.c (gfc_build_io_library_fndecls): Change ptype to unsigned int. Add cast. * trans-types.c (gfc_init_kinds): Change mode to unsigned int. Add casts. testsuite/: * gcc.dg/Wcxx-compat-9.c: New testcase. From-SVN: r147544
2009-05-14tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this in the former ↵Paolo Bonzini79-605/+271
documentation of... 2009-05-14 Paolo Bonzini <bonzini@gnu.org> * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this in the former documentation of... (GO_IF_LEGITIMATE_ADDRESS): ... this. * ira-conflicts.c (get_dup_num): Use address_operand. * targhooks.c (default_legitimate_address_p): New. * targhooks.h (default_legitimate_address_p): New. * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook. * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook. * target.h (struct target): Add legitimate_address_p. * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New. (TARGET_INITIALIZER): Include it. * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove. * config/alpha/alpha.c (alpha_legitimate_address_p): Make static. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete. (REG_OK_STRICT_P): Delete. * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to... (frv_legitimate_address_p_1): ... this. * config/frv/frv.c (frv_legitimate_address_p): Forward to... (frv_legitimate_address_p_1): ... the renamed old frv_legitimate_address_p. * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/s390/s390-protos.h (legitimate_address_p): Remove. * config/s390/s390.c (legitimate_address_p): Rename to... (s390_legitimate_address_p): ... this, make static. (legitimize_address): Adjust call. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/s390/constraints.md ("e"): Call strict_memory_address_p. * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove. * config/m32c/m32c.c (m32c_legitimate_address_p): Make static. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/spu/spu-protos.h (spu_legitimate_address): Remove. * config/spu/spu.c (spu_legitimate_address): Rename to... (spu_legitimate_address_p): ... this, make static. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/sparc/sparc-protos.h (legitimate_address_p): Remove. * config/sparc/sparc.c (legitimate_address_p): Rename to... (sparc_legitimate_address_p): ... this, make static and return bool. (legitimize_address): Adjust call. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/i386/i386-protos.h (legitimate_address_p): Remove. * config/i386/i386.c (legitimate_address_p): Rename to... (ix86_legitimate_address_p): ... this, make static. (constant_address_p): Move after it, adjust call. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/avr/avr-protos.h (legitimate_address_p): Remove. * config/avr/avr.c (legitimate_address_p): Rename to... (avr_legitimate_address_p): ... this, make static. (legitimize_address): Adjust call. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/crx/crx-protos.h (crx_legitimate_address_p): Remove. * config/crx/crx.c (crx_legitimate_address_p): Make static. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove. * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p): Remove. * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Make static. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address): Remove. * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address): Rename to... (m68hc11_legitimate_address_p): ... this, make static. (go_if_legitimate_address_internal): Rename to... (m68hc11_legitimate_address_p_1): ... this. (legitimize_address): Adjust call. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove. * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove. * config/mn10300/mn10300.c (legitimate_address_p): Rename to... (mn10300_legitimate_address_p): ... this, make static. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove. * config/m68k/m68k.c (m68k_legitimate_address_p): Make static. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete. (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete. (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above. * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove. * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to... (rs6000_legitimate_address_p): ... this, make static. (TARGET_LEGITIMATE_ADDRESS_P): New. (REG_MODE_OK_FOR_BASE_P): Delete. (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P. * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/picochip/picochip-protos.h (picochip_legitimate_address_p): Delete. * config/picochip/picochip.c (picochip_legitimate_address_p): Make static, adjust types. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/score/score.c (score_address_p): Rename to... (score_legitimate_address_p): ... this. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/score/score3.c (score3_address_p): Rename to... (score3_legitimate_address_p): ... this. * config/score/score7.c (score7_address_p): Rename to... (score7_legitimate_address_p): ... this. * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS, THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS, GO_IF_LEGITIMATE_ADDRESS): Delete. * config/arm/arm-protos.h (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Delete. (arm_legitimate_address_p): Rename to... (arm_legitimate_address_outer_p): ... this. * config/arm/constraints.md ("Uq"): Adjust call. * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise. * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to... (arm_legitimate_address_outer_p): ... this. (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/mips/mips-protos.h (mips_legitimate_address_p): Remove. * config/mips/mips.c (mips_legitimate_address_p): ... Make static. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/vax/vax-protos.h (legitimate_address_p): Remove. * config/vax/vax.c (legitimate_address_p): Rename to... (vax_legitimate_address_p): ... this, make static. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove. * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove. * config/mmix/mmix.c (mmix_legitimate_address): Rename to... (mmix_legitimate_address_p): ... this, make static. (TARGET_LEGITIMATE_ADDRESS_P): New. * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete. * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove. * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static. (TARGET_LEGITIMATE_ADDRESS_P): New. From-SVN: r147534
2009-05-14arm.h (PROMOTE_FUNCTION_MODE): Remove handling of MODE_COMPLEX_INT.Paolo Bonzini1-3/+2
2009-05-14 Paolo Bonzini <bonzini@gnu.org> * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling of MODE_COMPLEX_INT. From-SVN: r147531
2009-05-14alpha.c (alpha_initialize_trampoline): Change 0 to LCT_NORMAL in function call.Rainer Orth1-1/+1
* config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to LCT_NORMAL in function call. * mips-tdump.c (print_file_desc): Add cast to enum type. * mips-tfile.c (add_ext_symbol): Add casts to enum types. (mark_stabs): Add casts to enum types. (parse_stabs_common): Add casts to enum types. From-SVN: r147529
2009-05-14mips.c (mips_print_operand): Check for invalid values of LETTER.Adam Nemet1-0/+6
* config/mips/mips.c (mips_print_operand) <REG, MEM, default>: Check for invalid values of LETTER. From-SVN: r147517
2009-05-14msformat-c.c (ms_printf_length_specs): Use enumeration values even in ↵Dave Korn1-12/+12
sentinel and empty entries. * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration values even in sentinel and empty entries. (ms_printf_flag_specs): Likewise. (ms_scanf_flag_specs): Likewise. (ms_strftime_flag_specs): Likewise. (ms_print_char_table): Likewise. (ms_scan_char_table): Likewise. (ms_time_char_table): Likewise. From-SVN: r147513
2009-05-13mips.md (store): Add attributes for QI and HI.Adam Nemet1-26/+7
* config/mips/mips.md (store): Add attributes for QI and HI. Update comment. (truncdisi2, truncdihi2, truncdiqi2): Merge these into ... (truncdi<mode>2): ... this new pattern. From-SVN: r147503
2009-05-13t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.Nathan Sidwell3-10/+11
* config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX. * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455 multilibs. * config/m68k/m68k.h (FL_UCLINUX): Define. From-SVN: r147478
2009-05-12sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns unless -fschedule-insns ↵Kaz Kojima1-2/+5
is specified. * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns unless -fschedule-insns is specified. From-SVN: r147454
2009-05-12re PR target/39561 (-mno-expand-cbranchdi broken)Kaz Kojima3-16/+7
PR target/39561 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set TARGET_EXPAND_CBRANCHDI4. * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4. * config/sh/sh.opt (mexpand-cbranchdi): Remove. (cmpeqdi): Fix comment. From-SVN: r147453
2009-05-12sh-protos.h (sh_legitimate_index_p): Declare.Kaz Kojima3-164/+175
* config/sh/sh-protos.h (sh_legitimate_index_p): Declare. (sh_legitimate_address_p): Likewise. * config/sh/sh.c (sh_legitimate_index_p): New. (sh_legitimate_address_p): Likewise. * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter. (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise. (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove. (MAYBE_BASE_REGISTER_RTX_P): New macro. (MAYBE_INDEX_REGISTER_RTX_P): Likewise. (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P. (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P. (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p. (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p. From-SVN: r147450
2009-05-12Fix PR bootstrap/40118Michael Meissner1-3/+3
From-SVN: r147434
2009-05-12re PR target/37197 (-msse4 ICE on __builtin_parityl)Uros Bizjak1-11/+23
PR target/37197 * config/i386/driver-i386.c (processor_signatures): New enum. (SIG_GEODE): Move from vendor_signatures to processor_signatures. (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE processor signature to detect geode processor. From-SVN: r147429
2009-05-12Merge cond-optab branch.Paolo Bonzini132-9570/+4007
From-SVN: r147425
2009-05-11spu-c.c (spu_categorize_keyword): Update for recent libcpp interface change.Andrew Pinski1-2/+2
2009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com> * config/spu/spu-c.c (spu_categorize_keyword): Update for recent libcpp interface change. (spu_macro_to_expand): Likewise. From-SVN: r147393
2009-05-11m68k-devices.def (52274, [...]): New devices.Nathan Sidwell1-1/+22
* config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx): New devices. * doc/invoke.texi (M680x0 Options): Document new coldfire cpus. From-SVN: r147383
2009-05-11rs6000-c.c (altivec_categorize_keyword): Update for recent libcpp interface ↵Ben Elliston1-2/+2
change. * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update for recent libcpp interface change. (rs6000_macro_to_expand): Likewise. From-SVN: r147352
2009-05-10re PR target/40031 (ARM broken with addresses in PHIs with -fPIC)Michael Matz1-1/+5
PR target/40031 * config/arm/arm.c (require_pic_register): Emit on entry edge, not at entry of function. testsuite/ * gcc.dg/pr40031.c: New test. From-SVN: r147350
2009-05-10arc.c (arc_handle_interrupt_attribute): Use %qE for identifiers in diagnostics.Joseph Myers21-142/+146
* config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for identifiers in diagnostics. * config/arm/arm.c (arm_handle_fndecl_attribute, arm_handle_isr_attribute): Likewise. * config/avr/avr.c (avr_handle_progmem_attribute, avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise. * config/bfin/bfin.c (handle_int_attribute, bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute): Likewise. * config/darwin.c (darwin_handle_kext_attribute, darwin_handle_weak_import_attribute): Likewise. * config/h8300/h8300.c (h8300_handle_fndecl_attribute, h8300_handle_eightbit_data_attribute, h8300_handle_tiny_data_attribute): Likewise. * config/i386/i386.c (ix86_handle_cconv_attribute, ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise. * config/i386/winnt.c (ix86_handle_shared_attribute, ix86_handle_selectany_attribute): Likewise. * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise. * config/m32c/m32c.c (function_vector_handler): Likewise. * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute, m68hc11_handle_fntype_attribute): Likewise. * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise. * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise. * config/mips/mips.c (mips_insert_attributes, mips_merge_decl_attributes, mips_expand_builtin): Likewise. * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute, rs6000_handle_struct_attribute): Likewise. * config/sh/sh.c (sh_insert_attributes, sh_handle_resbank_handler_attribute, sh_handle_interrupt_handler_attribute, sh2a_handle_function_vector_handler_attribute, sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute): Likewise. * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise. * config/spu/spu.c (spu_handle_fndecl_attribute, spu_handle_vector_attribute): Likewise. * config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise. * config/v850/v850-c.c (ghs_pragma_section): Likewise. * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise. From-SVN: r147334
2009-05-08Fix bug in movdf_softfloat32.Michael Eager1-1/+1
From-SVN: r147290
2009-05-08sh.c: Do not include c-pragma.h.Kaz Kojima1-1/+0
* config/sh/sh.c: Do not include c-pragma.h. From-SVN: r147267
2009-05-07spu.c: Remove include of c-common.h.Andrew Pinski1-1/+0
2009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com> * config/spu/spu.c: Remove include of c-common.h. From-SVN: r147266
2009-05-07* config/i386/i386.c: Do not include c-common.h.Steven Bosscher1-1/+0
From-SVN: r147250
2009-05-07picochip.h (NO_DOLLAR_IN_LABEL): Added.Hariharan Sandanagobalane2-2/+1
* config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added. * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton. From-SVN: r147248
2009-05-06i386.md ((unnamed inc/dec peephole): Use optimize_insn_for_size_p instead of ↵H.J. Lu3-5/+5
optimize_size. 2009-05-06 H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386.md ((unnamed inc/dec peephole): Use optimize_insn_for_size_p instead of optimize_size. * config/i386/predicates.md (incdec_operand): Likewise. (aligned_operand): Likewise. * config/i386/sse.md (divv8sf3): Likewise. (sqrtv8sf2): Likewise. From-SVN: r147178
2009-05-06i386.c (ix86_build_signbit_mask): Make it static.H.J. Lu2-3/+2
2009-05-06 H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386.c (ix86_build_signbit_mask): Make it static. * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed. From-SVN: r147177
2009-05-06i386.md (*avx_<code><mode>3_finite): Replace ssemodesuffixf2c with ↵H.J. Lu1-1/+1
avxmodesuffixf2c. 2009-05-06 H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386.md (*avx_<code><mode>3_finite): Replace ssemodesuffixf2c with avxmodesuffixf2c. From-SVN: r147175
2009-05-05linux-atomic.c: Eliminate conditional include of errno.h on non-LP64 systems ↵Ben Elliston1-5/+0
to simplify build... * config/pa/linux-atomic.c: Eliminate conditional include of errno.h on non-LP64 systems to simplify build requirements. From-SVN: r147109
2009-05-04Allow address for DImode/DFmode only if double-precision FP regs.Michael Eager1-1/+1
From-SVN: r147105
2009-05-04Add TARGET_SINGLE_FLOAT check.Michael Eager1-1/+2
From-SVN: r147104
2009-05-04Add CPP_SPEC for -mxilinx-fpu.Michael Eager1-0/+9
From-SVN: r147101
2009-05-04Add t-xilinx for powerpc-xilinx-eabi*.Michael Eager1-0/+56
From-SVN: r147100
2009-05-04tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.Paolo Bonzini65-619/+383
2009-05-04 Paolo Bonzini <bonzini@gnu.org> * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation. * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete. * gcc/explow.c (memory_address): Use target hook. * gcc/targhooks.c (default_legitimize_address): New. * gcc/targhooks.h (default_legitimize_address): New. * gcc/target.h (legitimize_address): New. * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New. (TARGET_INITIALIZER): Include it. * gcc/system.h (LEGITIMIZE_ADDRESS): Poison. * config/bfin/bfin-protos.h (legitimize_address): Remove. * config/bfin/bfin.c (legitimize_address): Remove. * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove. * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address): Remove. * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove. * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove. * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS, THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete. * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete. * gcc/config/s390/s390-protos.h (legitimize_address): Delete. * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete. * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete. * gcc/config/i386/i386-protos.h (legitimize_address): Delete. * gcc/config/avr/avr-protos.h (legitimize_address): Delete. * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete. * gcc/config/score/score-protos.h (score_legitimize_address): Delete. * gcc/config/arm/arm-protos.h (arm_legitimize_address, (thumb_legitimize_address): Delete. * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete. * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete. * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete. * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete. * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete. * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address): Delete. * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address): Delete. * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version. * config/m32c/m32c.c (m32c_legitimize_address): Standardize. * config/m32r/m32r.c (m32r_legitimize_address): New. * config/m68k/m68k.c (m68k_legitimize_address): New. * config/score/score.c (score_legitimize_address): Standardize. * config/score/score3.c (score3_legitimize_address): Standardize. * config/score/score3.h (score3_legitimize_address): Adjust. * config/score/score7.c (score7_legitimize_address): Standardize. * config/score/score7.h (score7_legitimize_address): Adjust. * config/sh/sh.c (sh_legitimize_address): New. * config/iq2000/iq2000.c (iq2000_legitimize_address): New. * gcc/config/s390/s390.c (legitimize_address): Rename to... (s390_legitimize_address): ... this. * gcc/config/sparc/sparc.c (legitimize_address): Rename to... (sparc_legitimize_address): ... this. * gcc/config/i386/i386.c (legitimize_address): Rename to... (ix86_legitimize_address): ... this. * gcc/config/avr/avr.c (legitimize_address): Rename to... (avr_legitimize_address): ... this. * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to... (mn10300_legitimize_address): ... this. * config/alpha/alpha.c (alpha_legitimize_address): Wrap... (alpha_legitimize_address_1): ... the old alpha_legitimize_address. (alpha_expand_mov): Adjust call. * config/frv/frv.c (frv_legitimize_address): Return x on failure. * config/spu/spu.c (spu_legitimize_address): Likewise. * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise. * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise. From-SVN: r147098
2009-05-03defaults.h (FRAME_POINTER_REQUIRED): Provide default.Anatoly Sokolov16-68/+0
* defaults.h (FRAME_POINTER_REQUIRED): Provide default. * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation. * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete. * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete. * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete. * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete. * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete. * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete. * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete. * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete. * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete. * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete. * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete. * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete. * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete. * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete. * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete. * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete. From-SVN: r147072
2009-04-30mips.h (FRAME_GROWS_DOWNWARD, [...]): Define new macros.Adam Nemet2-29/+42
* config/mips/mips.h (FRAME_GROWS_DOWNWARD, MIPS_GP_SAVE_AREA_SIZE): Define new macros. (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE. * config/mips/mips.c (struct mips_frame_info): Update comment before arg_pointer_offset and hard_frame_pointer_offset. (mips_compute_frame_info): Update diagram before function: to correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to indicate the position of frame_pointer_rtx with -fstack-protector and to show args_size. Don't allocate cprestore area for leaf functions if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set cprestore_size. (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD. From-SVN: r147024
2009-04-30fix for PR 39955Michael Matz1-0/+1
From-SVN: r147021
2009-04-30Fix PR target/38571Ramana Radhakrishnan1-1/+1
From-SVN: r147000
2009-04-29mips.c (mips_add_offset): Use gen_int_mode for CONST_HIGH_PART result.James E. Wilson1-2/+4
* config/mips/mips.c (mips_add_offset): Use gen_int_mode for CONST_HIGH_PART result. From-SVN: r146995
2009-04-30(frame_pointer_required_p): Change return type to bool.Anatoly Sokolov1-1/+1
From-SVN: r146990
2009-04-30avr.c (initial_elimination_offset): Rename to avr_initial_elimination_offset.Anatoly Sokolov3-13/+20
* config/avr/avr.c (initial_elimination_offset): Rename to avr_initial_elimination_offset. (frame_pointer_required_p): Rename to avr_frame_pointer_required_p, change return type to bool. (avr_can_eliminate): New function. * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate. (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p. (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset. * config/avr/avr-protos.h (initial_elimination_offset) : Rename to avr_initial_elimination_offset. (frame_pointer_required_p): Rename to avr_frame_pointer_required_p. (avr_initial_elimination_offset): Define. From-SVN: r146989
2009-04-29re PR middle-end/39943 (wrong conversion from unsigned int to float)Richard Guenther1-1/+3
2009-04-29 Richard Guenther <rguenther@suse.de> PR target/39943 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only allow conversion to signed integers. * lib/target-supports.exp (check_effective_target_vect_uintfloat_cvt): New. (check_effective_target_vect_floatuint_cvt): Likewise. * gcc.dg/vect/slp-10.c: Adjust. * gcc.dg/vect/slp-11.c: Adjust. * gcc.dg/vect/slp-12b.c: Adjust. * gcc.dg/vect/slp-33.c: Adjust. * gcc.c-torture/compile/pr39943.c: New testcase. From-SVN: r146984
2009-04-29bfin.c (bfin_optimize_loop): When looking for the last insn before the ↵Bernd Schmidt1-0/+1
loop_end instruction... * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last insn before the loop_end instruction, don't look past labels. From-SVN: r146980
2009-04-29bfin.c (bfin_optimize_loop): If we need a scratch reg, scan backwards to try ↵Bernd Schmidt1-4/+30
to find a constant to initialize it. * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg, scan backwards to try to find a constant to initialize it. From-SVN: r146974
2009-04-29bfin.h (splitting_loops): Declare.Bernd Schmidt4-81/+133
* config/bfin/bfin.h (splitting_loops): Declare. * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315): Reorder bit definitions to be ascending. (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros. * config/bfin/bfin.c (splitting_loops): New variable. (bfin_cpus): Add WA_LOAD_LCREGS as needed. (struct loop_info): Remove members INIT and LOOP_INIT. (bfin_optimize_loop): Don't set them. Reorder the code that generates the LSETUP sequence. Allow LC to be loaded from any register, but also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS. (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops set to 1. * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead of reload_completed. From Jie Zhang: * config/bfin/bfin.md (movsi_insn): Refine constraints. From-SVN: r146971
2009-04-29bfin.c (bfin_register_move_cost): Test for subsets of DREGS rather than ↵Bernd Schmidt1-8/+2
comparing directly. * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of DREGS rather than comparing directly. Remove code that tries to account for latencies. From-SVN: r146956