aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2009-08-26 08:19:37 +0200
committerUros Bizjak <uros@gcc.gnu.org>2009-08-26 08:19:37 +0200
commit7b3d1847e637cae5e6ea174718df19ceaa5ae290 (patch)
tree286bc9b9a9bcd8b1be5ebb0f39b9e09cec089c69 /gcc
parent1dad57e65d9539eccc652dbb42b5574db72bb3fc (diff)
downloadgcc-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/ChangeLog41
-rw-r--r--gcc/config/alpha/sync.md27
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],