diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2009-08-26 08:19:37 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2009-08-26 08:19:37 +0200 |
commit | 7b3d1847e637cae5e6ea174718df19ceaa5ae290 (patch) | |
tree | 286bc9b9a9bcd8b1be5ebb0f39b9e09cec089c69 /gcc | |
parent | 1dad57e65d9539eccc652dbb42b5574db72bb3fc (diff) | |
download | gcc-7b3d1847e637cae5e6ea174718df19ceaa5ae290.zip gcc-7b3d1847e637cae5e6ea174718df19ceaa5ae290.tar.gz gcc-7b3d1847e637cae5e6ea174718df19ceaa5ae290.tar.bz2 |
sync.md: Update comment about unpredictable LL/SC lock clearing by a taken branch.
* 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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 41 | ||||
-rw-r--r-- | gcc/config/alpha/sync.md | 27 |
2 files changed, 41 insertions, 27 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a4c4c71..6a67828d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 @@ -406,9 +422,10 @@ (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 @@ -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 <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> 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_<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], @@ -116,7 +113,7 @@ (clobber (match_scratch:I48MODE 3 "=&r"))] "" "#" - "reload_completed" + "epilogue_completed" [(const_int 0)] { alpha_split_atomic_op (<CODE>, 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 (<CODE>, 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>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>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], |