]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Several instructions disassemble a zero immediate as wzr/xzr due to using a register...
authorWilco Dijkstra <wdijkstr@arm.com>
Thu, 28 Jan 2016 11:45:06 +0000 (11:45 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Thu, 28 Jan 2016 11:45:06 +0000 (11:45 +0000)
Several instructions disassemble a zero immediate as wzr/xzr due to
using a register operand in the disassembly.  Avoid this by removing
the register operand.

2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>

* config/aarch64/aarch64.md (ccmp<mode>): Disassemble
immediate as %1.
(add<mode>3_compare0): Likewise.
(addsi3_compare0_uxtw): Likewise.
(add<mode>3nr_compare0): Likewise.
(compare_neg<mode>): Likewise.
(<optab><mode>3): Likewise.

From-SVN: r232921

gcc/ChangeLog
gcc/config/aarch64/aarch64.md

index aa98585688a6f30907c9b98750f22853f17d3d75..99f2bdb32d75b4d54a72d30504b1850326dcee49 100644 (file)
@@ -1,3 +1,13 @@
+2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
+
+       * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
+       immediate as %1.
+       (add<mode>3_compare0): Likewise.
+       (addsi3_compare0_uxtw): Likewise.
+       (add<mode>3nr_compare0): Likewise.
+       (compare_neg<mode>): Likewise.
+       (<optab><mode>3): Likewise.
+
 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
 
        * tree-vect-stmts.c (vectorizable_comparison): Add
index 71fc514fbec790fa4048669c2efb93ae43b2ccc6..5d35261bfbea0f1d8fb310f1daa4fb2bcbb92804 100644 (file)
   ""
   "@
    ccmp\\t%<w>2, %<w>3, %k5, %m4
-   ccmp\\t%<w>2, %<w>3, %k5, %m4
+   ccmp\\t%<w>2, %3, %k5, %m4
    ccmn\\t%<w>2, #%n3, %k5, %m4"
   [(set_attr "type" "alus_sreg,alus_imm,alus_imm")]
 )
   ""
   "@
   adds\\t%<w>0, %<w>1, %<w>2
-  adds\\t%<w>0, %<w>1, %<w>2
+  adds\\t%<w>0, %<w>1, %2
   subs\\t%<w>0, %<w>1, #%n2"
   [(set_attr "type" "alus_sreg,alus_imm,alus_imm")]
 )
   ""
   "@
   adds\\t%w0, %w1, %w2
-  adds\\t%w0, %w1, %w2
+  adds\\t%w0, %w1, %2
   subs\\t%w0, %w1, #%n2"
   [(set_attr "type" "alus_sreg,alus_imm,alus_imm")]
 )
   ""
   "@
   cmn\\t%<w>0, %<w>1
-  cmn\\t%<w>0, %<w>1
+  cmn\\t%<w>0, %1
   cmp\\t%<w>0, #%n1"
   [(set_attr "type" "alus_sreg,alus_imm,alus_imm")]
 )
   ""
   "@
    cmp\\t%<w>0, %<w>1
-   cmp\\t%<w>0, %<w>1
+   cmp\\t%<w>0, %1
    cmn\\t%<w>0, #%n1"
   [(set_attr "type" "alus_sreg,alus_imm,alus_imm")]
 )
   ""
   "@
   <logical>\\t%<w>0, %<w>1, %<w>2
-  <logical>\\t%<w>0, %<w>1, %<w>2
+  <logical>\\t%<w>0, %<w>1, %2
   <logical>\\t%0.<Vbtype>, %1.<Vbtype>, %2.<Vbtype>"
   [(set_attr "type" "logic_reg,logic_imm,neon_logic")
    (set_attr "simd" "*,*,yes")]