On 19 December 2013 20:30, Richard Henderson <r...@twiddle.net> wrote:
> On 12/17/2013 07:12 AM, Peter Maydell wrote:
>> +/* Force a TB lookup after an instruction that changes the CPU state */
>> +static inline void gen_lookup_tb(DisasContext *s)
>> +{
>> +    gen_a64_set_pc_im(s->pc);
>> +    s->is_jmp = DISAS_UPDATE;
>> +}
>> +
>
> I'm a bit surprised that this set_pc doesn't happen in
> gen_intermediate_code_internal_a64.  Otherwise, what's the point in
> distinguishing between DISAS_JUMP and DISAS_UPDATE?

I just borrowed this from the 32 bit decoder, which also sets PC
in gen_lookup_tb(). However you're right that we might as well
do the set pc in the top level loop. I've adjusted that loop to do so
and dropped the gen_lookup_tb() function in favour of just setting
s->is_jmp = DISAS_UPDATE directly at its callsites.

thanks
-- PMM

Reply via email to