OSDN Git Service

* targhooks.h (default_emutls_var_fields,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 1e546d5..37d6752 100644 (file)
@@ -1,8 +1,89 @@
-2008-04-25  Kai Tietz  <kai.tietz@onevision.com>
-
-       * config/i386/mingw32.h (SUBTARGET_INIT_BUILTINS): New.
-       * config/i386/i386.c (ix86_init_builtins): Use of
-       SUBTARGET_INIT_BUILTINS.
+2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * targhooks.h (default_emutls_var_fields,
+       default_emutls_var_init): Declare.
+       * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
+       * target.h (struct gcc_target): Add struct emutls member.
+       * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
+       TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
+       TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
+       TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
+       TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
+       TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
+       (TARGET_INITIALIZER): Add TARGET_EMUTLS.
+       * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
+       BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
+       * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
+       emit debug information.
+       * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
+       * varasm.c: Include targhooks.h.
+       (emutls_object_section, emutls_tmpl_section): New.
+       (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
+       (EMUTLS_SEPARATOR): New.
+       (prefix_name): New.
+       (get_emutls_object_name): New.
+       (default_emutls_var_fields): New, broken out of ...
+       (get_emutls_object_type): ... here.  Adjust to use target hooks.
+       (get_emutls_init_templ_addr): Adjust to use target hooks.
+       (emutls_decl): Adjust to use target hooks.
+       (emutls_finish): Likewise.
+       (default_emutls_var_init): New, broken out of ...
+       (assemble_variable): ... here.  Adjust to use target hooks.
+       * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
+       SECCAT_EMUTLS_TMPL.
+       * c-common.c (handle_section_attribute): Prevent overriding
+       sections for emulated tls with special sections.
+       * config/i386/i386.c (x86_64_elf_select_section): Add
+       SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
+       (x86_64_elf_unique_section): Likewise.
+       * config/vxworks.c: Include tree.h.
+       (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
+       (vxworks_override_options): Set TLS scheme.
+       * gcc/doc/tm.texi (Emulated TLS): New node.
+
+2008-04-26  Simon Baldwin <simonb@google.com>
+
+       PR c/35652
+       * builtins.c (c_strlen): Suppressed multiple warnings that can occur
+       with propagated string constants.
+
+2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
+       constraint for operand 2 when operand 0 is memory operand.
+       (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
+       operand 0 is memory operand.
+       (fix_trunc<mode>_i387_with_temp): Ditto.
+       (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
+       operand 2 when operand 1 is memory operand.
+       (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
+       (*floatsi<mode>2_vector_sse_with_temp): Ditto.
+       (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
+       (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
+       (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
+       operands 2,3 and 4 when operand 1 is memory operand.
+       (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
+       is memory operand.
+       (fistdi2_floor_with_temp): Ditto.
+       (fist<mode>2_floor_with_temp): Ditto.
+       (fistdi2_ceil_with_temp): Ditto.
+       (fist<mode>2_ceil_with_temp): Ditto.
+       (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
+
+2008-04-26  David Daney  <ddaney@avtrex.com>
+
+       * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
+       unspec_volitile.
+       (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
+       UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
+       UNSPEC_UPDATE_GOT_VERSION): Renumber.
+       (sync_compare_and_swap<mode>): New expand for QI and HI modes.
+       (compare_and_swap_12): New insn.
+       * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
+       * config/mips/mips.c (mips_force_binary): New function.
+       (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
+       (mips_expand_compare_and_swap_12): New function.
+       * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
 
 2008-04-25  Jan Hubicka  <jh@suse.cz>