[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 30/34] accel/tcg: Make tcg-all.c target indpendent
From: |
Anton Johansson |
Subject: |
[RFC PATCH 30/34] accel/tcg: Make tcg-all.c target indpendent |
Date: |
Fri, 19 Jan 2024 15:40:20 +0100 |
Uses target_supports_mttcg() and target_long_bits() to turn ifdefs into
runtime branches.
Signed-off-by: Anton Johansson <anjo@rev.ng>
---
accel/tcg/tcg-all.c | 25 +++++++++----------------
1 file changed, 9 insertions(+), 16 deletions(-)
diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c
index a40e0aee37..b8e920e3a8 100644
--- a/accel/tcg/tcg-all.c
+++ b/accel/tcg/tcg-all.c
@@ -28,7 +28,6 @@
#include "exec/replay-core.h"
#include "sysemu/cpu-timers.h"
#include "tcg/tcg.h"
-#include "tcg/oversized-guest.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/accel.h"
@@ -67,20 +66,13 @@ DECLARE_INSTANCE_CHECKER(TCGState, TCG_STATE,
* there is one remaining limitation to check:
* - The guest can't be oversized (e.g. 64 bit guest on 32 bit host)
*/
-
static bool default_mttcg_enabled(void)
{
- if (icount_enabled() || TCG_OVERSIZED_GUEST) {
+ const bool oversized_guest = target_long_bits() > TCG_TARGET_REG_BITS;
+ if (icount_enabled() || oversized_guest) {
return false;
}
-#ifdef TARGET_SUPPORTS_MTTCG
-# ifndef TCG_GUEST_DEFAULT_MO
-# error "TARGET_SUPPORTS_MTTCG without TCG_GUEST_DEFAULT_MO"
-# endif
- return true;
-#else
- return false;
-#endif
+ return target_supports_mttcg();
}
static void tcg_accel_instance_init(Object *obj)
@@ -137,17 +129,18 @@ static char *tcg_get_thread(Object *obj, Error **errp)
static void tcg_set_thread(Object *obj, const char *value, Error **errp)
{
TCGState *s = TCG_STATE(obj);
+ const bool oversized_guest = target_long_bits() > TCG_TARGET_REG_BITS;
if (strcmp(value, "multi") == 0) {
- if (TCG_OVERSIZED_GUEST) {
+ if (oversized_guest) {
error_setg(errp, "No MTTCG when guest word size > hosts");
} else if (icount_enabled()) {
error_setg(errp, "No MTTCG when icount is enabled");
} else {
-#ifndef TARGET_SUPPORTS_MTTCG
- warn_report("Guest not yet converted to MTTCG - "
- "you may get unexpected results");
-#endif
+ if (target_supports_mttcg()) {
+ warn_report("Guest not yet converted to MTTCG - "
+ "you may get unexpected results");
+ }
s->mttcg_enabled = true;
}
} else if (strcmp(value, "single") == 0) {
--
2.43.0
- Re: [RFC PATCH 28/34] accel/tcg: Make plugin-gen.c target independent, (continued)
- [RFC PATCH 27/34] accel/tcg: Make translate-all.c target independent, Anton Johansson, 2024/01/19
- [RFC PATCH 29/34] accel/tcg: Make tb-maint.c target indpendent, Anton Johansson, 2024/01/19
- [RFC PATCH 34/34] accel/tcg: Compile (a few files) once for system-mode, Anton Johansson, 2024/01/19
- [RFC PATCH 33/34] accel/tcg: Make translator.c (partially) target independent, Anton Johansson, 2024/01/19
- [RFC PATCH 32/34] accel/tcg: Make tcg-runtime.c target independent, Anton Johansson, 2024/01/19
- [RFC PATCH 30/34] accel/tcg: Make tcg-all.c target indpendent,
Anton Johansson <=
- [RFC PATCH 31/34] accel/tcg: Make tcg-runtime-gvec.c target independent, Anton Johansson, 2024/01/19