Commit 4f2da32b by Kenneth Zadeck Committed by Kenneth Zadeck

df-scan.c (df-uses-record): Add case zero_extract of mem.

2009-11-04  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* df-scan.c (df-uses-record): Add case zero_extract of mem.

From-SVN: r153924
parent cb5f2074
2009-11-04 Kenneth Zadeck <zadeck@naturalbridge.com>
* df-scan.c (df-uses-record): Add case zero_extract of mem.
2009-11-04 Eric Botcazou <ebotcazou@adacore.com> 2009-11-04 Eric Botcazou <ebotcazou@adacore.com>
PR target/10127 PR target/10127
...@@ -3248,10 +3248,23 @@ df_uses_record (enum df_ref_class cl, struct df_collection_rec *collection_rec, ...@@ -3248,10 +3248,23 @@ df_uses_record (enum df_ref_class cl, struct df_collection_rec *collection_rec,
width = INTVAL (XEXP (dst, 1)); width = INTVAL (XEXP (dst, 1));
offset = INTVAL (XEXP (dst, 2)); offset = INTVAL (XEXP (dst, 2));
mode = GET_MODE (dst); mode = GET_MODE (dst);
df_uses_record (DF_REF_EXTRACT, collection_rec, &XEXP (dst, 0), if (GET_CODE (XEXP (dst,0)) == MEM)
DF_REF_REG_USE, bb, insn_info, {
DF_REF_READ_WRITE | DF_REF_ZERO_EXTRACT, /* Handle the case of zero_extract(mem(...)) in the set dest.
width, offset, mode); This special case is allowed only if the mem is a single byte and
is useful to set a bitfield in memory. */
df_uses_record (DF_REF_EXTRACT, collection_rec, &XEXP (XEXP (dst,0), 0),
DF_REF_REG_MEM_STORE, bb, insn_info,
DF_REF_ZERO_EXTRACT,
width, offset, mode);
}
else
{
df_uses_record (DF_REF_EXTRACT, collection_rec, &XEXP (dst, 0),
DF_REF_REG_USE, bb, insn_info,
DF_REF_READ_WRITE | DF_REF_ZERO_EXTRACT,
width, offset, mode);
}
} }
else else
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment