X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=13de48b055291a04669915bd448c758a78677fd3;hp=539d836aee8ad6d5f8e9b078556e8e419cab4bdd;hb=b4db606f55afb0ea70603a6c7c668815699a1c28;hpb=8a0a66644745251ae82e774c6cd4aec0c35339c9 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 539d836aee8..13de48b0552 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,58 @@ +2011-11-14 Richard Henderson + + * config/rs6000/rs6000.c (emit_load_locked): Assert the mode is handled. + (emit_store_conditional): Likewise. + (rs6000_pre_atomic_barrier, rs6000_post_atomic_barrier): New. + (rs6000_adjust_atomic_subword): New. + (rs6000_mask_atomic_subword, rs6000_finish_atomic_subword): New. + (rs6000_expand_atomic_op): Rename from rs6000_emit_sync; rewrite + for pre-reload expansion. + (rs6000_split_compare_and_swap, rs6000_split_compare_and_swapqhi, + rs6000_expand_compare_and_swapqhi): Merge into ... + (rs6000_expand_atomic_compare_and_swap): ... here. New function. + rs6000_split_lock_test_and_set; expand immediately. Handle + QImode and HImode. + * config/rs6000/rs6000.md (UNSPEC_LWSYNC): Move and rename + from UNSPECV_LWSYNC. + * config/rs6000/sync.md (fetchopsi_constr, fetchopdi_constr): Remove. + (mem_thread_fence): New. + (hwsync): Rename from memory_barrier. + (*hwsync): Rename from *sync_internal. + (lwsync, *lwsync): Mirror hwsync implementation. + (isync): Don't reference memory. + (loadsync): New. + (atomic_load, atomic_store): New. + (ATOMIC): New mode iterator. + (load_locked): Rename from load_locked_. + (store_conditional): Rename from store_conditional_. + (sync_compare_and_swap): Remove. + (sync_compare_and_swaphi, sync_compare_and_swapqi): Remove. + (sync_compare_and_swapqhi_internal): Remove. + (sync_lock_test_and_set): Remove. + (sync_): Remove. + (*sync_si_internal, *sync_di_internal): Remove. + (sync_nand, *sync_nand_internal): Remove. + (sync_old_): Remove. + (*sync_old_si_internal): Remove. + (*sync_old_di_internal): Remove. + (sync_old_nand): Remove. + (*sync_old_nand_internal): Remove. + (sync_new_): Remove. + (*sync_new_si_internal): Remove. + (*sync_new_di_internal): Remove. + (sync_new_nand): Remove. + (*sync_new_nand_internal): Remove. + (*atomic_andsi, *atomic_anddi): Remove. + (*sync_addshort_internal, *sync_subshort_internal): Remove. + (*sync_andsi_internal, *sync_boolsi_internal): Remove. + (*sync_boolcshort_internal): Remove. + (sync_lock_release): Remove. + (atomic_compare_and_swap): New. + (atomic_exchange): New. + (atomic_, atomic_nand): New. + (atomic_fetch_, atomic_fetch_nand): New. + (atomic__fetch, atomic_nand_fetch): New. + 2011-11-14 Uros Bizjak * config/i386/sse.md (round2): Use register_operand for