On Tue, Jun 10, 2008 at 8:22 PM, Joern Rennecke <[EMAIL PROTECTED]> wrote: > On Tue, Jun 10, 2008 at 01:44:08PM -0400, Kaveh R. GHAZI wrote: >> I don't understand the point about the asm. > > I need to modify the SET_SRC of the individual SETs presented by > note_stores. The caller of note_stores can't pass in the SET RTXes, > since they vary for each call of the callback function; it can only pass > in a copy of the entire instruction pattern. > So this would be something like: > > write_profile_sections (rtx dest ATTRIBUTE_UNUSED, const_rtx const_x, > void *data) > { > write_profile_sections_data *r = data; > htab_t htab = r->htab; > rtx x; > > __asm__ ("" : "=rX" (x) : "0" (const_x), "X" (r->pattern)); > ...
Eh, right, just the thought of doing this in GCC is IMVHO Wrong ;-) > note_stores isn't very large, and with the assembly cruft thrown in > and all this pretending to use const types when we aren't, the balance > is tilted in favour of another note_stores copy. Actually, hold on a second please. You're only talking in terms of solutions. But what *exactly* are you trying to do? You ave to modify the SET_SRC of some SETs. What do these SET_SRCs look like? This is important, because if you are only looking at registers, maybe you can easily access them through DF_INSN_DEFS. Gr. Steven