[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 23/53] semihosting: Split out common_semi_has_synccache
From: |
Richard Henderson |
Subject: |
[PATCH v4 23/53] semihosting: Split out common_semi_has_synccache |
Date: |
Tue, 7 Jun 2022 13:45:27 -0700 |
We already have some larger ifdef blocks for ARM and RISCV;
split out a boolean test for SYS_SYNCCACHE.
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
semihosting/arm-compat-semi.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/semihosting/arm-compat-semi.c b/semihosting/arm-compat-semi.c
index 7550dce622..50f40a2a1a 100644
--- a/semihosting/arm-compat-semi.c
+++ b/semihosting/arm-compat-semi.c
@@ -224,6 +224,12 @@ static inline target_ulong
common_semi_stack_bottom(CPUState *cs)
CPUARMState *env = &cpu->env;
return is_a64(env) ? env->xregs[31] : env->regs[13];
}
+
+static inline bool common_semi_has_synccache(CPUArchState *env)
+{
+ /* Ok for A64, invalid for A32/T32. */
+ return is_a64(env);
+}
#endif /* TARGET_ARM */
#ifdef TARGET_RISCV
@@ -260,6 +266,11 @@ static inline target_ulong
common_semi_stack_bottom(CPUState *cs)
CPURISCVState *env = &cpu->env;
return env->gpr[xSP];
}
+
+static inline bool common_semi_has_synccache(CPUArchState *env)
+{
+ return true;
+}
#endif
/*
@@ -1102,16 +1113,11 @@ void do_common_semihosting(CPUState *cs)
* virtual address range. This is a nop for us since we don't
* implement caches. This is only present on A64.
*/
-#ifdef TARGET_ARM
- if (is_a64(cs->env_ptr)) {
+ if (common_semi_has_synccache(env)) {
common_semi_set_ret(cs, 0);
break;
}
-#endif
-#ifdef TARGET_RISCV
- common_semi_set_ret(cs, 0);
-#endif
- /* fall through -- invalid for A32/T32 */
+ /* fall through */
default:
fprintf(stderr, "qemu: Unsupported SemiHosting SWI 0x%02x\n", nr);
cpu_dump_state(cs, stderr, 0);
--
2.34.1
- [PATCH v4 11/53] semihosting: Clean up common_semi_flen_cb, (continued)
- [PATCH v4 11/53] semihosting: Clean up common_semi_flen_cb, Richard Henderson, 2022/06/07
- [PATCH v4 10/53] semihosting: Adjust error checking in common_semi_cb, Richard Henderson, 2022/06/07
- [PATCH v4 02/53] semihosting: Return failure from softmmu-uaccess.h functions, Richard Henderson, 2022/06/07
- [PATCH v4 15/53] semihosting: Remove GDB_O_BINARY, Richard Henderson, 2022/06/07
- [PATCH v4 14/53] semihosting: Move common-semi.h to include/semihosting/, Richard Henderson, 2022/06/07
- [PATCH v4 16/53] include/exec: Move gdb open flags to gdbstub.h, Richard Henderson, 2022/06/07
- [PATCH v4 23/53] semihosting: Split out common_semi_has_synccache,
Richard Henderson <=
- [PATCH v4 25/53] semihosting: Use env more often in do_common_semihosting, Richard Henderson, 2022/06/07
- [PATCH v4 27/53] semihosting: Split out semihost_sys_open, Richard Henderson, 2022/06/07
- [PATCH v4 31/53] semihosting: Bound length for semihost_sys_{read, write}, Richard Henderson, 2022/06/07
- [PATCH v4 35/53] semihosting: Split out semihost_sys_remove, Richard Henderson, 2022/06/07