tb: consistently use uint32_t for tb->flags
We are inconsistent with the type of tb->flags: usage varies loosely between int and uint64_t. Settle to uint32_t everywhere, which is superior to both: at least one target (aarch64) uses the most significant bit in the u32, and uint64_t is wasteful. Compile-tested for all targets. Suggested-by: Laurent Desnogues <laurent.desnogues@gmail.com> Suggested-by: Richard Henderson <rth@twiddle.net> Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Laurent Desnogues <laurent.desnogues@gmail.com> Signed-off-by: Emilio G. Cota <cota@braap.org> Signed-off-by: Richard Henderson <rth@twiddle.net> Message-Id: <1460049562-23517-1-git-send-email-cota@braap.org>
This commit is contained in:
parent
f68419eee9
commit
89fee74a0f
@ -220,7 +220,7 @@ static void cpu_exec_nocache(CPUState *cpu, int max_cycles,
|
|||||||
static TranslationBlock *tb_find_physical(CPUState *cpu,
|
static TranslationBlock *tb_find_physical(CPUState *cpu,
|
||||||
target_ulong pc,
|
target_ulong pc,
|
||||||
target_ulong cs_base,
|
target_ulong cs_base,
|
||||||
uint64_t flags)
|
uint32_t flags)
|
||||||
{
|
{
|
||||||
CPUArchState *env = (CPUArchState *)cpu->env_ptr;
|
CPUArchState *env = (CPUArchState *)cpu->env_ptr;
|
||||||
TranslationBlock *tb, **ptb1;
|
TranslationBlock *tb, **ptb1;
|
||||||
@ -271,7 +271,7 @@ static TranslationBlock *tb_find_physical(CPUState *cpu,
|
|||||||
static TranslationBlock *tb_find_slow(CPUState *cpu,
|
static TranslationBlock *tb_find_slow(CPUState *cpu,
|
||||||
target_ulong pc,
|
target_ulong pc,
|
||||||
target_ulong cs_base,
|
target_ulong cs_base,
|
||||||
uint64_t flags)
|
uint32_t flags)
|
||||||
{
|
{
|
||||||
TranslationBlock *tb;
|
TranslationBlock *tb;
|
||||||
|
|
||||||
@ -314,7 +314,7 @@ static inline TranslationBlock *tb_find_fast(CPUState *cpu)
|
|||||||
CPUArchState *env = (CPUArchState *)cpu->env_ptr;
|
CPUArchState *env = (CPUArchState *)cpu->env_ptr;
|
||||||
TranslationBlock *tb;
|
TranslationBlock *tb;
|
||||||
target_ulong cs_base, pc;
|
target_ulong cs_base, pc;
|
||||||
int flags;
|
uint32_t flags;
|
||||||
|
|
||||||
/* we record a subset of the CPU state. It will
|
/* we record a subset of the CPU state. It will
|
||||||
always be the same before a given translated block
|
always be the same before a given translated block
|
||||||
|
2
exec.c
2
exec.c
@ -2087,7 +2087,7 @@ static void check_watchpoint(int offset, int len, MemTxAttrs attrs, int flags)
|
|||||||
target_ulong pc, cs_base;
|
target_ulong pc, cs_base;
|
||||||
target_ulong vaddr;
|
target_ulong vaddr;
|
||||||
CPUWatchpoint *wp;
|
CPUWatchpoint *wp;
|
||||||
int cpu_flags;
|
uint32_t cpu_flags;
|
||||||
|
|
||||||
if (cpu->watchpoint_hit) {
|
if (cpu->watchpoint_hit) {
|
||||||
/* We re-entered the check after replacing the TB. Now raise
|
/* We re-entered the check after replacing the TB. Now raise
|
||||||
|
@ -397,7 +397,7 @@ static void patch_instruction(VAPICROMState *s, X86CPU *cpu, target_ulong ip)
|
|||||||
uint32_t imm32;
|
uint32_t imm32;
|
||||||
target_ulong current_pc = 0;
|
target_ulong current_pc = 0;
|
||||||
target_ulong current_cs_base = 0;
|
target_ulong current_cs_base = 0;
|
||||||
int current_flags = 0;
|
uint32_t current_flags = 0;
|
||||||
|
|
||||||
if (smp_cpus == 1) {
|
if (smp_cpus == 1) {
|
||||||
handlers = &s->rom_state.up;
|
handlers = &s->rom_state.up;
|
||||||
|
@ -76,7 +76,8 @@ bool cpu_restore_state(CPUState *cpu, uintptr_t searched_pc);
|
|||||||
void QEMU_NORETURN cpu_resume_from_signal(CPUState *cpu, void *puc);
|
void QEMU_NORETURN cpu_resume_from_signal(CPUState *cpu, void *puc);
|
||||||
void QEMU_NORETURN cpu_io_recompile(CPUState *cpu, uintptr_t retaddr);
|
void QEMU_NORETURN cpu_io_recompile(CPUState *cpu, uintptr_t retaddr);
|
||||||
TranslationBlock *tb_gen_code(CPUState *cpu,
|
TranslationBlock *tb_gen_code(CPUState *cpu,
|
||||||
target_ulong pc, target_ulong cs_base, int flags,
|
target_ulong pc, target_ulong cs_base,
|
||||||
|
uint32_t flags,
|
||||||
int cflags);
|
int cflags);
|
||||||
void cpu_exec_init(CPUState *cpu, Error **errp);
|
void cpu_exec_init(CPUState *cpu, Error **errp);
|
||||||
void QEMU_NORETURN cpu_loop_exit(CPUState *cpu);
|
void QEMU_NORETURN cpu_loop_exit(CPUState *cpu);
|
||||||
@ -235,7 +236,7 @@ static inline void tlb_flush_by_mmuidx(CPUState *cpu, ...)
|
|||||||
struct TranslationBlock {
|
struct TranslationBlock {
|
||||||
target_ulong pc; /* simulated PC corresponding to this block (EIP + CS base) */
|
target_ulong pc; /* simulated PC corresponding to this block (EIP + CS base) */
|
||||||
target_ulong cs_base; /* CS base for this block */
|
target_ulong cs_base; /* CS base for this block */
|
||||||
uint64_t flags; /* flags defining in which context the code was generated */
|
uint32_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 icount;
|
uint16_t icount;
|
||||||
|
@ -465,7 +465,7 @@ enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUAlphaState *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUAlphaState *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *pflags)
|
target_ulong *cs_base, uint32_t *pflags)
|
||||||
{
|
{
|
||||||
int flags = 0;
|
int flags = 0;
|
||||||
|
|
||||||
|
@ -2117,7 +2117,7 @@ static inline bool arm_cpu_bswap_data(CPUARMState *env)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUARMState *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUARMState *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
if (is_a64(env)) {
|
if (is_a64(env)) {
|
||||||
*pc = env->pc;
|
*pc = env->pc;
|
||||||
|
@ -249,7 +249,7 @@ int cris_cpu_handle_mmu_fault(CPUState *cpu, vaddr address, int rw,
|
|||||||
#include "exec/cpu-all.h"
|
#include "exec/cpu-all.h"
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUCRISState *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUCRISState *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
*pc = env->pc;
|
*pc = env->pc;
|
||||||
*cs_base = 0;
|
*cs_base = 0;
|
||||||
|
@ -1269,7 +1269,7 @@ void tcg_x86_init(void);
|
|||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUX86State *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUX86State *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
*cs_base = env->segs[R_CS].base;
|
*cs_base = env->segs[R_CS].base;
|
||||||
*pc = *cs_base + env->eip;
|
*pc = *cs_base + env->eip;
|
||||||
|
@ -8178,7 +8178,7 @@ void gen_intermediate_code(CPUX86State *env, TranslationBlock *tb)
|
|||||||
CPUState *cs = CPU(cpu);
|
CPUState *cs = CPU(cpu);
|
||||||
DisasContext dc1, *dc = &dc1;
|
DisasContext dc1, *dc = &dc1;
|
||||||
target_ulong pc_ptr;
|
target_ulong pc_ptr;
|
||||||
uint64_t flags;
|
uint32_t flags;
|
||||||
target_ulong pc_start;
|
target_ulong pc_start;
|
||||||
target_ulong cs_base;
|
target_ulong cs_base;
|
||||||
int num_insns;
|
int num_insns;
|
||||||
|
@ -226,7 +226,7 @@ int lm32_cpu_handle_mmu_fault(CPUState *cpu, vaddr address, int rw,
|
|||||||
#include "exec/cpu-all.h"
|
#include "exec/cpu-all.h"
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPULM32State *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPULM32State *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
*pc = env->pc;
|
*pc = env->pc;
|
||||||
*cs_base = 0;
|
*cs_base = 0;
|
||||||
|
@ -230,7 +230,7 @@ int m68k_cpu_handle_mmu_fault(CPUState *cpu, vaddr address, int rw,
|
|||||||
#include "exec/cpu-all.h"
|
#include "exec/cpu-all.h"
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUM68KState *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUM68KState *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
*pc = env->pc;
|
*pc = env->pc;
|
||||||
*cs_base = 0;
|
*cs_base = 0;
|
||||||
|
@ -322,7 +322,7 @@ int mb_cpu_handle_mmu_fault(CPUState *cpu, vaddr address, int rw,
|
|||||||
#include "exec/cpu-all.h"
|
#include "exec/cpu-all.h"
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUMBState *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUMBState *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
*pc = env->sregs[SR_PC];
|
*pc = env->sregs[SR_PC];
|
||||||
*cs_base = 0;
|
*cs_base = 0;
|
||||||
|
@ -839,7 +839,7 @@ static inline void restore_pamask(CPUMIPSState *env)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUMIPSState *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUMIPSState *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
*pc = env->active_tc.PC;
|
*pc = env->active_tc.PC;
|
||||||
*cs_base = 0;
|
*cs_base = 0;
|
||||||
|
@ -132,7 +132,7 @@ static inline int cpu_mmu_index(CPUMoxieState *env, bool ifetch)
|
|||||||
#include "exec/exec-all.h"
|
#include "exec/exec-all.h"
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUMoxieState *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUMoxieState *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
*pc = env->pc;
|
*pc = env->pc;
|
||||||
*cs_base = 0;
|
*cs_base = 0;
|
||||||
|
@ -392,7 +392,7 @@ int cpu_openrisc_get_phys_data(OpenRISCCPU *cpu,
|
|||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUOpenRISCState *env,
|
static inline void cpu_get_tb_cpu_state(CPUOpenRISCState *env,
|
||||||
target_ulong *pc,
|
target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
*pc = env->pc;
|
*pc = env->pc;
|
||||||
*cs_base = 0;
|
*cs_base = 0;
|
||||||
|
@ -2303,7 +2303,7 @@ static inline void cpu_write_xer(CPUPPCState *env, target_ulong xer)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUPPCState *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUPPCState *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
*pc = env->nip;
|
*pc = env->nip;
|
||||||
*cs_base = 0;
|
*cs_base = 0;
|
||||||
|
@ -338,7 +338,7 @@ static inline uint64_t cpu_mmu_idx_to_asc(int mmu_idx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUS390XState* env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUS390XState* env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
*pc = env->psw.addr;
|
*pc = env->psw.addr;
|
||||||
*cs_base = 0;
|
*cs_base = 0;
|
||||||
|
@ -347,7 +347,7 @@ static inline void cpu_write_sr(CPUSH4State *env, target_ulong sr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUSH4State *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUSH4State *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
*pc = env->pc;
|
*pc = env->pc;
|
||||||
*cs_base = 0;
|
*cs_base = 0;
|
||||||
|
@ -688,7 +688,7 @@ trap_state* cpu_tsptr(CPUSPARCState* env);
|
|||||||
#define TB_FLAG_AM_ENABLED (1 << 5)
|
#define TB_FLAG_AM_ENABLED (1 << 5)
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUSPARCState *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUSPARCState *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
*pc = env->pc;
|
*pc = env->pc;
|
||||||
*cs_base = env->npc;
|
*cs_base = env->npc;
|
||||||
|
@ -169,7 +169,7 @@ TileGXCPU *cpu_tilegx_init(const char *cpu_model);
|
|||||||
#define cpu_signal_handler cpu_tilegx_signal_handler
|
#define cpu_signal_handler cpu_tilegx_signal_handler
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUTLGState *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUTLGState *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
*pc = env->pc;
|
*pc = env->pc;
|
||||||
*cs_base = 0;
|
*cs_base = 0;
|
||||||
|
@ -377,7 +377,7 @@ void tricore_tcg_init(void);
|
|||||||
int cpu_tricore_signal_handler(int host_signum, void *pinfo, void *puc);
|
int cpu_tricore_signal_handler(int host_signum, void *pinfo, void *puc);
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUTriCoreState *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUTriCoreState *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
*pc = env->PC;
|
*pc = env->PC;
|
||||||
*cs_base = 0;
|
*cs_base = 0;
|
||||||
|
@ -144,7 +144,7 @@ UniCore32CPU *uc32_cpu_init(const char *cpu_model);
|
|||||||
#define cpu_init(cpu_model) CPU(uc32_cpu_init(cpu_model))
|
#define cpu_init(cpu_model) CPU(uc32_cpu_init(cpu_model))
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUUniCore32State *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUUniCore32State *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
*pc = env->regs[31];
|
*pc = env->regs[31];
|
||||||
*cs_base = 0;
|
*cs_base = 0;
|
||||||
|
@ -507,7 +507,7 @@ static inline int cpu_mmu_index(CPUXtensaState *env, bool ifetch)
|
|||||||
#define XTENSA_TBFLAG_WINDOW_SHIFT 15
|
#define XTENSA_TBFLAG_WINDOW_SHIFT 15
|
||||||
|
|
||||||
static inline void cpu_get_tb_cpu_state(CPUXtensaState *env, target_ulong *pc,
|
static inline void cpu_get_tb_cpu_state(CPUXtensaState *env, target_ulong *pc,
|
||||||
target_ulong *cs_base, int *flags)
|
target_ulong *cs_base, uint32_t *flags)
|
||||||
{
|
{
|
||||||
CPUState *cs = CPU(xtensa_env_get_cpu(env));
|
CPUState *cs = CPU(xtensa_env_get_cpu(env));
|
||||||
|
|
||||||
|
@ -1051,7 +1051,7 @@ static void build_page_bitmap(PageDesc *p)
|
|||||||
/* Called with mmap_lock held for user mode emulation. */
|
/* Called with mmap_lock held for user mode emulation. */
|
||||||
TranslationBlock *tb_gen_code(CPUState *cpu,
|
TranslationBlock *tb_gen_code(CPUState *cpu,
|
||||||
target_ulong pc, target_ulong cs_base,
|
target_ulong pc, target_ulong cs_base,
|
||||||
int flags, int cflags)
|
uint32_t flags, int cflags)
|
||||||
{
|
{
|
||||||
CPUArchState *env = cpu->env_ptr;
|
CPUArchState *env = cpu->env_ptr;
|
||||||
TranslationBlock *tb;
|
TranslationBlock *tb;
|
||||||
@ -1205,7 +1205,7 @@ void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end,
|
|||||||
int current_tb_modified = 0;
|
int current_tb_modified = 0;
|
||||||
target_ulong current_pc = 0;
|
target_ulong current_pc = 0;
|
||||||
target_ulong current_cs_base = 0;
|
target_ulong current_cs_base = 0;
|
||||||
int current_flags = 0;
|
uint32_t current_flags = 0;
|
||||||
#endif /* TARGET_HAS_PRECISE_SMC */
|
#endif /* TARGET_HAS_PRECISE_SMC */
|
||||||
|
|
||||||
p = page_find(start >> TARGET_PAGE_BITS);
|
p = page_find(start >> TARGET_PAGE_BITS);
|
||||||
@ -1350,7 +1350,7 @@ static void tb_invalidate_phys_page(tb_page_addr_t addr,
|
|||||||
int current_tb_modified = 0;
|
int current_tb_modified = 0;
|
||||||
target_ulong current_pc = 0;
|
target_ulong current_pc = 0;
|
||||||
target_ulong current_cs_base = 0;
|
target_ulong current_cs_base = 0;
|
||||||
int current_flags = 0;
|
uint32_t current_flags = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
addr &= TARGET_PAGE_MASK;
|
addr &= TARGET_PAGE_MASK;
|
||||||
@ -1574,7 +1574,7 @@ void tb_check_watchpoint(CPUState *cpu)
|
|||||||
CPUArchState *env = cpu->env_ptr;
|
CPUArchState *env = cpu->env_ptr;
|
||||||
target_ulong pc, cs_base;
|
target_ulong pc, cs_base;
|
||||||
tb_page_addr_t addr;
|
tb_page_addr_t addr;
|
||||||
int flags;
|
uint32_t flags;
|
||||||
|
|
||||||
cpu_get_tb_cpu_state(env, &pc, &cs_base, &flags);
|
cpu_get_tb_cpu_state(env, &pc, &cs_base, &flags);
|
||||||
addr = get_page_addr_code(env, pc);
|
addr = get_page_addr_code(env, pc);
|
||||||
@ -1593,7 +1593,7 @@ void cpu_io_recompile(CPUState *cpu, uintptr_t retaddr)
|
|||||||
TranslationBlock *tb;
|
TranslationBlock *tb;
|
||||||
uint32_t n, cflags;
|
uint32_t n, cflags;
|
||||||
target_ulong pc, cs_base;
|
target_ulong pc, cs_base;
|
||||||
uint64_t flags;
|
uint32_t flags;
|
||||||
|
|
||||||
tb = tb_find_pc(retaddr);
|
tb = tb_find_pc(retaddr);
|
||||||
if (!tb) {
|
if (!tb) {
|
||||||
|
Loading…
Reference in New Issue
Block a user