diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/sync.md | 6 |
2 files changed, 7 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 91a3e45c784..ba4ae5f7b44 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-04-12 Segher Boessenkool <segher@kernel.crashing.org> + + * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test + for quad_address_p for TImode, instead of just not indexed_address. + 2017-04-12 Richard Biener <rguenther@suse.de> Bernd Edlinger <bernd.edlinger@hotmail.de> diff --git a/gcc/config/rs6000/sync.md b/gcc/config/rs6000/sync.md index 160713ac0cf..2a1828e3e7a 100644 --- a/gcc/config/rs6000/sync.md +++ b/gcc/config/rs6000/sync.md @@ -157,8 +157,7 @@ rtx op1 = operands[1]; rtx pti_reg = gen_reg_rtx (PTImode); - // Can't have indexed address for 'lq' - if (indexed_address (XEXP (op1, 0), TImode)) + if (!quad_address_p (XEXP (op1, 0), TImode, false)) { rtx old_addr = XEXP (op1, 0); rtx new_addr = force_reg (Pmode, old_addr); @@ -231,8 +230,7 @@ rtx op1 = operands[1]; rtx pti_reg = gen_reg_rtx (PTImode); - // Can't have indexed address for 'stq' - if (indexed_address (XEXP (op0, 0), TImode)) + if (!quad_address_p (XEXP (op0, 0), TImode, false)) { rtx old_addr = XEXP (op0, 0); rtx new_addr = force_reg (Pmode, old_addr); |