From 66f98e8ae734c69a3a917d21384776623b4e4523 Mon Sep 17 00:00:00 2001 From: uros Date: Wed, 26 Aug 2009 06:19:37 +0000 Subject: [PATCH] * config/alpha/sync.md: Update comment about unpredictable LL/SC lock clearing by a taken branch. (sync_): Split when epilogue_completed is set, effectively after bbro pass. (sync_nand): Ditto. (sync_old_): Ditto. (sync_old_nand): Ditto. (sync_new_): Dito. (sync_new_nand): Ditto. (sync_compare_and_swap_1): Ditto. (*sync_compare_and_swap): Ditto. (sync_lock_test_and_set_1): Ditto. ("sync_lock_test_and_set): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151115 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 41 +++++++++++++++++++++++++++++------------ gcc/config/alpha/sync.md | 27 ++++++++++++--------------- 2 files changed, 41 insertions(+), 27 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a4c4c71..6a67828 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,19 @@ +2009-08-26 Uros Bizjak + + * config/alpha/sync.md: Update comment about unpredictable LL/SC lock + clearing by a taken branch. + (sync_): Split when epilogue_completed is set, + effectively after bbro pass. + (sync_nand): Ditto. + (sync_old_): Ditto. + (sync_old_nand): Ditto. + (sync_new_): Dito. + (sync_new_nand): Ditto. + (sync_compare_and_swap_1): Ditto. + (*sync_compare_and_swap): Ditto. + (sync_lock_test_and_set_1): Ditto. + ("sync_lock_test_and_set): Ditto. + 2009-08-25 Douglas B Rupp * hwint.h (HOST_LONG_FORMAT): New macro @@ -406,9 +422,10 @@ (sse5_maskcmp_uns3): Ditto. (sse5_maskcmp_uns23): Ditto. (sse5_pcom_tf3): Ditto. - - * config/i386/predicates.md (sse5_comparison_float_operator): New predicate to match the - comparison operators supported by the SSE5 com instruction. + + * config/i386/predicates.md (sse5_comparison_float_operator): + New predicate to match the comparison operators supported by + the SSE5 com instruction. (ix86_comparison_int_operator): New predicate to match just the signed int comparisons. (ix86_comparison_uns_operator): New predicate to match just the @@ -484,7 +501,7 @@ * config/crx/crx.h (CAN_ELIMINATE): Remove macro. * config/crx/crx.c (TARGET_CAN_ELIMINATE): Define macro. (crx_can_eliminate): New function. - + * config/fr30/fr30.h (CAN_ELIMINATE): Remove macro. * config/fr30/fr30.c (TARGET_CAN_ELIMINATE): Define macro. (fr30_can_eliminate): New function. @@ -649,23 +666,23 @@ 2009-08-24 Ramana Radhakrishnan - * config/arm/arm.c (output_return_instruction): Handle for - unified syntax. + * config/arm/arm.c (output_return_instruction): Handle for + unified syntax. 2009-08-24 Ramana Radhakrishnan - * config/arm/arm.c (arm_select_cc_mode): Handle subreg. + * config/arm/arm.c (arm_select_cc_mode): Handle subreg. 2009-08-24 Ramana Radhakrishnan - * config/arm/vfp.md (*arm_movdi_vfp): Mark as predicable. - (*arm_movdf_vfp): Likewise. + * config/arm/vfp.md (*arm_movdi_vfp): Mark as predicable. + (*arm_movdf_vfp): Likewise. 2009-08-24 Ramana Radhakrishnan - * config/arm/neon.md (vashl3): Rename from ashl3. - (vashr3): Rename from ashr3. - (vlshr3): Rename from lshr3. + * config/arm/neon.md (vashl3): Rename from ashl3. + (vashr3): Rename from ashr3. + (vlshr3): Rename from lshr3. 2009-08-24 Kai Tietz diff --git a/gcc/config/alpha/sync.md b/gcc/config/alpha/sync.md index 0712cb9..bb72102 100644 --- a/gcc/config/alpha/sync.md +++ b/gcc/config/alpha/sync.md @@ -62,11 +62,8 @@ [(set_attr "type" "st_c")]) ;; The Alpha Architecture Handbook says that it is UNPREDICTABLE whether -;; the lock is cleared by a TAKEN branch. If we were to honor that, it -;; would mean that we could not expand a ll/sc sequence until after the -;; final basic-block reordering pass. Fortunately, it appears that no -;; Alpha implementation ever built actually clears the lock on branches, -;; taken or not. +;; the lock is cleared by a TAKEN branch. This means that we can not +;; expand a ll/sc sequence until after the final basic-block reordering pass. (define_insn_and_split "sync_" [(set (match_operand:I48MODE 0 "memory_operand" "+m") @@ -77,7 +74,7 @@ (clobber (match_scratch:I48MODE 2 "=&r"))] "" "#" - "reload_completed" + "epilogue_completed" [(const_int 0)] { alpha_split_atomic_op (, operands[0], operands[1], @@ -96,7 +93,7 @@ (clobber (match_scratch:I48MODE 2 "=&r"))] "" "#" - "reload_completed" + "epilogue_completed" [(const_int 0)] { alpha_split_atomic_op (NOT, operands[0], operands[1], @@ -116,7 +113,7 @@ (clobber (match_scratch:I48MODE 3 "=&r"))] "" "#" - "reload_completed" + "epilogue_completed" [(const_int 0)] { alpha_split_atomic_op (, operands[1], operands[2], @@ -137,7 +134,7 @@ (clobber (match_scratch:I48MODE 3 "=&r"))] "" "#" - "reload_completed" + "epilogue_completed" [(const_int 0)] { alpha_split_atomic_op (NOT, operands[1], operands[2], @@ -158,7 +155,7 @@ (clobber (match_scratch:I48MODE 3 "=&r"))] "" "#" - "reload_completed" + "epilogue_completed" [(const_int 0)] { alpha_split_atomic_op (, operands[1], operands[2], @@ -179,7 +176,7 @@ (clobber (match_scratch:I48MODE 3 "=&r"))] "" "#" - "reload_completed" + "epilogue_completed" [(const_int 0)] { alpha_split_atomic_op (NOT, operands[1], operands[2], @@ -214,7 +211,7 @@ (clobber (match_scratch:DI 6 "=X,&r"))] "" "#" - "reload_completed" + "epilogue_completed" [(const_int 0)] { alpha_split_compare_and_swap_12 (mode, operands[0], operands[1], @@ -251,7 +248,7 @@ (clobber (match_scratch:I48MODE 4 "=&r"))] "" "#" - "reload_completed" + "epilogue_completed" [(const_int 0)] { alpha_split_compare_and_swap (operands[0], operands[1], operands[2], @@ -282,7 +279,7 @@ (clobber (match_scratch:DI 4 "=&r"))] "" "#" - "reload_completed" + "epilogue_completed" [(const_int 0)] { alpha_split_lock_test_and_set_12 (mode, operands[0], operands[1], @@ -301,7 +298,7 @@ (clobber (match_scratch:I48MODE 3 "=&r"))] "" "#" - "reload_completed" + "epilogue_completed" [(const_int 0)] { alpha_split_lock_test_and_set (operands[0], operands[1], -- 2.7.4