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. r~