|
From: | Bruno Piazera Larsen |
Subject: | Re: [RFC PATCH 08/11] target/ppc: wrapped some TCG only logic with ifdefs |
Date: | Fri, 14 May 2021 13:22:48 -0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 |
On 5/14/21 8:29 AM, Bruno Piazera Larsen wrote:
On 12/05/2021 15:57, Bruno Piazera Larsen wrote:
On 12/05/2021 15:33, Richard Henderson wrote:So, I just looked and we'd need to change excp_helper.c and mmu-hash64.c, encasing 14 and 8 helper_foo() declarations. Is it better to work on those 2 files, or to change helper-proto?
On 5/12/21 9:08 AM, Bruno Larsen (billionai) wrote:A lot of files that we are compiling (mainly mmu-*, excp_helper and gdbstub IIRC). We could comb through all of them and remove all declarations of helpers and wrap the inclusion of helper-proto itself in ifdefs, but it felt unnecessarily long. If it is preferable, we can do it.
diff --git a/include/exec/helper-proto.h b/include/exec/helper-proto.h
index ba100793a7..ce287222ee 100644
--- a/include/exec/helper-proto.h
+++ b/include/exec/helper-proto.h
@@ -38,7 +38,9 @@ dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2), dh_ctype(t3), \
#define IN_HELPER_PROTO
#include "helper.h"
+#ifdef CONFIG_TCG
#include "trace/generated-helpers.h"
+#endif
#include "accel/tcg/tcg-runtime.h"
#include "accel/tcg/plugin-helpers.h"
Um.. this file is exclusively TCG already.
Are you missing some use of helper_foo()?
Let's work on excp_helper.c and mmu-hash64.c.
For excp_helper.c, ideally everything in there would be tcg related. Either explicitly as helper_foo() or by being one of the TCGCPUOps functions like ppc_cpu_exec_interrupt.
Removing excp_helper.c gives linker errors for the functions:
* ppc_cpu_do_system_reset, on hw/ppc/pnv.c and hw/ppc/spapr.c
* ppc_do_cpu_interrupt, on hw/ppc/spapr_events.c and target/ppc/kvm.c, and from what was discussed on the IRC this should still be compiled
* ppc_cpu_do_fwnmi_machine_check, on hw/ppc/spapr_events.c
I think ppc_do_cpu_interrupt could go to cpu.c, but no clue where
the others should go.
The ifdefs are easy enough, and not compiling it gives way too many linker errors. Moving the helpers and static functions sounds the cleanest though, so I'll look into it while I wait for the excp_helper help
For mmu-hash64.c... I guess the easiest thing in the short term is to put big ifdefs around helper_slbi{a,e,eg}. Or they could be moved to mmu_helper.c, with slb_lookup declared in mmu-hash64.h.
r~
[Prev in Thread] | Current Thread | [Next in Thread] |