OSDN Git Service

M68K TLS support.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index b9a1ce2..372df6b 100644 (file)
@@ -1,3 +1,199 @@
+2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       M68K TLS support.
+       * configure.ac (m68k-*-*): Check if binutils support TLS.
+       * configure: Regenerate.
+       * config/m68k/predicates.md (symbolic_operand): Extend comment.
+       * config/m68k/constraints.md (Cu): New constraint.
+       * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
+       (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
+       (movsi): Handle TLS symbols.
+       (addsi3_5200): Handle XTLS symbols, indent.
+       * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
+       (m68k_tls_reference_p): Declare.
+       (m68k_legitimize_address): Declare.
+       (m68k_unwrap_symbol): Declare.
+       * config/m68k/m68k.opt (mxtls): New option.
+       * config/m68k/m68k.c (ggc.h): Include.
+       (m68k_output_dwarf_dtprel): Implement hook.
+       (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
+       (m68k_expand_prologue): Load GOT pointer when function needs it.
+       (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
+       (m68k_legitimate_constant_address_p): Same.
+       (m68k_decompose_address): Handle TLS references.
+       (m68k_get_gp): New static function.
+       (enum m68k_reloc): New contants.
+       (TLS_RELOC_P): New macro.
+       (m68k_wrap_symbol): New static function.
+       (m68k_unwrap_symbol): New function.
+       (m68k_final_prescan_insn_1): New static function.
+       (m68k_final_prescan_insn): New function.
+       (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
+       functions.
+       (legitimize_pic_address): Handle TLS references..
+       (m68k_tls_get_addr, m68k_get_tls_get_addr)
+       (m68k_libcall_value_in_a0_p)
+       (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
+       (m68k_call_m68k_read_tp): Helper variables and functions for ...
+       (m68k_legitimize_tls_address): Handle TLS references.
+       (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
+       New functions.
+       (m68k_legitimize_address): Handle TLS symbols.
+       (m68k_get_reloc_decoration): New static function.
+       (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
+       UNSPEC_RELOC32.
+       (m68k_output_dwarf_dtprel): Implement hook.
+       (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
+       (m68k_libcall_value): Return result in A0 instead of D0 when asked by
+       m68k_call_* routines.
+       (sched_attr_op_type): Handle TLS symbols.
+       (gt-m68k.h): Include.
+       * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
+       (LEGITIMATE_PIC_OPERAND_P): Support TLS.
+
+2009-05-18  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-prop.c (ipa_check_stmt_modifications): Removed.
+       (visit_store_addr_for_mod_analysis): New function.
+       (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
+       (determine_cst_member_ptr): Use gimple_assign_single_p.
+       (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
+       (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
+       operands.  Don't check number of operands of a NOP_EXPR.
+
+2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
+
+       * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
+
+2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       PR c/40172
+       * c-common.c (warn_logical_operator): Don't warn if one of
+       expression isn't always true or false.
+
+2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/biarch32.h: New file.
+       * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
+
+2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * config/mips/mips.md (*zero_extend<mode>_trunchi,
+       *zero_extend<mode>_truncqi): Merge these into ...
+       (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
+       Name the pattern following this as *zero_extendhi_truncqi.
+
+2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
+
+       PR middle-end/39301
+       * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
+       * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
+       (output_info): Make field HOST_WIDEST_INT.
+       (print_statistics): Use HOST_WIDEST_INT_PRINT.
+       (dump_bitmat_statistics): Same.
+
+2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
+
+       * config.gcc (use_gcc_stdint):  Set to wrap.
+       * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
+       INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
+       UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
+       INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
+       UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
+       INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
+       UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
+       UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
+
+2009-05-16  Joseph Myers  <joseph@codesourcery.com>
+
+       * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
+       tune_64.
+       * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
+       Move definitions earlier.
+       (OPT_ARCH64, OPT_ARCH32): Define.
+       (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
+       and tune_64.
+
+2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/40153
+       * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
+       implies.
+
+2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.md (movdi2): Copy non-reg values to DImode registers.
+
+2009-05-16  Jakub Jelinek  <jakub@redhat.com>
+
+       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.
+
+       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.
+
+2009-05-15  Ian Lance Taylor  <iant@google.com>
+
+       * alias.c (struct alias_set_entry_d): Rename from struct
+       alias_set_entry.  Change all uses.
+       * except.c (struct call_site_record_d): Rename from struct
+       call_site_record.  Change all uses.
+       * except.h (struct eh_region_d): Rename from struct eh_region.
+       Change all uses.
+       * gcse.c (struct hash_table_d): Rename from struct hash_table.
+       Change all uses.
+       * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
+       ivtype_map_elt.  Change all uses.
+       (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
+       Change all uses.
+       (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
+       * graphite.h (struct name_tree_d): Rename from struct name_tree.
+       Change all uses.
+       (struct sese_d): Rename from struct sese.  Change all uses.
+       * omega.h (struct eqn_d): Rename from struct eqn.  Change all
+       uses.
+       (struct omega_pb_d): Rename from struct omega_pb.  Change all
+       uses.
+       * optabs.h (struct optab_d): Rename from struct optab.  Change all
+       uses.
+       (struct convert_optab_d): Rename from struct convert_optab.
+       Change all uses.
+       * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
+       ipa_opt_pass.  Change all uses.
+       * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
+       all uses.
+
+       * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
+       defined as a typedef.
+       (grokdeclarator): If -Wc++-compat, warn if a typedef is already
+       defined as a tag.
+
+2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       PR 16302
+       * fold-const.c (make_range,build_range_check,merge_ranges): Move
+       declaration to...
+       (merge_ranges): Returns bool. 
+       * tree.h (make_range): .. to here.
+       (build_range_check): Likewise.
+       (merge_ranges): Likewise. Renamed from merge_ranges.
+       * c-typeck.c (parser_build_binary_op): Update calls to
+       warn_logical_operator.
+       * c-common.c (warn_logical_operator): Add new warning.
+       * c-common.h (warn_logical_operator): Update declaration.
+       
 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
        * ira-conflicts.c (add_insn_allocno_copies): Fix wrong