mirror of https://github.com/xqemu/xqemu.git
target-arm: Extend feature flags to 64 bits
Extend feature flags to 64 bits, as we've just run out of space in the 32 bit integer we were using for them. Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
de9b05b807
commit
918f5dca18
|
@ -129,7 +129,7 @@ static void arm_cpu_reset(CPUState *s)
|
||||||
|
|
||||||
static inline void set_feature(CPUARMState *env, int feature)
|
static inline void set_feature(CPUARMState *env, int feature)
|
||||||
{
|
{
|
||||||
env->features |= 1u << feature;
|
env->features |= 1ULL << feature;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void arm_cpu_initfn(Object *obj)
|
static void arm_cpu_initfn(Object *obj)
|
||||||
|
|
|
@ -221,7 +221,7 @@ typedef struct CPUARMState {
|
||||||
/* These fields after the common ones so they are preserved on reset. */
|
/* These fields after the common ones so they are preserved on reset. */
|
||||||
|
|
||||||
/* Internal CPU feature flags. */
|
/* Internal CPU feature flags. */
|
||||||
uint32_t features;
|
uint64_t features;
|
||||||
|
|
||||||
void *nvic;
|
void *nvic;
|
||||||
const struct arm_boot_info *boot_info;
|
const struct arm_boot_info *boot_info;
|
||||||
|
@ -392,7 +392,7 @@ enum arm_features {
|
||||||
|
|
||||||
static inline int arm_feature(CPUARMState *env, int feature)
|
static inline int arm_feature(CPUARMState *env, int feature)
|
||||||
{
|
{
|
||||||
return (env->features & (1u << feature)) != 0;
|
return (env->features & (1ULL << feature)) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void arm_cpu_list(FILE *f, fprintf_function cpu_fprintf);
|
void arm_cpu_list(FILE *f, fprintf_function cpu_fprintf);
|
||||||
|
@ -638,7 +638,7 @@ static inline CPUARMState *cpu_init(const char *cpu_model)
|
||||||
#define cpu_signal_handler cpu_arm_signal_handler
|
#define cpu_signal_handler cpu_arm_signal_handler
|
||||||
#define cpu_list arm_cpu_list
|
#define cpu_list arm_cpu_list
|
||||||
|
|
||||||
#define CPU_SAVE_VERSION 7
|
#define CPU_SAVE_VERSION 8
|
||||||
|
|
||||||
/* MMU modes definitions */
|
/* MMU modes definitions */
|
||||||
#define MMU_MODE0_SUFFIX _kernel
|
#define MMU_MODE0_SUFFIX _kernel
|
||||||
|
|
|
@ -60,7 +60,7 @@ void cpu_save(QEMUFile *f, void *opaque)
|
||||||
qemu_put_be32(f, env->cp15.c15_diagnostic);
|
qemu_put_be32(f, env->cp15.c15_diagnostic);
|
||||||
qemu_put_be32(f, env->cp15.c15_power_diagnostic);
|
qemu_put_be32(f, env->cp15.c15_power_diagnostic);
|
||||||
|
|
||||||
qemu_put_be32(f, env->features);
|
qemu_put_be64(f, env->features);
|
||||||
|
|
||||||
if (arm_feature(env, ARM_FEATURE_VFP)) {
|
if (arm_feature(env, ARM_FEATURE_VFP)) {
|
||||||
for (i = 0; i < 16; i++) {
|
for (i = 0; i < 16; i++) {
|
||||||
|
@ -177,7 +177,7 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
|
||||||
env->cp15.c15_diagnostic = qemu_get_be32(f);
|
env->cp15.c15_diagnostic = qemu_get_be32(f);
|
||||||
env->cp15.c15_power_diagnostic = qemu_get_be32(f);
|
env->cp15.c15_power_diagnostic = qemu_get_be32(f);
|
||||||
|
|
||||||
env->features = qemu_get_be32(f);
|
env->features = qemu_get_be64(f);
|
||||||
|
|
||||||
if (arm_feature(env, ARM_FEATURE_VFP)) {
|
if (arm_feature(env, ARM_FEATURE_VFP)) {
|
||||||
for (i = 0; i < 16; i++) {
|
for (i = 0; i < 16; i++) {
|
||||||
|
|
Loading…
Reference in New Issue