cpu.h (283fc52ade85eb50141f3b8b85f82b07d016cb17) | cpu.h (eb94284d0812b4e7c11c5d075b584100ac1c1b9a) |
---|---|
1/* 2 * ARM virtual CPU header 3 * 4 * Copyright (c) 2003 Fabrice Bellard 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either --- 183 unchanged lines hidden (view full) --- 192 * map these registers when changing states. 193 * 194 * Align the data for use with TCG host vector operations. 195 */ 196 197#ifdef TARGET_AARCH64 198# define ARM_MAX_VQ 16 199void arm_cpu_sve_finalize(ARMCPU *cpu, Error **errp); | 1/* 2 * ARM virtual CPU header 3 * 4 * Copyright (c) 2003 Fabrice Bellard 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either --- 183 unchanged lines hidden (view full) --- 192 * map these registers when changing states. 193 * 194 * Align the data for use with TCG host vector operations. 195 */ 196 197#ifdef TARGET_AARCH64 198# define ARM_MAX_VQ 16 199void arm_cpu_sve_finalize(ARMCPU *cpu, Error **errp); |
200void arm_cpu_pauth_finalize(ARMCPU *cpu, Error **errp); |
|
200#else 201# define ARM_MAX_VQ 1 202static inline void arm_cpu_sve_finalize(ARMCPU *cpu, Error **errp) { } | 201#else 202# define ARM_MAX_VQ 1 203static inline void arm_cpu_sve_finalize(ARMCPU *cpu, Error **errp) { } |
204static inline void arm_cpu_pauth_finalize(ARMCPU *cpu, Error **errp) { } |
|
203#endif 204 205typedef struct ARMVectorReg { 206 uint64_t d[2 * ARM_MAX_VQ] QEMU_ALIGNED(16); 207} ARMVectorReg; 208 209#ifdef TARGET_AARCH64 210/* In AArch32 mode, predicate registers do not exist at all. */ --- 731 unchanged lines hidden (view full) --- 942 uint64_t mp_affinity; /* MP ID without feature bits */ 943 /* The elements of this array are the CCSIDR values for each cache, 944 * in the order L1DCache, L1ICache, L2DCache, L2ICache, etc. 945 */ 946 uint64_t ccsidr[16]; 947 uint64_t reset_cbar; 948 uint32_t reset_auxcr; 949 bool reset_hivecs; | 205#endif 206 207typedef struct ARMVectorReg { 208 uint64_t d[2 * ARM_MAX_VQ] QEMU_ALIGNED(16); 209} ARMVectorReg; 210 211#ifdef TARGET_AARCH64 212/* In AArch32 mode, predicate registers do not exist at all. */ --- 731 unchanged lines hidden (view full) --- 944 uint64_t mp_affinity; /* MP ID without feature bits */ 945 /* The elements of this array are the CCSIDR values for each cache, 946 * in the order L1DCache, L1ICache, L2DCache, L2ICache, etc. 947 */ 948 uint64_t ccsidr[16]; 949 uint64_t reset_cbar; 950 uint32_t reset_auxcr; 951 bool reset_hivecs; |
952 953 /* 954 * Intermediate values used during property parsing. 955 * Once finalized, the values should be read from ID_AA64ISAR1. 956 */ 957 bool prop_pauth; 958 bool prop_pauth_impdef; 959 |
|
950 /* DCZ blocksize, in log_2(words), ie low 4 bits of DCZID_EL0 */ 951 uint32_t dcz_blocksize; 952 uint64_t rvbar; 953 954 /* Configurable aspects of GIC cpu interface (which is part of the CPU) */ 955 int gic_num_lrs; /* number of list registers */ 956 int gic_vpribits; /* number of virtual priority bits */ 957 int gic_vprebits; /* number of virtual preemption bits */ --- 3146 unchanged lines hidden --- | 960 /* DCZ blocksize, in log_2(words), ie low 4 bits of DCZID_EL0 */ 961 uint32_t dcz_blocksize; 962 uint64_t rvbar; 963 964 /* Configurable aspects of GIC cpu interface (which is part of the CPU) */ 965 int gic_num_lrs; /* number of list registers */ 966 int gic_vpribits; /* number of virtual priority bits */ 967 int gic_vprebits; /* number of virtual preemption bits */ --- 3146 unchanged lines hidden --- |