exec: Move TranslationBlock typedef to qemu/typedefs.h

This also means we don't need an extra declaration of
the structure in hw/core/cpu.h.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210208233906.479571-2-richard.henderson@linaro.org>
Message-Id: <20210213130325.14781-11-alex.bennee@linaro.org>
This commit is contained in:
Richard Henderson 2021-02-13 13:03:12 +00:00 committed by Alex Bennée
parent 0d6e6cb779
commit 8349d2aeb3
9 changed files with 8 additions and 12 deletions

View File

@ -26,7 +26,6 @@
#define CODE_GEN_HTABLE_BITS 15 #define CODE_GEN_HTABLE_BITS 15
#define CODE_GEN_HTABLE_SIZE (1 << CODE_GEN_HTABLE_BITS) #define CODE_GEN_HTABLE_SIZE (1 << CODE_GEN_HTABLE_BITS)
typedef struct TranslationBlock TranslationBlock;
typedef struct TBContext TBContext; typedef struct TBContext TBContext;
struct TBContext { struct TBContext {

View File

@ -74,8 +74,6 @@ typedef enum MMUAccessType {
typedef struct CPUWatchpoint CPUWatchpoint; typedef struct CPUWatchpoint CPUWatchpoint;
struct TranslationBlock;
/* see tcg-cpu-ops.h */ /* see tcg-cpu-ops.h */
struct TCGCPUOps; struct TCGCPUOps;
@ -375,7 +373,7 @@ struct CPUState {
IcountDecr *icount_decr_ptr; IcountDecr *icount_decr_ptr;
/* Accessed in parallel; all accesses must be atomic */ /* Accessed in parallel; all accesses must be atomic */
struct TranslationBlock *tb_jmp_cache[TB_JMP_CACHE_SIZE]; TranslationBlock *tb_jmp_cache[TB_JMP_CACHE_SIZE];
struct GDBRegisterState *gdb_regs; struct GDBRegisterState *gdb_regs;
int gdb_num_regs; int gdb_num_regs;

View File

@ -30,8 +30,7 @@ struct TCGCPUOps {
* If more state needs to be restored, the target must implement a * If more state needs to be restored, the target must implement a
* function to restore all the state, and register it here. * function to restore all the state, and register it here.
*/ */
void (*synchronize_from_tb)(CPUState *cpu, void (*synchronize_from_tb)(CPUState *cpu, const TranslationBlock *tb);
const struct TranslationBlock *tb);
/** @cpu_exec_enter: Callback for cpu_exec preparation */ /** @cpu_exec_enter: Callback for cpu_exec preparation */
void (*cpu_exec_enter)(CPUState *cpu); void (*cpu_exec_enter)(CPUState *cpu);
/** @cpu_exec_exit: Callback for cpu_exec cleanup */ /** @cpu_exec_exit: Callback for cpu_exec cleanup */

View File

@ -120,6 +120,7 @@ typedef struct ReservedRegion ReservedRegion;
typedef struct SavedIOTLB SavedIOTLB; typedef struct SavedIOTLB SavedIOTLB;
typedef struct SHPCDevice SHPCDevice; typedef struct SHPCDevice SHPCDevice;
typedef struct SSIBus SSIBus; typedef struct SSIBus SSIBus;
typedef struct TranslationBlock TranslationBlock;
typedef struct VirtIODevice VirtIODevice; typedef struct VirtIODevice VirtIODevice;
typedef struct Visitor Visitor; typedef struct Visitor Visitor;
typedef struct VMChangeStateEntry VMChangeStateEntry; typedef struct VMChangeStateEntry VMChangeStateEntry;

View File

@ -173,8 +173,7 @@ void arm_cpu_register_gdb_regs_for_features(ARMCPU *cpu);
void arm_translate_init(void); void arm_translate_init(void);
#ifdef CONFIG_TCG #ifdef CONFIG_TCG
void arm_cpu_synchronize_from_tb(CPUState *cs, void arm_cpu_synchronize_from_tb(CPUState *cs, const TranslationBlock *tb);
const struct TranslationBlock *tb);
#endif /* CONFIG_TCG */ #endif /* CONFIG_TCG */

View File

@ -132,7 +132,7 @@ typedef struct DisasContext {
int delayed_branch; int delayed_branch;
struct TranslationBlock *tb; TranslationBlock *tb;
int singlestep_enabled; int singlestep_enabled;
} DisasContext; } DisasContext;

View File

@ -93,7 +93,7 @@ typedef struct DisasContext {
unsigned int tb_flags, synced_flags; /* tb dependent flags. */ unsigned int tb_flags, synced_flags; /* tb dependent flags. */
int is_jmp; int is_jmp;
struct TranslationBlock *tb; TranslationBlock *tb;
int singlestep_enabled; int singlestep_enabled;
uint32_t features; uint32_t features;

View File

@ -36,7 +36,7 @@
/* This is the state at translation time. */ /* This is the state at translation time. */
typedef struct DisasContext { typedef struct DisasContext {
struct TranslationBlock *tb; TranslationBlock *tb;
target_ulong pc, saved_pc; target_ulong pc, saved_pc;
uint32_t opcode; uint32_t opcode;
uint32_t fp_status; uint32_t fp_status;

View File

@ -34,7 +34,7 @@ typedef struct DisasContext {
int condjmp; int condjmp;
/* The label that will be jumped to when the instruction is skipped. */ /* The label that will be jumped to when the instruction is skipped. */
TCGLabel *condlabel; TCGLabel *condlabel;
struct TranslationBlock *tb; TranslationBlock *tb;
int singlestep_enabled; int singlestep_enabled;
#ifndef CONFIG_USER_ONLY #ifndef CONFIG_USER_ONLY
int user; int user;