+2010-09-13 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * config/arm/arm.md: (define_attr "conds"): Update comment.
+ * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
+ conds attribute to clob.
+ (arm_sync_compare_and_swapsi): Likewise.
+ (arm_sync_compare_and_swap<mode>): Likewise.
+ (arm_sync_lock_test_and_setsi): Likewise.
+ (arm_sync_lock_test_and_set<mode>): Likewise.
+ (arm_sync_new_<sync_optab>si): Likewise.
+ (arm_sync_new_nandsi): Likewise.
+ (arm_sync_new_<sync_optab><mode>): Likewise.
+ (arm_sync_new_nand<mode>): Likewise.
+ (arm_sync_old_<sync_optab>si): Likewise.
+ (arm_sync_old_nandsi): Likewise.
+ (arm_sync_old_<sync_optab><mode>): Likewise.
+ (arm_sync_old_nand<mode>): Likewise.
+
2010-09-13 Olivier Hainque <hainque@adacore.com>
* fwprop.c (forward_propagate_and_simplify): Only attach a
; CLOB means that the condition codes are altered in an undefined manner, if
; they are altered at all
;
-; UNCONDITIONAL means the instions can not be conditionally executed.
+; UNCONDITIONAL means the instruction can not be conditionally executed and
+; that the instruction does not use or alter the condition codes.
;
-; NOCOND means that the condition codes are neither altered nor affect the
-; output of this insn
+; NOCOND means that the instruction does not use or alter the condition
+; codes but can be converted into a conditionally exectuted instruction.
(define_attr "conds" "use,set,clob,unconditional,nocond"
(if_then_else
(set_attr "sync_new_value" "3")
(set_attr "sync_t1" "0")
(set_attr "sync_t2" "4")
- (set_attr "conds" "nocond")
+ (set_attr "conds" "clob")
(set_attr "predicable" "no")])
(define_insn "arm_sync_compare_and_swap<mode>"
(set_attr "sync_new_value" "3")
(set_attr "sync_t1" "0")
(set_attr "sync_t2" "4")
- (set_attr "conds" "nocond")
+ (set_attr "conds" "clob")
(set_attr "predicable" "no")])
(define_insn "arm_sync_lock_test_and_setsi"
(set_attr "sync_new_value" "2")
(set_attr "sync_t1" "0")
(set_attr "sync_t2" "3")
- (set_attr "conds" "nocond")
+ (set_attr "conds" "clob")
(set_attr "predicable" "no")])
(define_insn "arm_sync_lock_test_and_set<mode>"
(set_attr "sync_new_value" "2")
(set_attr "sync_t1" "0")
(set_attr "sync_t2" "3")
- (set_attr "conds" "nocond")
+ (set_attr "conds" "clob")
(set_attr "predicable" "no")])
(define_insn "arm_sync_new_<sync_optab>si"
(set_attr "sync_t1" "0")
(set_attr "sync_t2" "3")
(set_attr "sync_op" "<sync_optab>")
- (set_attr "conds" "nocond")
+ (set_attr "conds" "clob")
(set_attr "predicable" "no")])
(define_insn "arm_sync_new_nandsi"
(set_attr "sync_t1" "0")
(set_attr "sync_t2" "3")
(set_attr "sync_op" "nand")
- (set_attr "conds" "nocond")
+ (set_attr "conds" "clob")
(set_attr "predicable" "no")])
(define_insn "arm_sync_new_<sync_optab><mode>"
(set_attr "sync_t1" "0")
(set_attr "sync_t2" "3")
(set_attr "sync_op" "<sync_optab>")
- (set_attr "conds" "nocond")
+ (set_attr "conds" "clob")
(set_attr "predicable" "no")])
(define_insn "arm_sync_new_nand<mode>"
(set_attr "sync_t1" "0")
(set_attr "sync_t2" "3")
(set_attr "sync_op" "nand")
- (set_attr "conds" "nocond")
+ (set_attr "conds" "clob")
(set_attr "predicable" "no")])
(define_insn "arm_sync_old_<sync_optab>si"
(set_attr "sync_t1" "3")
(set_attr "sync_t2" "4")
(set_attr "sync_op" "<sync_optab>")
- (set_attr "conds" "nocond")
+ (set_attr "conds" "clob")
(set_attr "predicable" "no")])
(define_insn "arm_sync_old_nandsi"
(set_attr "sync_t1" "3")
(set_attr "sync_t2" "4")
(set_attr "sync_op" "nand")
- (set_attr "conds" "nocond")
+ (set_attr "conds" "clob")
(set_attr "predicable" "no")])
(define_insn "arm_sync_old_<sync_optab><mode>"
(set_attr "sync_t1" "3")
(set_attr "sync_t2" "4")
(set_attr "sync_op" "<sync_optab>")
- (set_attr "conds" "nocond")
+ (set_attr "conds" "clob")
(set_attr "predicable" "no")])
(define_insn "arm_sync_old_nand<mode>"
(set_attr "sync_t1" "3")
(set_attr "sync_t2" "4")
(set_attr "sync_op" "nand")
- (set_attr "conds" "nocond")
+ (set_attr "conds" "clob")
(set_attr "predicable" "no")])
(define_insn "*memory_barrier"