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 <pbonz...@redhat.com> >> --- >> 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 >