aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/cse.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/cse.c')
-rw-r--r--gcc-4.9/gcc/cse.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/cse.c b/gcc-4.9/gcc/cse.c
index 852d13ebf..b8223f7a3 100644
--- a/gcc-4.9/gcc/cse.c
+++ b/gcc-4.9/gcc/cse.c
@@ -4642,6 +4642,13 @@ cse_insn (rtx insn)
&& REGNO (dest) >= FIRST_PSEUDO_REGISTER)
sets[i].src_volatile = 1;
+ /* Also do not record result of a non-volatile inline asm with
+ more than one result or with clobbers, we do not want CSE to
+ break the inline asm apart. */
+ else if (GET_CODE (src) == ASM_OPERANDS
+ && GET_CODE (x) == PARALLEL)
+ sets[i].src_volatile = 1;
+
#if 0
/* It is no longer clear why we used to do this, but it doesn't
appear to still be needed. So let's try without it since this