mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
tcg: Split out target/arch/cpu-param.h
For all targets, into this new file move TARGET_LONG_BITS, TARGET_PAGE_BITS, TARGET_PHYS_ADDR_SPACE_BITS, TARGET_VIRT_ADDR_SPACE_BITS, and NB_MMU_MODES. Include this new file from exec/cpu-defs.h. This now removes the somewhat odd requirement that target/arch/cpu.h defines TARGET_LONG_BITS before including exec/cpu-defs.h, so push the bulk of the includes within target/arch/cpu.h to the top. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Alistair Francis <alistair.francis@wdc.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
+21
-1
@@ -34,8 +34,28 @@
|
||||
#endif
|
||||
#include "exec/memattrs.h"
|
||||
|
||||
#include "cpu-param.h"
|
||||
|
||||
#ifndef TARGET_LONG_BITS
|
||||
#error TARGET_LONG_BITS must be defined before including this header
|
||||
# error TARGET_LONG_BITS must be defined in cpu-param.h
|
||||
#endif
|
||||
#ifndef NB_MMU_MODES
|
||||
# error NB_MMU_MODES must be defined in cpu-param.h
|
||||
#endif
|
||||
#ifndef TARGET_PHYS_ADDR_SPACE_BITS
|
||||
# error TARGET_PHYS_ADDR_SPACE_BITS must be defined in cpu-param.h
|
||||
#endif
|
||||
#ifndef TARGET_VIRT_ADDR_SPACE_BITS
|
||||
# error TARGET_VIRT_ADDR_SPACE_BITS must be defined in cpu-param.h
|
||||
#endif
|
||||
#ifndef TARGET_PAGE_BITS
|
||||
# ifdef TARGET_PAGE_BITS_VARY
|
||||
# ifndef TARGET_PAGE_BITS_MIN
|
||||
# error TARGET_PAGE_BITS_MIN must be defined in cpu-param.h
|
||||
# endif
|
||||
# else
|
||||
# error TARGET_PAGE_BITS must be defined in cpu-param.h
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define TARGET_LONG_SIZE (TARGET_LONG_BITS / 8)
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Alpha cpu parameters for qemu.
|
||||
*
|
||||
* Copyright (c) 2007 Jocelyn Mayer
|
||||
* SPDX-License-Identifier: LGPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef ALPHA_CPU_PARAM_H
|
||||
#define ALPHA_CPU_PARAM_H 1
|
||||
|
||||
#define TARGET_LONG_BITS 64
|
||||
#define TARGET_PAGE_BITS 13
|
||||
#ifdef CONFIG_USER_ONLY
|
||||
/*
|
||||
* ??? The kernel likes to give addresses in high memory. If the host has
|
||||
* more virtual address space than the guest, this can lead to impossible
|
||||
* allocations. Honor the long-standing assumption that only kernel addrs
|
||||
* are negative, but otherwise allow allocations anywhere. This could lead
|
||||
* to tricky emulation problems for programs doing tagged addressing, but
|
||||
* that's far fewer than encounter the impossible allocation problem.
|
||||
*/
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 63
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 63
|
||||
#else
|
||||
/* ??? EV4 has 34 phys addr bits, EV5 has 40, EV6 has 44. */
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 44
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS (30 + TARGET_PAGE_BITS)
|
||||
#endif
|
||||
#define NB_MMU_MODES 3
|
||||
|
||||
#endif
|
||||
+1
-22
@@ -22,8 +22,8 @@
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "cpu-qom.h"
|
||||
#include "exec/cpu-defs.h"
|
||||
|
||||
#define TARGET_LONG_BITS 64
|
||||
#define ALIGNED_ONLY
|
||||
|
||||
#define CPUArchState struct CPUAlphaState
|
||||
@@ -31,28 +31,9 @@
|
||||
/* Alpha processors have a weak memory model */
|
||||
#define TCG_GUEST_DEFAULT_MO (0)
|
||||
|
||||
#include "exec/cpu-defs.h"
|
||||
|
||||
#define ICACHE_LINE_SIZE 32
|
||||
#define DCACHE_LINE_SIZE 32
|
||||
|
||||
#define TARGET_PAGE_BITS 13
|
||||
|
||||
#ifdef CONFIG_USER_ONLY
|
||||
/* ??? The kernel likes to give addresses in high memory. If the host has
|
||||
more virtual address space than the guest, this can lead to impossible
|
||||
allocations. Honor the long-standing assumption that only kernel addrs
|
||||
are negative, but otherwise allow allocations anywhere. This could lead
|
||||
to tricky emulation problems for programs doing tagged addressing, but
|
||||
that's far fewer than encounter the impossible allocation problem. */
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 63
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 63
|
||||
#else
|
||||
/* ??? EV4 has 34 phys addr bits, EV5 has 40, EV6 has 44. */
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 44
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS (30 + TARGET_PAGE_BITS)
|
||||
#endif
|
||||
|
||||
/* Alpha major type */
|
||||
enum {
|
||||
ALPHA_EV3 = 1,
|
||||
@@ -217,8 +198,6 @@ enum {
|
||||
PALcode cheats and usees the KSEG mapping for its code+data rather than
|
||||
physical addresses. */
|
||||
|
||||
#define NB_MMU_MODES 3
|
||||
|
||||
#define MMU_MODE0_SUFFIX _kernel
|
||||
#define MMU_MODE1_SUFFIX _user
|
||||
#define MMU_KERNEL_IDX 0
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* ARM cpu parameters for qemu.
|
||||
*
|
||||
* Copyright (c) 2003 Fabrice Bellard
|
||||
* SPDX-License-Identifier: LGPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef ARM_CPU_PARAM_H
|
||||
#define ARM_CPU_PARAM_H 1
|
||||
|
||||
#ifdef TARGET_AARCH64
|
||||
# define TARGET_LONG_BITS 64
|
||||
# define TARGET_PHYS_ADDR_SPACE_BITS 48
|
||||
# define TARGET_VIRT_ADDR_SPACE_BITS 48
|
||||
#else
|
||||
# define TARGET_LONG_BITS 32
|
||||
# define TARGET_PHYS_ADDR_SPACE_BITS 40
|
||||
# define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_USER_ONLY
|
||||
#define TARGET_PAGE_BITS 12
|
||||
#else
|
||||
/*
|
||||
* ARMv7 and later CPUs have 4K pages minimum, but ARMv5 and v6
|
||||
* have to support 1K tiny pages.
|
||||
*/
|
||||
# define TARGET_PAGE_BITS_VARY
|
||||
# define TARGET_PAGE_BITS_MIN 10
|
||||
#endif
|
||||
|
||||
#define NB_MMU_MODES 8
|
||||
|
||||
#endif
|
||||
+3
-30
@@ -22,23 +22,15 @@
|
||||
|
||||
#include "kvm-consts.h"
|
||||
#include "hw/registerfields.h"
|
||||
|
||||
#if defined(TARGET_AARCH64)
|
||||
/* AArch64 definitions */
|
||||
# define TARGET_LONG_BITS 64
|
||||
#else
|
||||
# define TARGET_LONG_BITS 32
|
||||
#endif
|
||||
#include "qemu-common.h"
|
||||
#include "cpu-qom.h"
|
||||
#include "exec/cpu-defs.h"
|
||||
|
||||
/* ARM processors have a weak memory model */
|
||||
#define TCG_GUEST_DEFAULT_MO (0)
|
||||
|
||||
#define CPUArchState struct CPUARMState
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "cpu-qom.h"
|
||||
#include "exec/cpu-defs.h"
|
||||
|
||||
#define EXCP_UDEF 1 /* undefined instruction */
|
||||
#define EXCP_SWI 2 /* software interrupt */
|
||||
#define EXCP_PREFETCH_ABORT 3
|
||||
@@ -114,7 +106,6 @@ enum {
|
||||
#define ARM_CPU_VIRQ 2
|
||||
#define ARM_CPU_VFIQ 3
|
||||
|
||||
#define NB_MMU_MODES 8
|
||||
/* ARM-specific extra insn start words:
|
||||
* 1: Conditional execution bits
|
||||
* 2: Partial exception syndrome for data aborts
|
||||
@@ -2639,24 +2630,6 @@ bool write_cpustate_to_list(ARMCPU *cpu, bool kvm_sync);
|
||||
#define ARM_CPUID_TI915T 0x54029152
|
||||
#define ARM_CPUID_TI925T 0x54029252
|
||||
|
||||
#if defined(CONFIG_USER_ONLY)
|
||||
#define TARGET_PAGE_BITS 12
|
||||
#else
|
||||
/* ARMv7 and later CPUs have 4K pages minimum, but ARMv5 and v6
|
||||
* have to support 1K tiny pages.
|
||||
*/
|
||||
#define TARGET_PAGE_BITS_VARY
|
||||
#define TARGET_PAGE_BITS_MIN 10
|
||||
#endif
|
||||
|
||||
#if defined(TARGET_AARCH64)
|
||||
# define TARGET_PHYS_ADDR_SPACE_BITS 48
|
||||
# define TARGET_VIRT_ADDR_SPACE_BITS 48
|
||||
#else
|
||||
# define TARGET_PHYS_ADDR_SPACE_BITS 40
|
||||
# define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||
#endif
|
||||
|
||||
static inline bool arm_excp_unmasked(CPUState *cs, unsigned int excp_idx,
|
||||
unsigned int target_el)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* CRIS cpu parameters for qemu.
|
||||
*
|
||||
* Copyright (c) 2007 AXIS Communications AB
|
||||
* SPDX-License-Identifier: LGPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef CRIS_CPU_PARAM_H
|
||||
#define CRIS_CPU_PARAM_H 1
|
||||
|
||||
#define TARGET_LONG_BITS 32
|
||||
#define TARGET_PAGE_BITS 13
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 32
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||
#define NB_MMU_MODES 2
|
||||
|
||||
#endif
|
||||
+1
-10
@@ -23,13 +23,10 @@
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "cpu-qom.h"
|
||||
|
||||
#define TARGET_LONG_BITS 32
|
||||
#include "exec/cpu-defs.h"
|
||||
|
||||
#define CPUArchState struct CPUCRISState
|
||||
|
||||
#include "exec/cpu-defs.h"
|
||||
|
||||
#define EXCP_NMI 1
|
||||
#define EXCP_GURU 2
|
||||
#define EXCP_BUSFAULT 3
|
||||
@@ -105,8 +102,6 @@
|
||||
#define CC_A 14
|
||||
#define CC_P 15
|
||||
|
||||
#define NB_MMU_MODES 2
|
||||
|
||||
typedef struct {
|
||||
uint32_t hi;
|
||||
uint32_t lo;
|
||||
@@ -260,12 +255,8 @@ enum {
|
||||
};
|
||||
|
||||
/* CRIS uses 8k pages. */
|
||||
#define TARGET_PAGE_BITS 13
|
||||
#define MMAP_SHIFT TARGET_PAGE_BITS
|
||||
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 32
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||
|
||||
#define CRIS_CPU_TYPE_SUFFIX "-" TYPE_CRIS_CPU
|
||||
#define CRIS_CPU_TYPE_NAME(name) (name CRIS_CPU_TYPE_SUFFIX)
|
||||
#define CPU_RESOLVING_TYPE TYPE_CRIS_CPU
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* PA-RISC cpu parameters for qemu.
|
||||
*
|
||||
* Copyright (c) 2016 Richard Henderson <rth@twiddle.net>
|
||||
* SPDX-License-Identifier: LGPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef HPPA_CPU_PARAM_H
|
||||
#define HPPA_CPU_PARAM_H 1
|
||||
|
||||
#ifdef TARGET_HPPA64
|
||||
# define TARGET_LONG_BITS 64
|
||||
# define TARGET_REGISTER_BITS 64
|
||||
# define TARGET_VIRT_ADDR_SPACE_BITS 64
|
||||
# define TARGET_PHYS_ADDR_SPACE_BITS 64
|
||||
#elif defined(CONFIG_USER_ONLY)
|
||||
# define TARGET_LONG_BITS 32
|
||||
# define TARGET_REGISTER_BITS 32
|
||||
# define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||
# define TARGET_PHYS_ADDR_SPACE_BITS 32
|
||||
#else
|
||||
/*
|
||||
* In order to form the GVA from space:offset,
|
||||
* we need a 64-bit virtual address space.
|
||||
*/
|
||||
# define TARGET_LONG_BITS 64
|
||||
# define TARGET_REGISTER_BITS 32
|
||||
# define TARGET_VIRT_ADDR_SPACE_BITS 64
|
||||
# define TARGET_PHYS_ADDR_SPACE_BITS 32
|
||||
#endif
|
||||
#define TARGET_PAGE_BITS 12
|
||||
#define NB_MMU_MODES 5
|
||||
|
||||
#endif
|
||||
+1
-23
@@ -22,25 +22,8 @@
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "cpu-qom.h"
|
||||
#include "exec/cpu-defs.h"
|
||||
|
||||
#ifdef TARGET_HPPA64
|
||||
#define TARGET_LONG_BITS 64
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 64
|
||||
#define TARGET_REGISTER_BITS 64
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 64
|
||||
#elif defined(CONFIG_USER_ONLY)
|
||||
#define TARGET_LONG_BITS 32
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||
#define TARGET_REGISTER_BITS 32
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 32
|
||||
#else
|
||||
/* In order to form the GVA from space:offset,
|
||||
we need a 64-bit virtual address space. */
|
||||
#define TARGET_LONG_BITS 64
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 64
|
||||
#define TARGET_REGISTER_BITS 32
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 32
|
||||
#endif
|
||||
|
||||
/* PA-RISC 1.x processors have a strong memory model. */
|
||||
/* ??? While we do not yet implement PA-RISC 2.0, those processors have
|
||||
@@ -50,12 +33,7 @@
|
||||
|
||||
#define CPUArchState struct CPUHPPAState
|
||||
|
||||
#include "exec/cpu-defs.h"
|
||||
|
||||
#define TARGET_PAGE_BITS 12
|
||||
|
||||
#define ALIGNED_ONLY
|
||||
#define NB_MMU_MODES 5
|
||||
#define MMU_KERNEL_IDX 0
|
||||
#define MMU_USER_IDX 3
|
||||
#define MMU_PHYS_IDX 4
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* i386 cpu parameters for qemu.
|
||||
*
|
||||
* Copyright (c) 2003 Fabrice Bellard
|
||||
* SPDX-License-Identifier: LGPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef I386_CPU_PARAM_H
|
||||
#define I386_CPU_PARAM_H 1
|
||||
|
||||
#ifdef TARGET_X86_64
|
||||
# define TARGET_LONG_BITS 64
|
||||
# define TARGET_PHYS_ADDR_SPACE_BITS 52
|
||||
/*
|
||||
* ??? This is really 48 bits, sign-extended, but the only thing
|
||||
* accessible to userland with bit 48 set is the VSYSCALL, and that
|
||||
* is handled via other mechanisms.
|
||||
*/
|
||||
# define TARGET_VIRT_ADDR_SPACE_BITS 47
|
||||
#else
|
||||
# define TARGET_LONG_BITS 32
|
||||
# define TARGET_PHYS_ADDR_SPACE_BITS 36
|
||||
# define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||
#endif
|
||||
#define TARGET_PAGE_BITS 12
|
||||
#define NB_MMU_MODES 3
|
||||
|
||||
#endif
|
||||
@@ -24,13 +24,6 @@
|
||||
#include "qemu-common.h"
|
||||
#include "cpu-qom.h"
|
||||
#include "hyperv-proto.h"
|
||||
|
||||
#ifdef TARGET_X86_64
|
||||
#define TARGET_LONG_BITS 64
|
||||
#else
|
||||
#define TARGET_LONG_BITS 32
|
||||
#endif
|
||||
|
||||
#include "exec/cpu-defs.h"
|
||||
|
||||
/* The x86 has a strong memory model with some store-after-load re-ordering */
|
||||
@@ -956,7 +949,6 @@ typedef struct {
|
||||
#define MAX_FIXED_COUNTERS 3
|
||||
#define MAX_GP_COUNTERS (MSR_IA32_PERF_STATUS - MSR_P6_EVNTSEL0)
|
||||
|
||||
#define NB_MMU_MODES 3
|
||||
#define TARGET_INSN_START_EXTRA_WORDS 1
|
||||
|
||||
#define NB_OPMASK_REGS 8
|
||||
@@ -1695,19 +1687,6 @@ void cpu_x86_update_dr7(CPUX86State *env, uint32_t new_dr7);
|
||||
/* hw/pc.c */
|
||||
uint64_t cpu_get_tsc(CPUX86State *env);
|
||||
|
||||
#define TARGET_PAGE_BITS 12
|
||||
|
||||
#ifdef TARGET_X86_64
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 52
|
||||
/* ??? This is really 48 bits, sign-extended, but the only thing
|
||||
accessible to userland with bit 48 set is the VSYSCALL, and that
|
||||
is handled via other mechanisms. */
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 47
|
||||
#else
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 36
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||
#endif
|
||||
|
||||
/* XXX: This value should match the one returned by CPUID
|
||||
* and in exec.c */
|
||||
# if defined(TARGET_X86_64)
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* LatticeMico32 cpu parameters for qemu.
|
||||
*
|
||||
* Copyright (c) 2010 Michael Walle <michael@walle.cc>
|
||||
* SPDX-License-Identifier: LGPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef LM32_CPU_PARAM_H
|
||||
#define LM32_CPU_PARAM_H 1
|
||||
|
||||
#define TARGET_LONG_BITS 32
|
||||
#define TARGET_PAGE_BITS 12
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 32
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||
#define NB_MMU_MODES 1
|
||||
|
||||
#endif
|
||||
+3
-9
@@ -20,26 +20,20 @@
|
||||
#ifndef LM32_CPU_H
|
||||
#define LM32_CPU_H
|
||||
|
||||
#define TARGET_LONG_BITS 32
|
||||
|
||||
#define CPUArchState struct CPULM32State
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "cpu-qom.h"
|
||||
#include "exec/cpu-defs.h"
|
||||
|
||||
#define CPUArchState struct CPULM32State
|
||||
|
||||
struct CPULM32State;
|
||||
typedef struct CPULM32State CPULM32State;
|
||||
|
||||
#define NB_MMU_MODES 1
|
||||
#define TARGET_PAGE_BITS 12
|
||||
static inline int cpu_mmu_index(CPULM32State *env, bool ifetch)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 32
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||
|
||||
/* Exceptions indices */
|
||||
enum {
|
||||
EXCP_RESET = 0,
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* m68k cpu parameters for qemu.
|
||||
*
|
||||
* Copyright (c) 2005-2007 CodeSourcery
|
||||
* SPDX-License-Identifier: LGPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef M68K_CPU_PARAM_H
|
||||
#define M68K_CPU_PARAM_H 1
|
||||
|
||||
#define TARGET_LONG_BITS 32
|
||||
/*
|
||||
* Coldfire Linux uses 8k pages
|
||||
* and m68k linux uses 4k pages
|
||||
* use the smallest one
|
||||
*/
|
||||
#define TARGET_PAGE_BITS 12
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 32
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||
#define NB_MMU_MODES 2
|
||||
|
||||
#endif
|
||||
+2
-14
@@ -21,14 +21,12 @@
|
||||
#ifndef M68K_CPU_H
|
||||
#define M68K_CPU_H
|
||||
|
||||
#define TARGET_LONG_BITS 32
|
||||
|
||||
#define CPUArchState struct CPUM68KState
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "exec/cpu-defs.h"
|
||||
#include "cpu-qom.h"
|
||||
|
||||
#define CPUArchState struct CPUM68KState
|
||||
|
||||
#define OS_BYTE 0
|
||||
#define OS_WORD 1
|
||||
#define OS_LONG 2
|
||||
@@ -82,7 +80,6 @@
|
||||
#define M68K_MAX_TTR 2
|
||||
#define TTR(type, index) ttr[((type & ACCESS_CODE) == ACCESS_CODE) * 2 + index]
|
||||
|
||||
#define NB_MMU_MODES 2
|
||||
#define TARGET_INSN_START_EXTRA_WORDS 1
|
||||
|
||||
typedef CPU_LDoubleU FPReg;
|
||||
@@ -502,12 +499,6 @@ void m68k_cpu_list(void);
|
||||
|
||||
void register_m68k_insns (CPUM68KState *env);
|
||||
|
||||
/* Coldfire Linux uses 8k pages
|
||||
* and m68k linux uses 4k pages
|
||||
* use the smallest one
|
||||
*/
|
||||
#define TARGET_PAGE_BITS 12
|
||||
|
||||
enum {
|
||||
/* 1 bit to define user level / supervisor access */
|
||||
ACCESS_SUPER = 0x01,
|
||||
@@ -522,9 +513,6 @@ enum {
|
||||
ACCESS_DATA = 0x20, /* Data load/store access */
|
||||
};
|
||||
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 32
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||
|
||||
#define M68K_CPU_TYPE_SUFFIX "-" TYPE_M68K_CPU
|
||||
#define M68K_CPU_TYPE_NAME(model) model M68K_CPU_TYPE_SUFFIX
|
||||
#define CPU_RESOLVING_TYPE TYPE_M68K_CPU
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* MicroBlaze cpu parameters for qemu.
|
||||
*
|
||||
* Copyright (c) 2009 Edgar E. Iglesias
|
||||
* SPDX-License-Identifier: LGPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef MICROBLAZE_CPU_PARAM_H
|
||||
#define MICROBLAZE_CPU_PARAM_H 1
|
||||
|
||||
#define TARGET_LONG_BITS 64
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 64
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 64
|
||||
/* FIXME: MB uses variable pages down to 1K but linux only uses 4k. */
|
||||
#define TARGET_PAGE_BITS 12
|
||||
#define NB_MMU_MODES 3
|
||||
|
||||
#endif
|
||||
+2
-12
@@ -22,13 +22,11 @@
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "cpu-qom.h"
|
||||
|
||||
#define TARGET_LONG_BITS 64
|
||||
#include "exec/cpu-defs.h"
|
||||
#include "fpu/softfloat-types.h"
|
||||
|
||||
#define CPUArchState struct CPUMBState
|
||||
|
||||
#include "exec/cpu-defs.h"
|
||||
#include "fpu/softfloat-types.h"
|
||||
struct CPUMBState;
|
||||
typedef struct CPUMBState CPUMBState;
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
@@ -228,8 +226,6 @@ typedef struct CPUMBState CPUMBState;
|
||||
#define CC_NE 1
|
||||
#define CC_EQ 0
|
||||
|
||||
#define NB_MMU_MODES 3
|
||||
|
||||
#define STREAM_EXCEPTION (1 << 0)
|
||||
#define STREAM_ATOMIC (1 << 1)
|
||||
#define STREAM_TEST (1 << 2)
|
||||
@@ -340,12 +336,6 @@ void mb_tcg_init(void);
|
||||
int cpu_mb_signal_handler(int host_signum, void *pinfo,
|
||||
void *puc);
|
||||
|
||||
/* FIXME: MB uses variable pages down to 1K but linux only uses 4k. */
|
||||
#define TARGET_PAGE_BITS 12
|
||||
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 64
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 64
|
||||
|
||||
#define CPU_RESOLVING_TYPE TYPE_MICROBLAZE_CPU
|
||||
|
||||
#define cpu_signal_handler cpu_mb_signal_handler
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* MIPS cpu parameters for qemu.
|
||||
*
|
||||
* SPDX-License-Identifier: LGPL-2.0+
|
||||
*/
|
||||
|
||||
#ifndef MIPS_CPU_PARAM_H
|
||||
#define MIPS_CPU_PARAM_H 1
|
||||
|
||||
#ifdef TARGET_MIPS64
|
||||
# define TARGET_LONG_BITS 64
|
||||
#else
|
||||
# define TARGET_LONG_BITS 32
|
||||
#endif
|
||||
#ifdef TARGET_MIPS64
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 48
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 48
|
||||
#else
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 40
|
||||
# ifdef CONFIG_USER_ONLY
|
||||
# define TARGET_VIRT_ADDR_SPACE_BITS 31
|
||||
# else
|
||||
# define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||
#endif
|
||||
#endif
|
||||
#define TARGET_PAGE_BITS 12
|
||||
#define NB_MMU_MODES 4
|
||||
|
||||
#endif
|
||||
+1
-2
@@ -7,9 +7,9 @@
|
||||
|
||||
#include "qemu-common.h"
|
||||
#include "cpu-qom.h"
|
||||
#include "mips-defs.h"
|
||||
#include "exec/cpu-defs.h"
|
||||
#include "fpu/softfloat.h"
|
||||
#include "mips-defs.h"
|
||||
|
||||
#define TCG_GUEST_DEFAULT_MO (0)
|
||||
|
||||
@@ -103,7 +103,6 @@ struct CPUMIPSFPUContext {
|
||||
#define FP_UNIMPLEMENTED 32
|
||||
};
|
||||
|
||||
#define NB_MMU_MODES 4
|
||||
#define TARGET_INSN_START_EXTRA_WORDS 2
|
||||
|
||||
typedef struct CPUMIPSMVPContext CPUMIPSMVPContext;
|
||||
|
||||
@@ -5,23 +5,8 @@
|
||||
//#define USE_HOST_FLOAT_REGS
|
||||
|
||||
/* Real pages are variable size... */
|
||||
#define TARGET_PAGE_BITS 12
|
||||
#define MIPS_TLB_MAX 128
|
||||
|
||||
#if defined(TARGET_MIPS64)
|
||||
#define TARGET_LONG_BITS 64
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 48
|
||||
#define TARGET_VIRT_ADDR_SPACE_BITS 48
|
||||
#else
|
||||
#define TARGET_LONG_BITS 32
|
||||
#define TARGET_PHYS_ADDR_SPACE_BITS 40
|
||||
# ifdef CONFIG_USER_ONLY
|
||||
# define TARGET_VIRT_ADDR_SPACE_BITS 31
|
||||
# else
|
||||
# define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* bit definitions for insn_flags (ISAs/ASEs flags)
|
||||
* ------------------------------------------------
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user