aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2018-02-09 10:39:28 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2018-02-09 10:39:28 +0000
commitc29529aa3dba5ef4e4f6e10452c53af4d25b6454 (patch)
tree9df59a1133c078ea070fb5f198409aa77fc9a829
parent8ed6f54304aac6a08b6d14663cbe46e3c47ce25e (diff)
downloadgcc-c29529aa3dba5ef4e4f6e10452c53af4d25b6454.zip
gcc-c29529aa3dba5ef4e4f6e10452c53af4d25b6454.tar.gz
gcc-c29529aa3dba5ef4e4f6e10452c53af4d25b6454.tar.bz2
[LVU] set ppc64 blockage's length to zero
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
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/rs6000/rs6000.md3
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7ed08fa..fc3d80c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 33f0d95..8aa4e0e 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -11063,7 +11063,8 @@
(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"))]