[ARM] Move comment about splitting Thumb1 patterns to thumb1.md
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Fri, 16 Jan 2015 16:58:58 +0000 (16:58 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Fri, 16 Jan 2015 16:58:58 +0000 (16:58 +0000)
* config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
* config/arm/thumb1.md: ... Here.

From-SVN: r219755

gcc/ChangeLog
gcc/config/arm/arm.md
gcc/config/arm/thumb1.md

index b4a620bfae42a5dd2abff9f6eeab34d01f3608b1..717bdbd8d44b413151ad12ed48433aaf9e53777f 100644 (file)
@@ -1,3 +1,8 @@
+2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
+       * config/arm/thumb1.md: ... Here.
+
 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
 
        * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
index 5e6649a5dd39c58fac66bb26e0ffae32d2b4a6b8..c88e3f1afd0acc51e6452315f74115bd7a9a7617 100644 (file)
 
 ;;- See file "rtl.def" for documentation on define_insn, match_*, et. al.
 
-;; Beware of splitting Thumb1 patterns that output multiple
-;; assembly instructions, in particular instruction such as SBC and
-;; ADC which consume flags.  For example, in the pattern thumb_subdi3
-;; below, the output SUB implicitly sets the flags (assembled to SUBS)
-;; and then the Carry flag is used by SBC to compute the correct
-;; result.  If we split thumb_subdi3 pattern into two separate RTL
-;; insns (using define_insn_and_split), the scheduler might place
-;; other RTL insns between SUB and SBC, possibly modifying the Carry
-;; flag used by SBC.  This might happen because most Thumb1 patterns
-;; for flag-setting instructions do not have explicit RTL for setting
-;; or clobbering the flags.  Instead, they have the attribute "conds"
-;; with value "set" or "clob".  However, this attribute is not used to
-;; identify dependencies and therefore the scheduler might reorder
-;; these instruction.  Currenly, this problem cannot happen because
-;; there are no separate Thumb1 patterns for individual instruction
-;; that consume flags (except conditional execution, which is treated
-;; differently).  In particular there is no Thumb1 armv6-m pattern for
-;; sbc or adc.
-
 \f
 ;;---------------------------------------------------------------------------
 ;; Constants
index ff423d8ed80d4a2079a6b0c860e50f52ed433950..b1a589774ea51cc34c8cec25735ac82fae10a641 100644 (file)
 ;; Insn patterns
 ;;
 
+;; Beware of splitting Thumb1 patterns that output multiple
+;; assembly instructions, in particular instruction such as SBC and
+;; ADC which consume flags.  For example, in the pattern thumb_subdi3
+;; below, the output SUB implicitly sets the flags (assembled to SUBS)
+;; and then the Carry flag is used by SBC to compute the correct
+;; result.  If we split thumb_subdi3 pattern into two separate RTL
+;; insns (using define_insn_and_split), the scheduler might place
+;; other RTL insns between SUB and SBC, possibly modifying the Carry
+;; flag used by SBC.  This might happen because most Thumb1 patterns
+;; for flag-setting instructions do not have explicit RTL for setting
+;; or clobbering the flags.  Instead, they have the attribute "conds"
+;; with value "set" or "clob".  However, this attribute is not used to
+;; identify dependencies and therefore the scheduler might reorder
+;; these instruction.  Currenly, this problem cannot happen because
+;; there are no separate Thumb1 patterns for individual instruction
+;; that consume flags (except conditional execution, which is treated
+;; differently).  In particular there is no Thumb1 armv6-m pattern for
+;; sbc or adc.
+
+
+
 (define_insn "*thumb1_adddi3"
   [(set (match_operand:DI          0 "register_operand" "=l")
        (plus:DI (match_operand:DI 1 "register_operand" "%0")