aboutsummaryrefslogtreecommitdiff
path: root/target-m68k
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2016-10-06 15:10:57 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2016-10-07 10:05:22 +0200
commitc3ce5a235741cb027b1328288ddec06470254813 (patch)
tree18b91ded381a74e17158c282dea2047b0ae3c3e6 /target-m68k
parentbf28a69eeb53e9e45166fbdda032454e7b1e3f29 (diff)
qemu-tech: document lazy condition code evaluation in cpu.h
Unlike the other sections, they are pretty specific to a particular CPU. Reviewed-by: Emilio G. Cota <cota@braap.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'target-m68k')
-rw-r--r--target-m68k/cpu.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/target-m68k/cpu.h b/target-m68k/cpu.h
index c2d40cb1cc..471f490dc1 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 m68k instruction,
+ * QEMU just stores one operand (called CC_SRC), the result
+ * (called CC_DEST) 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.
+ */
enum {
CC_OP_DYNAMIC, /* Use env->cc_op */
CC_OP_FLAGS, /* CC_DEST = CVZN, CC_SRC = unused */