aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtlanal.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@libertysurf.fr>2003-01-09 12:13:07 +0100
committerEric Botcazou <ebotcazou@gcc.gnu.org>2003-01-09 11:13:07 +0000
commit4c46ea235323cd0283d998d9860d8596811a704c (patch)
tree111c11b5a4cc31685a7092d95fa33e235dc2f666 /gcc/rtlanal.c
parentf56e86bd9c96aed9d101e8f3893719fb29866c58 (diff)
downloadgcc-4c46ea235323cd0283d998d9860d8596811a704c.zip
gcc-4c46ea235323cd0283d998d9860d8596811a704c.tar.gz
gcc-4c46ea235323cd0283d998d9860d8596811a704c.tar.bz2
re PR inline-asm/8832 (traditional "asm volatile" code is illegally optimized)
PR inline-asm/8832 * tree.h (expand_asm): New prototype. * stmt.c (expand_asm): Set the MEM_VOLATILE_P flag if instructed to do so. * c-semantics (genrtl_asm_stmt): Pass the RID_VOLATILE qualifier down to expand_asm. * c-typeck.c (simple_asm_stmt): Set the RID_VOLATILE qualifier. * rtlanal.c (volatile_insn_p) [ASM_INPUT]: Test the MEM_VOLATILE_P flag. (volatile_refs_p) [ASM_INPUT]: Likewise. (side_effects_p) [ASM_INPUT]: Likewise. From-SVN: r61099
Diffstat (limited to 'gcc/rtlanal.c')
-rw-r--r--gcc/rtlanal.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index 63d7feb..030682e 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -2237,7 +2237,6 @@ volatile_insn_p (x)
case REG:
case SCRATCH:
case CLOBBER:
- case ASM_INPUT:
case ADDR_VEC:
case ADDR_DIFF_VEC:
case CALL:
@@ -2248,6 +2247,7 @@ volatile_insn_p (x)
/* case TRAP_IF: This isn't clear yet. */
return 1;
+ case ASM_INPUT:
case ASM_OPERANDS:
if (MEM_VOLATILE_P (x))
return 1;
@@ -2304,7 +2304,6 @@ volatile_refs_p (x)
case REG:
case SCRATCH:
case CLOBBER:
- case ASM_INPUT:
case ADDR_VEC:
case ADDR_DIFF_VEC:
return 0;
@@ -2313,6 +2312,7 @@ volatile_refs_p (x)
return 1;
case MEM:
+ case ASM_INPUT:
case ASM_OPERANDS:
if (MEM_VOLATILE_P (x))
return 1;
@@ -2368,7 +2368,6 @@ side_effects_p (x)
case PC:
case REG:
case SCRATCH:
- case ASM_INPUT:
case ADDR_VEC:
case ADDR_DIFF_VEC:
return 0;
@@ -2391,6 +2390,7 @@ side_effects_p (x)
return 1;
case MEM:
+ case ASM_INPUT:
case ASM_OPERANDS:
if (MEM_VOLATILE_P (x))
return 1;