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;
|
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 */
|
#endif /* TARGET_ARM_CPREGS_H */
|
||||||
|
|
|
@ -2684,33 +2684,6 @@ static inline bool access_secure_reg(CPUARMState *env)
|
||||||
return ret;
|
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 arm_phys_excp_target_el(CPUState *cs, uint32_t excp_idx,
|
||||||
uint32_t cur_el, bool secure);
|
uint32_t cur_el, bool secure);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue