tcg: Declare TARGET_INSN_START_EXTRA_WORDS in 'cpu-param.h'

To avoid including the huge "cpu.h" for a simple definition,
move TARGET_INSN_START_EXTRA_WORDS to "cpu-param.h".

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Philippe Mathieu-Daudé 2025-03-19 12:46:47 +01:00 committed by Richard Henderson
parent 79b835f139
commit 21d41c566d
23 changed files with 34 additions and 30 deletions

View file

@ -6,7 +6,7 @@
#ifndef TARGET_INSN_START_WORDS #ifndef TARGET_INSN_START_WORDS
#include "cpu.h" #include "cpu-param.h"
#ifndef TARGET_INSN_START_EXTRA_WORDS #ifndef TARGET_INSN_START_EXTRA_WORDS
# define TARGET_INSN_START_WORDS 1 # define TARGET_INSN_START_WORDS 1

View file

@ -37,6 +37,13 @@
# define TARGET_PAGE_BITS_LEGACY 10 # define TARGET_PAGE_BITS_LEGACY 10
#endif /* !CONFIG_USER_ONLY */ #endif /* !CONFIG_USER_ONLY */
/*
* ARM-specific extra insn start words:
* 1: Conditional execution bits
* 2: Partial exception syndrome for data aborts
*/
#define TARGET_INSN_START_EXTRA_WORDS 2
/* ARM processors have a weak memory model */ /* ARM processors have a weak memory model */
#define TCG_GUEST_DEFAULT_MO (0) #define TCG_GUEST_DEFAULT_MO (0)

View file

