1
# DP: Fix PR rtl-optimization/61801.
5
2014-07-17 Richard Biener <rguenther@suse.de>
7
PR rtl-optimization/61801
8
* sched-deps.c (sched_analyze_2): For ASM_OPERANDS and
9
ASM_INPUT don't set reg_pending_barrier if it appears in a
13
2014-07-28 Richard Biener <rguenther@suse.de>
15
PR rtl-optimization/61801
16
* gcc.target/i386/pr61801.c: Fix testcase.
18
2014-07-28 Richard Biener <rguenther@suse.de>
20
PR rtl-optimization/61801
21
* gcc.target/i386/pr61801.c: New testcase.
23
--- a/src/gcc/sched-deps.c
24
+++ a/src/gcc/sched-deps.c
26
Consider for instance a volatile asm that changes the fpu rounding
27
mode. An insn should not be moved across this even if it only uses
28
pseudo-regs because it might give an incorrectly rounded result. */
29
- if (code != ASM_OPERANDS || MEM_VOLATILE_P (x))
30
+ if ((code != ASM_OPERANDS || MEM_VOLATILE_P (x))
31
+ && !DEBUG_INSN_P (insn))
32
reg_pending_barrier = TRUE_BARRIER;
34
/* For all ASM_OPERANDS, we must traverse the vector of input operands.
35
--- a/src/gcc/testsuite/gcc.target/i386/pr61801.c
36
+++ b/src/gcc/testsuite/gcc.target/i386/pr61801.c
38
+/* { dg-do compile } */
39
+/* { dg-options "-Os -fcompare-debug" } */
53
+ asm volatile("" : "=a"(e) : "0"(a), "i"(0));