semihosting: Split is_64bit_semihosting per target
We already have some larger ifdef blocks for ARM and RISCV; split the function into multiple implementations per arch. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
cd7f29e335
commit
ef9c5ea85d
@ -213,6 +213,10 @@ common_semi_sys_exit_extended(CPUState *cs, int nr)
|
|||||||
return (nr == TARGET_SYS_EXIT_EXTENDED || is_a64(cs->env_ptr));
|
return (nr == TARGET_SYS_EXIT_EXTENDED || is_a64(cs->env_ptr));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool is_64bit_semihosting(CPUArchState *env)
|
||||||
|
{
|
||||||
|
return is_a64(env);
|
||||||
|
}
|
||||||
#endif /* TARGET_ARM */
|
#endif /* TARGET_ARM */
|
||||||
|
|
||||||
#ifdef TARGET_RISCV
|
#ifdef TARGET_RISCV
|
||||||
@ -238,6 +242,10 @@ common_semi_sys_exit_extended(CPUState *cs, int nr)
|
|||||||
return (nr == TARGET_SYS_EXIT_EXTENDED || sizeof(target_ulong) == 8);
|
return (nr == TARGET_SYS_EXIT_EXTENDED || sizeof(target_ulong) == 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool is_64bit_semihosting(CPUArchState *env)
|
||||||
|
{
|
||||||
|
return riscv_cpu_mxl(env) != MXL_RV32;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -587,17 +595,6 @@ static const GuestFDFunctions guestfd_fns[] = {
|
|||||||
* call if the memory read fails. Eventually we could use a generic
|
* call if the memory read fails. Eventually we could use a generic
|
||||||
* CPUState helper function here.
|
* CPUState helper function here.
|
||||||
*/
|
*/
|
||||||
static inline bool is_64bit_semihosting(CPUArchState *env)
|
|
||||||
{
|
|
||||||
#if defined(TARGET_ARM)
|
|
||||||
return is_a64(env);
|
|
||||||
#elif defined(TARGET_RISCV)
|
|
||||||
return riscv_cpu_mxl(env) != MXL_RV32;
|
|
||||||
#else
|
|
||||||
#error un-handled architecture
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#define GET_ARG(n) do { \
|
#define GET_ARG(n) do { \
|
||||||
if (is_64bit_semihosting(env)) { \
|
if (is_64bit_semihosting(env)) { \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user