qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v13 03/26] target: [tcg] Add generic translation


From: Lluís Vilanova
Subject: Re: [Qemu-devel] [PATCH v13 03/26] target: [tcg] Add generic translation framework
Date: Sat, 15 Jul 2017 10:34:20 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Richard Henderson writes:

> On 07/13/2017 10:25 PM, Lluís Vilanova wrote:
>> +        /* Pass breakpoint hits to target for further processing */
>> +        if (unlikely(!QTAILQ_EMPTY(&cpu->breakpoints))) {
>> +            CPUBreakpoint *bp;
>> +            QTAILQ_FOREACH(bp, &cpu->breakpoints, entry) {
>> +                if (bp->pc == db->pc_next) {
>> +                    if (ops->breakpoint_check(db, cpu, bp)) {
>> +                        break;
>> +                    }
>> +                }
>> +            }
>> +
>> +            if (db->is_jmp == DISAS_NORETURN) {
>> +                break;
>> +            }
>> +        }

> You should accept any != DISAS_NEXT value here.
> (1) Because DISAS_NEXT == 0 and it's the quickest test, and
> (2) If you *require* NORETURN here, then you've also got to
> convert some of the backends to not use DISAS_TARGET_N, which
> as of [07/26] target/i386: [tcg] Port to breakpoint_check, I
> haven't seen happen.

No, arm has cases with both DISAS_TARGET_N and DISAS_NORETURN, where both end
the bp check loop, but only DISAS_NORETURN breaks the translation loop (the
previous goto done_generating).

And i386 has no DISAS_NORETURN simply because that's not the behaviour in its
original code.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]