]> git.proxmox.com Git - mirror_qemu.git/commitdiff
cpu-exec: add a new CF_USE_ICOUNT cflag
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 26 Nov 2014 10:39:53 +0000 (13:39 +0300)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 23 Dec 2014 09:14:53 +0000 (10:14 +0100)
Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
include/exec/exec-all.h
translate-all.c

index 38a8a09b422109f2dc77273da7d18a47ba63b55d..6a154485ba248c44f67efe5ec4a0260319a71342 100644 (file)
@@ -142,10 +142,12 @@ struct TranslationBlock {
     uint64_t flags; /* flags defining in which context the code was generated */
     uint16_t size;      /* size of target code for this block (1 <=
                            size <= TARGET_PAGE_SIZE) */
-    uint16_t cflags;    /* compile flags */
+    uint16_t icount;
+    uint32_t cflags;    /* compile flags */
 #define CF_COUNT_MASK  0x7fff
 #define CF_LAST_IO     0x8000 /* Last insn may be an IO access.  */
 #define CF_NOCACHE     0x10000 /* To be freed after execution */
+#define CF_USE_ICOUNT  0x20000
 
     void *tc_ptr;    /* pointer to the translated code */
     /* next matching tb for physical address. */
@@ -169,7 +171,6 @@ struct TranslationBlock {
        jmp_first */
     struct TranslationBlock *jmp_next[2];
     struct TranslationBlock *jmp_first;
-    uint32_t icount;
 };
 
 #include "exec/spinlock.h"
index c24cfe865b2b3fc7582782b0fe34201b070605ef..db2102dd52a50cf9dadc84ff01fd578126f525d7 100644 (file)
@@ -1045,6 +1045,9 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
     int code_gen_size;
 
     phys_pc = get_page_addr_code(env, pc);
+    if (use_icount) {
+        cflags |= CF_USE_ICOUNT;
+    }
     tb = tb_alloc(pc);
     if (!tb) {
         /* flush must be done */