aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-09-20 22:47:42 +0000
committerj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-09-20 22:47:42 +0000
commitc068688b03f4af8994ba0d7bd41a74c8f245453b (patch)
tree9610a62180ad9afc24ad191ccd530c28adb6b282
parent5e3b100b65ea3af8e9a31507541e26d5e439e377 (diff)
Extend TB flags to 64 bits (Alexander Graf).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3198 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--cpu-exec.c4
-rw-r--r--exec-all.h2
-rw-r--r--target-i386/translate.c5
-rw-r--r--target-mips/translate.c2
4 files changed, 7 insertions, 6 deletions
diff --git a/cpu-exec.c b/cpu-exec.c
index 2d08626db1..3395059662 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -77,7 +77,7 @@ void cpu_resume_from_signal(CPUState *env1, void *puc)
static TranslationBlock *tb_find_slow(target_ulong pc,
target_ulong cs_base,
- unsigned int flags)
+ uint64_t flags)
{
TranslationBlock *tb, **ptb1;
int code_gen_size;
@@ -155,7 +155,7 @@ static inline TranslationBlock *tb_find_fast(void)
{
TranslationBlock *tb;
target_ulong cs_base, pc;
- unsigned int flags;
+ uint64_t flags;
/* we record a subset of the CPU state. It will
always be the same before a given translated block
diff --git a/exec-all.h b/exec-all.h
index ca59597422..f58aea5345 100644
--- a/exec-all.h
+++ b/exec-all.h
@@ -171,7 +171,7 @@ static inline int tlb_set_page(CPUState *env, target_ulong vaddr,
typedef struct TranslationBlock {
target_ulong pc; /* simulated PC corresponding to this block (EIP + CS base) */
target_ulong cs_base; /* CS base for this block */
- unsigned int 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 <=
size <= TARGET_PAGE_SIZE) */
uint16_t cflags; /* compile flags */
diff --git a/target-i386/translate.c b/target-i386/translate.c
index 35ba6319cc..028cdac9ad 100644
--- a/target-i386/translate.c
+++ b/target-i386/translate.c
@@ -95,7 +95,7 @@ typedef struct DisasContext {
int singlestep_enabled; /* "hardware" single step enabled */
int jmp_opt; /* use direct block chaining for direct jumps */
int mem_index; /* select memory access functions */
- int flags; /* all execution flags */
+ uint64_t flags; /* all execution flags */
struct TranslationBlock *tb;
int popl_esp_hack; /* for correct popl with esp base handling */
int rip_offset; /* only used in x86_64, but left for simplicity */
@@ -6462,7 +6462,8 @@ static inline int gen_intermediate_code_internal(CPUState *env,
DisasContext dc1, *dc = &dc1;
target_ulong pc_ptr;
uint16_t *gen_opc_end;
- int flags, j, lj, cflags;
+ int j, lj, cflags;
+ uint64_t flags;
target_ulong pc_start;
target_ulong cs_base;
diff --git a/target-mips/translate.c b/target-mips/translate.c
index 8e6fe0e208..ddffc0f15d 100644
--- a/target-mips/translate.c
+++ b/target-mips/translate.c
@@ -6403,7 +6403,7 @@ gen_intermediate_code_internal (CPUState *env, TranslationBlock *tb,
ctx.tb = tb;
ctx.bstate = BS_NONE;
/* Restore delay slot state from the tb context. */
- ctx.hflags = tb->flags;
+ ctx.hflags = (uint32_t)tb->flags; /* FIXME: maybe use 64 bits here? */
restore_cpu_state(env, &ctx);
#if defined(CONFIG_USER_ONLY)
ctx.mem_idx = 0;