mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-02-25 16:56:48 +00:00
cpu-exec: add a new CF_USE_ICOUNT cflag
Backports commit 0266359e57987d6be53fbcb885f2dd39c1dae940 from qemu
This commit is contained in:
parent
ac46898b3c
commit
cab4c979f0
|
@ -190,10 +190,12 @@ struct TranslationBlock {
|
||||||
uint64_t flags; /* flags defining in which context the code was generated */
|
uint64_t flags; /* flags defining in which context the code was generated */
|
||||||
uint16_t size; /* size of target code for this block (1 <=
|
uint16_t size; /* size of target code for this block (1 <=
|
||||||
size <= TARGET_PAGE_SIZE) */
|
size <= TARGET_PAGE_SIZE) */
|
||||||
uint16_t cflags; /* compile flags */
|
uint16_t icount;
|
||||||
|
uint32_t cflags; /* compile flags */
|
||||||
#define CF_COUNT_MASK 0x7fff
|
#define CF_COUNT_MASK 0x7fff
|
||||||
#define CF_LAST_IO 0x8000 /* Last insn may be an IO access. */
|
#define CF_LAST_IO 0x8000 /* Last insn may be an IO access. */
|
||||||
#define CF_NOCACHE 0x10000 /* To be freed after execution */
|
#define CF_NOCACHE 0x10000 /* To be freed after execution */
|
||||||
|
#define CF_USE_ICOUNT 0x20000
|
||||||
|
|
||||||
void *tc_ptr; /* pointer to the translated code */
|
void *tc_ptr; /* pointer to the translated code */
|
||||||
/* next matching tb for physical address. */
|
/* next matching tb for physical address. */
|
||||||
|
@ -217,7 +219,6 @@ struct TranslationBlock {
|
||||||
jmp_first */
|
jmp_first */
|
||||||
struct TranslationBlock *jmp_next[2];
|
struct TranslationBlock *jmp_next[2];
|
||||||
struct TranslationBlock *jmp_first;
|
struct TranslationBlock *jmp_first;
|
||||||
uint32_t icount;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct TBContext TBContext;
|
typedef struct TBContext TBContext;
|
||||||
|
|
|
@ -1100,6 +1100,10 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
|
||||||
int code_gen_size;
|
int code_gen_size;
|
||||||
|
|
||||||
phys_pc = get_page_addr_code(env, pc);
|
phys_pc = get_page_addr_code(env, pc);
|
||||||
|
/* UNICORN: Commented out
|
||||||
|
if (use_icount) {
|
||||||
|
cflags |= CF_USE_ICOUNT;
|
||||||
|
}*/
|
||||||
tb = tb_alloc(env->uc, pc);
|
tb = tb_alloc(env->uc, pc);
|
||||||
if (!tb) {
|
if (!tb) {
|
||||||
/* flush must be done */
|
/* flush must be done */
|
||||||
|
|
Loading…
Reference in a new issue