aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arm/iterators.md
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/arm/iterators.md')
-rw-r--r--gcc/config/arm/iterators.md7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/config/arm/iterators.md b/gcc/config/arm/iterators.md
index dbf7c4ec019..26dbef98439 100644
--- a/gcc/config/arm/iterators.md
+++ b/gcc/config/arm/iterators.md
@@ -45,6 +45,9 @@
;; A list of the 32bit and 64bit integer modes
(define_mode_iterator SIDI [SI DI])
+;; A list of atomic compare and swap success return modes
+(define_mode_iterator CCSI [(CC_Z "TARGET_32BIT") (SI "TARGET_THUMB1")])
+
;; A list of modes which the VFP unit can handle
(define_mode_iterator SDF [(SF "") (DF "TARGET_VFP_DOUBLE")])
@@ -415,6 +418,10 @@
;; Mode attributes
;;----------------------------------------------------------------------------
+;; Determine name of atomic compare and swap from success result mode. This
+;; distinguishes between 16-bit Thumb and 32-bit Thumb/ARM.
+(define_mode_attr arch [(CC_Z "32") (SI "t1")])
+
;; Determine element size suffix from vector mode.
(define_mode_attr MMX_char [(V8QI "b") (V4HI "h") (V2SI "w") (DI "d")])