sync.md: Update comment about unpredictable LL/SC lock clearing by a taken branch.
authorUros Bizjak <uros@gcc.gnu.org>
Wed, 26 Aug 2009 06:19:37 +0000 (08:19 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 26 Aug 2009 06:19:37 +0000 (08:19 +0200)
* config/alpha/sync.md: Update comment about unpredictable LL/SC lock
clearing by a taken branch.
(sync_<fetchop_name><mode>): Split when epilogue_completed is set,
effectively after bbro pass.
(sync_nand<mode>): Ditto.
(sync_old_<fetchop_name><mode>): Ditto.
(sync_old_nand<mode>): Ditto.
(sync_new_<fetchop_name><mode>): Dito.
(sync_new_nand<mode>): Ditto.
(sync_compare_and_swap<mode>_1): Ditto.
(*sync_compare_and_swap<mode>): Ditto.
(sync_lock_test_and_set<mode>_1): Ditto.
("sync_lock_test_and_set<mode>): Ditto.

From-SVN: r151115

gcc/ChangeLog
gcc/config/alpha/sync.md

index a4c4c717dc098f154636a003a47f608f6fd48cee..6a67828d7ae060e8733d78b74e91d15a15f82f63 100644 (file)
@@ -1,3 +1,19 @@
+2009-08-26  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/alpha/sync.md: Update comment about unpredictable LL/SC lock
+       clearing by a taken branch.
+       (sync_<fetchop_name><mode>): Split when epilogue_completed is set,
+       effectively after bbro pass.
+       (sync_nand<mode>): Ditto.
+       (sync_old_<fetchop_name><mode>): Ditto.
+       (sync_old_nand<mode>): Ditto.
+       (sync_new_<fetchop_name><mode>): Dito.
+       (sync_new_nand<mode>): Ditto.
+       (sync_compare_and_swap<mode>_1): Ditto.
+       (*sync_compare_and_swap<mode>): Ditto.
+       (sync_lock_test_and_set<mode>_1): Ditto.
+       ("sync_lock_test_and_set<mode>): Ditto.
+
 2009-08-25  Douglas B Rupp  <rupp@gnat.com>
 
        * hwint.h (HOST_LONG_FORMAT): New macro
        (sse5_maskcmp_uns<mode>3): Ditto.
        (sse5_maskcmp_uns2<mode>3): Ditto.
        (sse5_pcom_tf<mode>3): 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
        * 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.
 
 2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
-       * 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  <ramana.radhakrishnan@arm.com>
 
-       * 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  <ramana.radhakrishnan@arm.com>
 
-        * 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  <ramana.radhakrishnan@arm.com>
 
-       * config/arm/neon.md (vashl<mode>3): Rename from ashl<mode>3.
-       (vashr<mode>3): Rename from ashr<mode>3.
-       (vlshr<mode>3): Rename from lshr<mode>3.
+       * config/arm/neon.md (vashl<mode>3): Rename from ashl<mode>3.
+       (vashr<mode>3): Rename from ashr<mode>3.
+       (vlshr<mode>3): Rename from lshr<mode>3.
 
 2009-08-24  Kai Tietz  <kai.tietz@onevision.com>
 
index 0712cb9da67a344bf306ddd8997177ea82416b36..bb7210239fd1b9919cfad6b9026f73e1fd0a3b2e 100644 (file)
   [(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_<fetchop_name><mode>"
   [(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 (<CODE>, 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],
    (clobber (match_scratch:I48MODE 3 "=&r"))]
   ""
   "#"
-  "reload_completed"
+  "epilogue_completed"
   [(const_int 0)]
 {
   alpha_split_atomic_op (<CODE>, operands[1], operands[2],
    (clobber (match_scratch:I48MODE 3 "=&r"))]
   ""
   "#"
-  "reload_completed"
+  "epilogue_completed"
   [(const_int 0)]
 {
   alpha_split_atomic_op (NOT, operands[1], operands[2],
    (clobber (match_scratch:I48MODE 3 "=&r"))]
   ""
   "#"
-  "reload_completed"
+  "epilogue_completed"
   [(const_int 0)]
 {
   alpha_split_atomic_op (<CODE>, operands[1], operands[2],
    (clobber (match_scratch:I48MODE 3 "=&r"))]
   ""
   "#"
-  "reload_completed"
+  "epilogue_completed"
   [(const_int 0)]
 {
   alpha_split_atomic_op (NOT, operands[1], operands[2],
    (clobber (match_scratch:DI 6 "=X,&r"))]
   ""
   "#"
-  "reload_completed"
+  "epilogue_completed"
   [(const_int 0)]
 {
   alpha_split_compare_and_swap_12 (<MODE>mode, operands[0], operands[1],
    (clobber (match_scratch:I48MODE 4 "=&r"))]
   ""
   "#"
-  "reload_completed"
+  "epilogue_completed"
   [(const_int 0)]
 {
   alpha_split_compare_and_swap (operands[0], operands[1], operands[2],
    (clobber (match_scratch:DI 4 "=&r"))]
   ""
   "#"
-  "reload_completed"
+  "epilogue_completed"
   [(const_int 0)]
 {
   alpha_split_lock_test_and_set_12 (<MODE>mode, operands[0], operands[1],
    (clobber (match_scratch:I48MODE 3 "=&r"))]
   ""
   "#"
-  "reload_completed"
+  "epilogue_completed"
   [(const_int 0)]
 {
   alpha_split_lock_test_and_set (operands[0], operands[1],