rtlanal.c (rtx_varies_p): Volatile asms vary.
* rtlanal.c (rtx_varies_p): Volatile asms vary. (rtx_unstable_p): Restructure code. Volatile asms are unstable. From-SVN: r36462
This commit is contained in:
parent
f93dacbdef
commit
ae0fb1b9fb
2 changed files with 39 additions and 11 deletions
|
@ -1,3 +1,9 @@
|
|||
Sat Sep 16 19:42:50 EDT 2000 John Wehle (john@feith.com)
|
||||
|
||||
* rtlanal.c (rtx_varies_p): Volatile asms vary.
|
||||
(rtx_unstable_p): Restructure code. Volatile asms
|
||||
are unstable.
|
||||
|
||||
Sat Sep 16 14:35:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||||
|
||||
* stor-layout.c (place_field): Don't do anything if field or
|
||||
|
|
|
@ -52,20 +52,36 @@ rtx_unstable_p (x)
|
|||
register int i;
|
||||
register const char *fmt;
|
||||
|
||||
if (code == MEM)
|
||||
return ! RTX_UNCHANGING_P (x) || rtx_unstable_p (XEXP (x, 0));
|
||||
switch (code)
|
||||
{
|
||||
case MEM:
|
||||
return ! RTX_UNCHANGING_P (x) || rtx_unstable_p (XEXP (x, 0));
|
||||
|
||||
if (code == QUEUED)
|
||||
return 1;
|
||||
case QUEUED:
|
||||
return 1;
|
||||
|
||||
if (CONSTANT_P (x))
|
||||
return 0;
|
||||
case CONST:
|
||||
case CONST_INT:
|
||||
case CONST_DOUBLE:
|
||||
case SYMBOL_REF:
|
||||
case LABEL_REF:
|
||||
return 0;
|
||||
|
||||
if (code == REG)
|
||||
/* As in rtx_varies_p, we have to use the actual rtx, not reg number. */
|
||||
return ! (x == frame_pointer_rtx || x == hard_frame_pointer_rtx
|
||||
|| x == arg_pointer_rtx || x == pic_offset_table_rtx
|
||||
|| RTX_UNCHANGING_P (x));
|
||||
case REG:
|
||||
/* As in rtx_varies_p, we have to use the actual rtx, not reg number. */
|
||||
return ! (x == frame_pointer_rtx || x == hard_frame_pointer_rtx
|
||||
|| x == arg_pointer_rtx || x == pic_offset_table_rtx
|
||||
|| RTX_UNCHANGING_P (x));
|
||||
|
||||
case ASM_OPERANDS:
|
||||
if (MEM_VOLATILE_P (x))
|
||||
return 1;
|
||||
|
||||
/* FALLTHROUGH */
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
fmt = GET_RTX_FORMAT (code);
|
||||
for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
|
||||
|
@ -126,6 +142,12 @@ rtx_varies_p (x)
|
|||
(in fact is it related specifically to operand 1). */
|
||||
return rtx_varies_p (XEXP (x, 1));
|
||||
|
||||
case ASM_OPERANDS:
|
||||
if (MEM_VOLATILE_P (x))
|
||||
return 1;
|
||||
|
||||
/* FALLTHROUGH */
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue