[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.
- [Qemu-devel] [PATCH v13 00/26] translate: [tcg] Generic translation framework, Lluís Vilanova, 2017/07/14
- [Qemu-devel] [PATCH v13 01/26] Pass generic CPUState to gen_intermediate_code(), Lluís Vilanova, 2017/07/14
- [Qemu-devel] [PATCH v13 02/26] target: [tcg] Use a generic enum for DISAS_ values, Lluís Vilanova, 2017/07/14
- [Qemu-devel] [PATCH v13 03/26] target: [tcg] Add generic translation framework, Lluís Vilanova, 2017/07/14
- [Qemu-devel] [PATCH v13 04/26] target/i386: [tcg] Port to DisasContextBase, Lluís Vilanova, 2017/07/14
- [Qemu-devel] [PATCH v13 05/26] target/i386: [tcg] Port to init_disas_context, Lluís Vilanova, 2017/07/14
- [Qemu-devel] [PATCH v13 06/26] target/i386: [tcg] Port to insn_start, Lluís Vilanova, 2017/07/14
- [Qemu-devel] [PATCH v13 07/26] target/i386: [tcg] Port to breakpoint_check, Lluís Vilanova, 2017/07/14
- [Qemu-devel] [PATCH v13 08/26] target/i386: [tcg] Port to translate_insn, Lluís Vilanova, 2017/07/14
- [Qemu-devel] [PATCH v13 09/26] target/i386: [tcg] Port to tb_stop, Lluís Vilanova, 2017/07/14
- [Qemu-devel] [PATCH v13 10/26] target/i386: [tcg] Port to disas_log, Lluís Vilanova, 2017/07/14
- [Qemu-devel] [PATCH v13 11/26] target/i386: [tcg] Port to generic translation framework, Lluís Vilanova, 2017/07/14
- [Qemu-devel] [PATCH v13 12/26] target/arm: [tcg] Port to DisasContextBase, Lluís Vilanova, 2017/07/14
- [Qemu-devel] [PATCH v13 13/26] target/arm: [tcg] Port to init_disas_context, Lluís Vilanova, 2017/07/14