[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/4] new Blackfin QEMU port
From: |
Mike Frysinger |
Subject: |
Re: [Qemu-devel] [PATCH 0/4] new Blackfin QEMU port |
Date: |
Tue, 1 Feb 2011 12:20:52 -0500 |
On Tue, Feb 1, 2011 at 05:31, Peter Maydell wrote:
> So for instance here:
>
> +static void gen_hwloop_check(DisasContext *dc)
> +{
> + bool loop1, loop0;
> + int endl;
> +
> + loop1 = (dc->pc == dc->env->lbreg[1]);
> + loop0 = (dc->pc == dc->env->lbreg[0]);
>
> I suspect that this check of pc against the lbreg[]
> values should be being done in the generated code,
> not at translate time.
that is not feasible from a performance perspective. what you're
proposing is that i put a check on *every* insn to see if the current
pc is equal to either of the loop registers.
the way i'm doing it atm i believe is safe. if a lbreg changes, then
i invalidate any TBs associated with the old value and any TBs
associated with the new value. thus i force the code to be
retranslated, and i can assume the lbreg values are constant when
doing so.
-mike