diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2018-02-09 10:39:28 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2018-02-09 10:39:28 +0000 |
commit | c29529aa3dba5ef4e4f6e10452c53af4d25b6454 (patch) | |
tree | 9df59a1133c078ea070fb5f198409aa77fc9a829 | |
parent | 8ed6f54304aac6a08b6d14663cbe46e3c47ce25e (diff) | |
download | gcc-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/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 3 |
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"))] |