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) | ||||
| { | ||||
|     env->features |= 1u << feature; | ||||
|     env->features |= 1ULL << feature; | ||||
| } | ||||
| 
 | ||||
| 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.  */ | ||||
| 
 | ||||
|     /* Internal CPU feature flags.  */ | ||||
|     uint32_t features; | ||||
|     uint64_t features; | ||||
| 
 | ||||
|     void *nvic; | ||||
|     const struct arm_boot_info *boot_info; | ||||
| @ -392,7 +392,7 @@ enum arm_features { | ||||
| 
 | ||||
| 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); | ||||
| @ -638,7 +638,7 @@ static inline CPUARMState *cpu_init(const char *cpu_model) | ||||
| #define cpu_signal_handler cpu_arm_signal_handler | ||||
| #define cpu_list arm_cpu_list | ||||
| 
 | ||||
| #define CPU_SAVE_VERSION 7 | ||||
| #define CPU_SAVE_VERSION 8 | ||||
| 
 | ||||
| /* MMU modes definitions */ | ||||
| #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_power_diagnostic); | ||||
| 
 | ||||
|     qemu_put_be32(f, env->features); | ||||
|     qemu_put_be64(f, env->features); | ||||
| 
 | ||||
|     if (arm_feature(env, ARM_FEATURE_VFP)) { | ||||
|         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_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)) { | ||||
|         for (i = 0;  i < 16; i++) { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Peter Maydell
						Peter Maydell