Re: [PATCH] ppc/translate: Fix need_access_type for non MMU_64

2020-12-09 Thread Stephane Duverger
On Wed, Dec 09, 2020 at 02:40:45PM +0100, Greg Kurz wrote: > But I agree that the 0x0001 causes the check to be wrong for > CPUs using the POWERPC_MMU_32B MMU model. So your change is clearly > the way to go but the changelog should rather state that it doesn't > make sense to use an MMU model

[PATCH] ppc/translate: Fix need_access_type for non MMU_64

2020-12-09 Thread Stephane Duverger
es not use access_type. But 'mmu-hash32.c' does. Signed-off-by: Stephane Duverger --- target/ppc/translate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 54cac0e6a7..b4d0699ce3 100644 --- a/target/ppc/translat

Re: x86 TCG helpers clobbered registers

2020-12-08 Thread Stephane Duverger
On Tue, Dec 08, 2020 at 03:18:54PM -0600, Richard Henderson wrote: > As for modifying the fast path cases, the code is quite delicate, > and you run into problems with live registers. Which could be > worked around in each backend, but... why? Perhaps thinking that working at IR level would preve

Re: x86 TCG helpers clobbered registers

2020-12-07 Thread Stephane Duverger
On Sat, Dec 05, 2020 at 06:38:25AM -0600, Richard Henderson wrote: > The difference is that the slow path is aware that there are input registers > that are live, containing data (addrlo, addrhi, datalo, datahi), which must be > stored into the arguments for the slow path call. Those input registe

Re: x86 TCG helpers clobbered registers

2020-12-04 Thread Stephane Duverger
On Fri, Dec 04, 2020 at 01:35:55PM -0600, Richard Henderson wrote: Thank you Richard for your answer. I don't want to generate a debate, or defend the way I've done things initially. Really want to clarify these internals. Hope it will benefit to other QEMU enthusiasts. > You can't just inject a

x86 TCG helpers clobbered registers

2020-12-04 Thread Stephane Duverger
Hello, While looking at tcg/i386/tcg-target.c.inc:tcg_out_qemu_st(), I discovered that the TCG generates a call to a store helper at the end of the TB which is executed on TLB miss and get back to the remaining translated ops. I tried to mimick this behavior around the fast path (right between tcg

Re: [Qemu-devel] [PATCH] fix gdbserver_state pointer validation

2018-07-12 Thread stephane duverger
Hi Phil, Well, at least we agree the gdb stub code is not straightforward. > > And apparently without seeing the bigger picture about how you are using > this, I am missing something. Sorry for that, i will try to explain it clearly. This is something rather simple indeed: 1 - during MachineSta

Re: [Qemu-devel] [PATCH] fix gdbserver_state pointer validation

2018-07-11 Thread stephane duverger
To reach gdb_set_stop_cpu() with gdbserver_state == NULL, you previously > entered gdb_vm_state_change() with and use CPUState *cpu = > gdbserver_state->c_cpu = NULL deref, which shouldn't happen. > Also in gdb_set_stop_cpu() you finally call cpu_single_step(cpu=crap) > which then deref crap->singl

Re: [Qemu-devel] [PATCH] fix gdbserver_state pointer validation

2018-07-10 Thread stephane duverger
ear to you Alex ? (and hopefully lead to patch ACK :) Regards, stephane > Signed-off-by: Stephane Duverger > > --- > > gdbstub.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/gdbstub.c b/gdbstub.c > > index d6ab95006c..788fd625ab 100644 &

[Qemu-devel] [PATCH] fix gdbserver_state pointer validation

2018-07-09 Thread stephane duverger
, Signed-off-by: Stephane Duverger --- gdbstub.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gdbstub.c b/gdbstub.c index d6ab95006c..788fd625ab 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1412,6 +1412,9 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf) void