From: Fabiano Rosas <farosas@linux.ibm.com>
To: "Bruno Larsen (billionai)" <bruno.larsen@eldorado.org.br>,
qemu-devel@nongnu.org
Cc: richard.henderson@linaro.org, lucas.araujo@eldorado.org.br,
luis.pires@eldorado.org.br, fernando.valle@eldorado.org.br,
qemu-ppc@nongnu.org,
"Bruno Larsen \(billionai\)" <bruno.larsen@eldorado.org.br>,
matheus.ferst@eldorado.org.br, david@gibson.dropbear.id.au
Subject: Re: [PATCH v4 0/5] target/ppc: Untangle CPU init from translation
Date: Tue, 04 May 2021 17:38:12 -0300 [thread overview]
Message-ID: <87im3y1bgr.fsf@linux.ibm.com> (raw)
In-Reply-To: <20210504140157.76066-1-bruno.larsen@eldorado.org.br>
"Bruno Larsen (billionai)" <bruno.larsen@eldorado.org.br> writes:
> Based-on: ppc-for-6.1 tree
>
> This patch series aims to remove the logic of initializing CPU from
> the file related to TCG translation. To achieve this, we have to make
> it so registering SPRs isn't directly tied to TCG, and move code only
> related to translation out of translate_init.c.inc and into translate.c.
> This is in preparation to compile this target without TCG.
>
> Changes for v4:
> * reordered patches, to make partially applying simpler
> * removed patches that were already applied
> * undone creation of spt_tcg.c.inc, now waiting for further cleanup
> * moved SPR_NOACCESS motion to last patch, and to spr_tcg.h
>
> Changes for v3:
> * fixed the parameters of _spr_register
> * remove some redundant #include statements
> * removed some functions that were mentioned in v2 as unnecessary
> * added copyright header to relevant files
> * removed first patch, that was already applied
> * removed a changed that would add a regression
>
> Changes for v2:
> * split and reordered patches, to make it easier to review
> * improved commit messages
> * Undid creation of spr_common, as it was unnecessary
> * kept more functions as static
> * ensured that the project builds after every commit
>
> Bruno Larsen (billionai) (5):
> target/ppc: Fold gen_*_xer into their callers
> target/ppc: renamed SPR registration functions
> target/ppc: move SPR R/W callbacks to translate.c
> target/ppc: turned SPR R/W callbacks not static
> target/ppc: isolated cpu init from translation logic
>
> .../ppc/{translate_init.c.inc => cpu_init.c} | 1848 ++++-------------
> target/ppc/meson.build | 1 +
> target/ppc/spr_tcg.h | 136 ++
> target/ppc/translate.c | 1072 +++++++++-
> 4 files changed, 1598 insertions(+), 1459 deletions(-)
> rename target/ppc/{translate_init.c.inc => cpu_init.c} (89%)
> create mode 100644 target/ppc/spr_tcg.h
We're still missing some changes:
- some files (hw/ppc/pnv.c, hw/ppc/spapr.c) use oea_read to check if an
SPR exists. This needs to be changed to something that is present in
both configs (I believe Bruno is working on this).
- The commit 6113563982 ("target/ppc: Clean up _spr_register et al")
from the ppc-for-6.1 branch missed some TCG-specific code in
gen_spr_BookE206:
$ ../configure --target-list=ppc64-softmmu --disable-tcg
$ make
(...)
[193/264] Compiling C object libqemu-ppc64-softmmu.fa.p/target_ppc_cpu_init.c.o
FAILED: libqemu-ppc64-softmmu.fa.p/target_ppc_cpu_init.c.o
(...)
../target/ppc/cpu_init.c: In function ‘register_BookE206_sprs’:
../target/ppc/cpu_init.c:1207:16: error: variable ‘uea_write’ set but not used [-Werror=unused-but-set-variable]
void (*uea_write)(DisasContext *ctx, int sprn, int gprn) =
^~~~~~~~~
cc1: all warnings being treated as errors
We need something like:
--- a/target/ppc/translate_init.c.inc 2021-05-04 16:24:53.549556292 -0400
+++ b/target/ppc/translate_init.c.inc 2021-05-04 16:26:41.005280971 -0400
@@ -2025,11 +2025,13 @@
/* TLB assist registers */
/* XXX : not implemented */
for (i = 0; i < 8; i++) {
+#ifdef CONFIG_TCG
void (*uea_write)(DisasContext *ctx, int sprn, int gprn) =
&spr_write_generic32;
if (i == 2 && (mas_mask & (1 << i)) && (env->insns_flags & PPC_64B)) {
uea_write = &spr_write_generic;
}
+#endif
if (mas_mask & (1 << i)) {
spr_register(env, mas_sprn[i], mas_names[i],
SPR_NOACCESS, SPR_NOACCESS,
---
next prev parent reply other threads:[~2021-05-04 20:39 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-04 14:01 [PATCH v4 0/5] target/ppc: Untangle CPU init from translation Bruno Larsen (billionai)
2021-05-04 14:01 ` [PATCH v4 1/5] target/ppc: Fold gen_*_xer into their callers Bruno Larsen (billionai)
2021-05-05 4:10 ` David Gibson
2021-05-04 14:01 ` [PATCH v4 2/5] target/ppc: renamed SPR registration functions Bruno Larsen (billionai)
2021-05-04 15:59 ` Richard Henderson
2021-05-05 4:11 ` David Gibson
2021-05-04 14:01 ` [PATCH v4 3/5] target/ppc: move SPR R/W callbacks to translate.c Bruno Larsen (billionai)
2021-05-04 16:08 ` Richard Henderson
2021-05-05 4:14 ` David Gibson
2021-05-04 14:01 ` [PATCH v4 4/5] target/ppc: turned SPR R/W callbacks not static Bruno Larsen (billionai)
2021-05-04 16:40 ` Richard Henderson
2021-05-04 14:01 ` [PATCH v4 5/5] target/ppc: isolated cpu init from translation logic Bruno Larsen (billionai)
2021-05-04 20:38 ` Fabiano Rosas [this message]
2021-05-05 11:30 ` [PATCH v4 0/5] target/ppc: Untangle CPU init from translation Bruno Piazera Larsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87im3y1bgr.fsf@linux.ibm.com \
--to=farosas@linux.ibm.com \
--cc=bruno.larsen@eldorado.org.br \
--cc=david@gibson.dropbear.id.au \
--cc=fernando.valle@eldorado.org.br \
--cc=lucas.araujo@eldorado.org.br \
--cc=luis.pires@eldorado.org.br \
--cc=matheus.ferst@eldorado.org.br \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.