@ -98,12 +98,6 @@
#define offsetofhigh32(S, M) (offsetof(S, M) + sizeof(uint32_t)) #define offsetofhigh32(S, M) (offsetof(S, M) + sizeof(uint32_t))
#endif #endif
/* ARM-specific extra insn start words:
* 1: Conditional execution bits
* 2: Partial exception syndrome for data aborts
*/
#define TARGET_INSN_START_EXTRA_WORDS 2
/* The 2nd extra word holding syndrome info for data aborts does not use /* The 2nd extra word holding syndrome info for data aborts does not use
* the upper 6 bits nor the lower 13 bits. We mask and shift it down to * the upper 6 bits nor the lower 13 bits. We mask and shift it down to
* help the sleb128 encoder do a better job. * help the sleb128 encoder do a better job.

View file

@ -19,6 +19,8 @@
#define TARGET_PAGE_BITS 12 #define TARGET_PAGE_BITS 12
#define TARGET_INSN_START_EXTRA_WORDS 2
/* PA-RISC 1.x processors have a strong memory model. */ /* PA-RISC 1.x processors have a strong memory model. */
/* /*
* ??? While we do not yet implement PA-RISC 2.0, those processors have * ??? While we do not yet implement PA-RISC 2.0, those processors have

View file

@ -48,8 +48,6 @@
#define PRIV_KERNEL 0 #define PRIV_KERNEL 0
#define PRIV_USER 3 #define PRIV_USER 3
#define TARGET_INSN_START_EXTRA_WORDS 2
/* No need to flush MMU_ABS*_IDX */ /* No need to flush MMU_ABS*_IDX */
#define HPPA_MMU_FLUSH_MASK \ #define HPPA_MMU_FLUSH_MASK \
(1 << MMU_KERNEL_IDX | 1 << MMU_KERNEL_P_IDX | \ (1 << MMU_KERNEL_IDX | 1 << MMU_KERNEL_P_IDX | \

View file

@ -22,6 +22,8 @@
#endif #endif
#define TARGET_PAGE_BITS 12 #define TARGET_PAGE_BITS 12
#define TARGET_INSN_START_EXTRA_WORDS 1
/* The x86 has a strong memory model with some store-after-load re-ordering */ /* The x86 has a strong memory model with some store-after-load re-ordering */
#define TCG_GUEST_DEFAULT_MO (TCG_MO_ALL & ~TCG_MO_ST_LD) #define TCG_GUEST_DEFAULT_MO (TCG_MO_ALL & ~TCG_MO_ST_LD)

View file

@ -1610,8 +1610,6 @@ typedef struct {
#define MAX_FIXED_COUNTERS 3 #define MAX_FIXED_COUNTERS 3
#define MAX_GP_COUNTERS (MSR_IA32_PERF_STATUS - MSR_P6_EVNTSEL0) #define MAX_GP_COUNTERS (MSR_IA32_PERF_STATUS - MSR_P6_EVNTSEL0)
#define TARGET_INSN_START_EXTRA_WORDS 1
#define NB_OPMASK_REGS 8 #define NB_OPMASK_REGS 8
/* CPU can't have 0xFFFFFFFF APIC ID, use that value to distinguish /* CPU can't have 0xFFFFFFFF APIC ID, use that value to distinguish

View file

@ -17,4 +17,6 @@
#define TARGET_PHYS_ADDR_SPACE_BITS 32 #define TARGET_PHYS_ADDR_SPACE_BITS 32
#define TARGET_VIRT_ADDR_SPACE_BITS 32 #define TARGET_VIRT_ADDR_SPACE_BITS 32
#define TARGET_INSN_START_EXTRA_WORDS 1
#endif #endif

View file

@ -78,8 +78,6 @@
#define M68K_MAX_TTR 2 #define M68K_MAX_TTR 2
#define TTR(type, index) ttr[((type & ACCESS_CODE) == ACCESS_CODE) * 2 + index] #define TTR(type, index) ttr[((type & ACCESS_CODE) == ACCESS_CODE) * 2 + index]
#define TARGET_INSN_START_EXTRA_WORDS 1
typedef CPU_LDoubleU FPReg; typedef CPU_LDoubleU FPReg;
typedef struct CPUArchState { typedef struct CPUArchState {

View file

@ -27,6 +27,8 @@
/* FIXME: MB uses variable pages down to 1K but linux only uses 4k. */ /* FIXME: MB uses variable pages down to 1K but linux only uses 4k. */
#define TARGET_PAGE_BITS 12 #define TARGET_PAGE_BITS 12
#define TARGET_INSN_START_EXTRA_WORDS 1
/* MicroBlaze is always in-order. */ /* MicroBlaze is always in-order. */
#define TCG_GUEST_DEFAULT_MO TCG_MO_ALL #define TCG_GUEST_DEFAULT_MO TCG_MO_ALL

View file

@ -233,8 +233,6 @@ typedef struct CPUArchState CPUMBState;
#define STREAM_CONTROL (1 << 3) #define STREAM_CONTROL (1 << 3)
#define STREAM_NONBLOCK (1 << 4) #define STREAM_NONBLOCK (1 << 4)
#define TARGET_INSN_START_EXTRA_WORDS 1
/* use-non-secure property masks */ /* use-non-secure property masks */
#define USE_NON_SECURE_M_AXI_DP_MASK 0x1 #define USE_NON_SECURE_M_AXI_DP_MASK 0x1
#define USE_NON_SECURE_M_AXI_IP_MASK 0x2 #define USE_NON_SECURE_M_AXI_IP_MASK 0x2

View file

@ -20,6 +20,8 @@
#endif #endif
#define TARGET_PAGE_BITS 12 #define TARGET_PAGE_BITS 12
#define TARGET_INSN_START_EXTRA_WORDS 2
#define TCG_GUEST_DEFAULT_MO (0) #define TCG_GUEST_DEFAULT_MO (0)
#endif #endif

View file

@ -100,8 +100,6 @@ struct CPUMIPSFPUContext {
#define FP_UNIMPLEMENTED 32 #define FP_UNIMPLEMENTED 32
}; };
#define TARGET_INSN_START_EXTRA_WORDS 2
typedef struct CPUMIPSMVPContext CPUMIPSMVPContext; typedef struct CPUMIPSMVPContext CPUMIPSMVPContext;
struct CPUMIPSMVPContext { struct CPUMIPSMVPContext {
int32_t CP0_MVPControl; int32_t CP0_MVPControl;

View file

@ -12,6 +12,8 @@
#define TARGET_PHYS_ADDR_SPACE_BITS 32 #define TARGET_PHYS_ADDR_SPACE_BITS 32
#define TARGET_VIRT_ADDR_SPACE_BITS 32 #define TARGET_VIRT_ADDR_SPACE_BITS 32
#define TARGET_INSN_START_EXTRA_WORDS 1
#define TCG_GUEST_DEFAULT_MO (0) #define TCG_GUEST_DEFAULT_MO (0)
#endif #endif

View file

@ -40,8 +40,6 @@ struct OpenRISCCPUClass {
ResettablePhases parent_phases; ResettablePhases parent_phases;
}; };
#define TARGET_INSN_START_EXTRA_WORDS 1
enum { enum {
MMU_NOMMU_IDX = 0, MMU_NOMMU_IDX = 0,
MMU_SUPERVISOR_IDX = 1, MMU_SUPERVISOR_IDX = 1,

View file

@ -16,6 +16,14 @@
# define TARGET_VIRT_ADDR_SPACE_BITS 32 /* sv32 */ # define TARGET_VIRT_ADDR_SPACE_BITS 32 /* sv32 */
#endif #endif
#define TARGET_PAGE_BITS 12 /* 4 KiB Pages */ #define TARGET_PAGE_BITS 12 /* 4 KiB Pages */
/*
* RISC-V-specific extra insn start words:
* 1: Original instruction opcode
* 2: more information about instruction
*/
#define TARGET_INSN_START_EXTRA_WORDS 2
/* /*
* The current MMU Modes are: * The current MMU Modes are:
* - U mode 0b000 * - U mode 0b000

View file

@ -45,12 +45,6 @@ typedef struct CPUArchState CPURISCVState;
# define TYPE_RISCV_CPU_BASE TYPE_RISCV_CPU_BASE64 # define TYPE_RISCV_CPU_BASE TYPE_RISCV_CPU_BASE64
#endif #endif
/*
* RISC-V-specific extra insn start words:
* 1: Original instruction opcode
* 2: more information about instruction
*/
#define TARGET_INSN_START_EXTRA_WORDS 2
/* /*
* b0: Whether a instruction always raise a store AMO or not. * b0: Whether a instruction always raise a store AMO or not.
*/ */

View file

@ -12,6 +12,8 @@
#define TARGET_PHYS_ADDR_SPACE_BITS 64 #define TARGET_PHYS_ADDR_SPACE_BITS 64
#define TARGET_VIRT_ADDR_SPACE_BITS 64 #define TARGET_VIRT_ADDR_SPACE_BITS 64
#define TARGET_INSN_START_EXTRA_WORDS 2
/* /*
* The z/Architecture has a strong memory model with some * The z/Architecture has a strong memory model with some
* store-after-load re-ordering. * store-after-load re-ordering.

View file

@ -37,8 +37,6 @@
#define TARGET_HAS_PRECISE_SMC #define TARGET_HAS_PRECISE_SMC
#define TARGET_INSN_START_EXTRA_WORDS 2
#define MMU_USER_IDX 0 #define MMU_USER_IDX 0
#define S390_MAX_CPUS 248 #define S390_MAX_CPUS 248

View file

@ -16,4 +16,6 @@
# define TARGET_VIRT_ADDR_SPACE_BITS 32 # define TARGET_VIRT_ADDR_SPACE_BITS 32
#endif #endif
#define TARGET_INSN_START_EXTRA_WORDS 1
#endif #endif

View file

@ -127,8 +127,6 @@ typedef struct tlb_t {
#define UTLB_SIZE 64 #define UTLB_SIZE 64
#define ITLB_SIZE 4 #define ITLB_SIZE 4
#define TARGET_INSN_START_EXTRA_WORDS 1
enum sh_features { enum sh_features {
SH_FEATURE_SH4A = 1, SH_FEATURE_SH4A = 1,
SH_FEATURE_BCR3_AND_BCR4 = 2, SH_FEATURE_BCR3_AND_BCR4 = 2,

View file

@ -21,6 +21,8 @@
# define TARGET_VIRT_ADDR_SPACE_BITS 32 # define TARGET_VIRT_ADDR_SPACE_BITS 32
#endif #endif
#define TARGET_INSN_START_EXTRA_WORDS 1
/* /*
* From Oracle SPARC Architecture 2015: * From Oracle SPARC Architecture 2015:
* *

View file

@ -223,7 +223,6 @@ typedef struct trap_state {
uint32_t tt; uint32_t tt;
} trap_state; } trap_state;
#endif #endif
#define TARGET_INSN_START_EXTRA_WORDS 1
typedef struct sparc_def_t { typedef struct sparc_def_t {
const char *name; const char *name;