mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
target/arm: Move A32_BANKED_REG_{GET,SET} macros to cpregs.h
The A32_BANKED_REG_{GET,SET} macros are only used inside target/arm; move their definitions to cpregs.h. There's no need to have them defined in all the code that includes cpu.h. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
0462a32b4f
commit
eae0c3b659
2 changed files with 28 additions and 27 deletions
|
@ -1157,4 +1157,32 @@ static inline bool arm_cpreg_traps_in_nv(const ARMCPRegInfo *ri)
|
|||
return ri->opc1 == 4 || ri->opc1 == 5;
|
||||
}
|
||||
|
||||
/* Macros for accessing a specified CP register bank */
|
||||
#define A32_BANKED_REG_GET(_env, _regname, _secure) \
|
||||
((_secure) ? (_env)->cp15._regname##_s : (_env)->cp15._regname##_ns)
|
||||
|
||||
#define A32_BANKED_REG_SET(_env, _regname, _secure, _val) \
|
||||
do { \
|
||||
if (_secure) { \
|
||||
(_env)->cp15._regname##_s = (_val); \
|
||||
} else { \
|
||||
(_env)->cp15._regname##_ns = (_val); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Macros for automatically accessing a specific CP register bank depending on
|
||||
* the current secure state of the system. These macros are not intended for
|
||||
* supporting instruction translation reads/writes as these are dependent
|
||||
* solely on the SCR.NS bit and not the mode.
|
||||
*/
|
||||
#define A32_BANKED_CURRENT_REG_GET(_env, _regname) \
|
||||
A32_BANKED_REG_GET((_env), _regname, \
|
||||
(arm_is_secure(_env) && !arm_el_is_aa64((_env), 3)))
|
||||
|
||||
#define A32_BANKED_CURRENT_REG_SET(_env, _regname, _val) \
|
||||
A32_BANKED_REG_SET((_env), _regname, \
|
||||
(arm_is_secure(_env) && !arm_el_is_aa64((_env), 3)), \
|
||||
(_val))
|
||||
|
||||
#endif /* TARGET_ARM_CPREGS_H */
|
||||
|
|
|
@ -2684,33 +2684,6 @@ static inline bool access_secure_reg(CPUARMState *env)
|
|||
return ret;
|
||||
}
|
||||
|
||||
/* Macros for accessing a specified CP register bank */
|
||||
#define A32_BANKED_REG_GET(_env, _regname, _secure) \
|
||||
((_secure) ? (_env)->cp15._regname##_s : (_env)->cp15._regname##_ns)
|
||||
|
||||
#define A32_BANKED_REG_SET(_env, _regname, _secure, _val) \
|
||||
do { \
|
||||
if (_secure) { \
|
||||
(_env)->cp15._regname##_s = (_val); \
|
||||
} else { \
|
||||
(_env)->cp15._regname##_ns = (_val); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* Macros for automatically accessing a specific CP register bank depending on
|
||||
* the current secure state of the system. These macros are not intended for
|
||||
* supporting instruction translation reads/writes as these are dependent
|
||||
* solely on the SCR.NS bit and not the mode.
|
||||
*/
|
||||
#define A32_BANKED_CURRENT_REG_GET(_env, _regname) \
|
||||
A32_BANKED_REG_GET((_env), _regname, \
|
||||
(arm_is_secure(_env) && !arm_el_is_aa64((_env), 3)))
|
||||
|
||||
#define A32_BANKED_CURRENT_REG_SET(_env, _regname, _val) \
|
||||
A32_BANKED_REG_SET((_env), _regname, \
|
||||
(arm_is_secure(_env) && !arm_el_is_aa64((_env), 3)), \
|
||||
(_val))
|
||||
|
||||
uint32_t arm_phys_excp_target_el(CPUState *cs, uint32_t excp_idx,
|
||||
uint32_t cur_el, bool secure);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue