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