diff options
author | Alan Modra <amodra@gmail.com> | 2013-09-24 21:02:28 +0930 |
---|---|---|
committer | Alan Modra <amodra@gcc.gnu.org> | 2013-09-24 21:02:28 +0930 |
commit | 5a8c2b571c68cea56cab84c90bf407363c8a3587 (patch) | |
tree | f766572dc170a811c372091c20ec61420cd13e4f /gcc/stmt.c | |
parent | f40333afeb570012ed42439cb9ce3c7aaa63b916 (diff) | |
download | gcc-5a8c2b571c68cea56cab84c90bf407363c8a3587.zip gcc-5a8c2b571c68cea56cab84c90bf407363c8a3587.tar.gz gcc-5a8c2b571c68cea56cab84c90bf407363c8a3587.tar.bz2 |
re PR middle-end/57134 (ICE with -mstrict-align and inline assembly on ppc64)
PR middle-end/57134
PR middle-end/57586
* stmt.c (expand_asm_operands): Call expand_expr with
EXPAND_MEMORY for output operands that disallow regs. Don't
use EXPAND_WRITE on inout operands.
From-SVN: r202866
Diffstat (limited to 'gcc/stmt.c')
-rw-r--r-- | gcc/stmt.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -806,7 +806,10 @@ expand_asm_operands (tree string, tree outputs, tree inputs, || ! allows_reg || is_inout) { - op = expand_expr (val, NULL_RTX, VOIDmode, EXPAND_WRITE); + op = expand_expr (val, NULL_RTX, VOIDmode, + !allows_reg ? EXPAND_MEMORY + : !is_inout ? EXPAND_WRITE + : EXPAND_NORMAL); if (MEM_P (op)) op = validize_mem (op); |