[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 05/10] qemu-tech: document lazy condition code e
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 05/10] qemu-tech: document lazy condition code evaluation in cpu.h |
Date: |
Thu, 6 Oct 2016 18:21:23 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 |
On 06/10/2016 18:18, Emilio G. Cota wrote:
> On Thu, Oct 06, 2016 at 17:24:18 +0200, Paolo Bonzini wrote:
>> Unlike the other sections, they are pretty specific to a particular CPU.
>>
>> Signed-off-by: Paolo Bonzini <address@hidden>
>> ---
>> qemu-tech.texi | 25 -------------------------
>> target-cris/cpu.h | 7 +++++++
>> target-i386/cpu.h | 7 +++++++
>> target-m68k/cpu.h | 8 ++++++++
>> target-sparc/cpu.h | 5 +++++
>> 5 files changed, 27 insertions(+), 25 deletions(-)
> (snip)
>> diff --git a/target-cris/cpu.h b/target-cris/cpu.h
>> index 7d7fe6e..6d3de56 100644
>> --- a/target-cris/cpu.h
>> +++ b/target-cris/cpu.h
>> @@ -223,6 +223,13 @@ int cpu_cris_signal_handler(int host_signum, void
>> *pinfo,
>> void cris_initialize_tcg(void);
>> void cris_initialize_crisv10_tcg(void);
>>
>> +/* Instead of computing the condition codes after each x86 instruction,
>> + * QEMU just stores one operand (called CC_SRC), the result
>> + * (called CC_DST) and the type of operation (called CC_OP). When the
>> + * condition codes are needed, the condition codes can be calculated
>> + * using this information. Condition codes are not generated if they
>> + * are only needed for conditional branches.
>> + */
>
> This text doesn't seem to be cris-specific, e.g.:
> - "each x86 instruction"
> - CC_SRC (git grep CC_SRC here doesn't return anything)
> - CC_DST (ditto)
Yeah, it's cc_src and cc_dest. The uppercase is a relic of dyngen
(pre-TCG). Same for m68k.
Paolo
>
>> enum {
>> CC_OP_DYNAMIC, /* Use env->cc_op */
>> CC_OP_FLAGS,
>> diff --git a/target-i386/cpu.h b/target-i386/cpu.h
>> index 6d028aa..f606f15 100644
>> --- a/target-i386/cpu.h
>> +++ b/target-i386/cpu.h
>> @@ -698,6 +698,13 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS];
>> /* Use a clearer name for this. */
>> #define CPU_INTERRUPT_INIT CPU_INTERRUPT_RESET
>>
>> +/* Instead of computing the condition codes after each x86 instruction,
>> + * QEMU just stores one operand (called CC_SRC), the result
>> + * (called CC_DST) and the type of operation (called CC_OP). When the
>> + * condition codes are needed, the condition codes can be calculated
>> + * using this information. Condition codes are not generated if they
>> + * are only needed for conditional branches.
>> + */
>> typedef enum {
>> CC_OP_DYNAMIC, /* must use dynamic code to get cc_op */
>> CC_OP_EFLAGS, /* all cc are explicitly computed, CC_SRC = flags */
>> diff --git a/target-m68k/cpu.h b/target-m68k/cpu.h
>> index c2d40cb..ccc7157 100644
>> --- a/target-m68k/cpu.h
>> +++ b/target-m68k/cpu.h
>> @@ -154,6 +154,14 @@ int cpu_m68k_signal_handler(int host_signum, void
>> *pinfo,
>> void *puc);
>> void cpu_m68k_flush_flags(CPUM68KState *, int);
>>
>> +
>> +/* Instead of computing the condition codes after each x86 instruction,
>> + * QEMU just stores one operand (called CC_SRC), the result
>> + * (called CC_DST) and the type of operation (called CC_OP). When the
>> + * condition codes are needed, the condition codes can be calculated
>> + * using this information. Condition codes are not generated if they
>> + * are only needed for conditional branches.
>> + */
>
> Same as above:
> - "each x86 instruction"
> - no CC_DST
>
> Emilio
>
- [Qemu-devel] [PATCH 00/10] qemu-tech cleanup, Paolo Bonzini, 2016/10/06
- [Qemu-devel] [PATCH 01/10] qemu-tech: drop index, Paolo Bonzini, 2016/10/06
- [Qemu-devel] [PATCH 04/10] qemu-tech: move text from qemu-tech to tcg/README, Paolo Bonzini, 2016/10/06
- [Qemu-devel] [PATCH 03/10] qemu-doc: drop installation and compilation notes, Paolo Bonzini, 2016/10/06
- [Qemu-devel] [PATCH 05/10] qemu-tech: document lazy condition code evaluation in cpu.h, Paolo Bonzini, 2016/10/06
- [Qemu-devel] [PATCH 02/10] qemu-doc: replace introduction with the one from the internals manual, Paolo Bonzini, 2016/10/06
- [Qemu-devel] [PATCH 06/10] qemu-tech: move user mode emulation features from qemu-tech, Paolo Bonzini, 2016/10/06
- [Qemu-devel] [PATCH 08/10] qemu-tech: reorganize content, Paolo Bonzini, 2016/10/06
- [Qemu-devel] [PATCH 07/10] qemu-tech: move TCG test documentation to tests/tcg/README, Paolo Bonzini, 2016/10/06
- [Qemu-devel] [PATCH 10/10] qemu-doc: merge qemu-tech and qemu-doc, Paolo Bonzini, 2016/10/06
- [Qemu-devel] [PATCH 09/10] qemu-tech: rewrite some parts, Paolo Bonzini, 2016/10/06