[LVU] set ppc64 blockage's length to zero
authorAlexandre Oliva <aoliva@redhat.com>
Fri, 9 Feb 2018 10:39:28 +0000 (10:39 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Fri, 9 Feb 2018 10:39:28 +0000 (10:39 +0000)
LVU requires the zero-length (pseudo) insns's length to reflect
reality.  If they don't, it may assume there's a PC change where there
isn't any, and then a view-aware assembler will detect the problem and
complain about out-of-sync views.

ppc blockage pseudo-insns did not have the length attribute explicitly
set in them, so they inherited the attribute's default value, and that
was nonzero.

for  gcc/ChangeLog

* config/rs6000/rs6000.md (blockage): Set length to zero.

From-SVN: r257520

gcc/ChangeLog
gcc/config/rs6000/rs6000.md

index 7ed08fa..fc3d80c 100644 (file)
@@ -1,3 +1,7 @@
+2018-02-09  Alexandre Oliva <aoliva@redhat.com>
+
+       * config/rs6000/rs6000.md (blockage): Set length to zero.
+
 2018-02-09  Eric Botcazou  <ebotcazou@adacore.com>
 
        * expr.c (optimize_bitfield_assignment_op): Remove obsolete assertion.
index 33f0d95..8aa4e0e 100644 (file)
 (define_insn "blockage"
   [(unspec_volatile [(const_int 0)] UNSPECV_BLOCK)]
   ""
-  "")
+  ""
+  [(set_attr "length" "0")])
 
 (define_expand "probe_stack_address"
   [(use (match_operand 0 "address_operand"))]