Re: [hatari-devel] Big update to cpu emulation pushed to main repo |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
- To: Toni Wilen <twilen@xxxxxxxxxx>
- Subject: Re: [hatari-devel] Big update to cpu emulation pushed to main repo
- From: Thomas Huth <th.huth@xxxxxxxxx>
- Date: Tue, 3 Mar 2020 21:22:49 +0100
- Cc: hatari-devel@xxxxxxxxxxxxxxxxxxx
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1583266971; bh=02nxh5qgQzaP/R1TEIv+QqokAgwCmcEzOtILEhj8ilA=; h=Date:From:To:Cc:Subject:From; b=L1yCzBzRDSfY8U0wYPCXaae0gFoXMEMWwDHIdLElMKUkve+iOmSB3T1H5UQ4wC3zZ udX8aKSQjigI/WwlkmDEnOg+AfDqiWyEDZM99XwCGHcpFI6yQeMeHzWN7A7JtPXBxE waWAjGk3k6XuC6uUkZLHzJEeuiW+wa3hmKL9zsibaldlYA52Aswb7owJZXAVChjPwO zJyZUsctqjKMxuIlojRUf1j6m0meDv+sAnLBHasqQ/a/6U7OkVQUh5wBpdOElPv0mC Xx2uSrzZqhN1Gg6fHcjr7DCCaCujDiii6JBjwltdUCwV/+GEUzSkgivbJaPcPxaTQm l5W2ffrbzyr1A==
Am Sun, 23 Feb 2020 20:05:09 +0200
schrieb Toni Wilen <twilen@xxxxxxxxxx>:
> >> This is really an incredible work, so thanks to Toni ;-)
> >
> > I want to do something that is done too rarely, since people usually
> > write to complain.
> >
> > Thank you -- also to Toni, if he's reading this! This CPU update
> > really is impressive work and will for sure fix one or the other
> > emulation bug. I'm certain that the minor hitches reported here
> > will also be resolved.
>
> I am reading this, thanks :)
Also a big thank you from my side! Your hard work is really appreciated!
I've now had a try with the latest version of Hatari, and I get some
compiler warnings in the normal "release" builds, too - which currently
break my CI setups since I compile the sources with -Werror there, so
it would be great to get these fixed.
First one is harmless and easy to fix:
src/cpu/gencpu.c:1509:13: warning: 'fill_prefetch_next_skipopcode' defined but not used [-Wunused-function]
1509 | static void fill_prefetch_next_skipopcode(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.... that function is apparently not used anymore and thus could be
removed from the gencpu.cpp source now.
The second warnings look like a bug to me, though:
src/cpu/cpuemu_31.c: In function 'op_4cbb_31_ff':
src/cpu/cpuemu_31.c:21627:9: warning: 'tmppc' may be used uninitialized in this function [-Wmaybe-uninitialized]
21627 | srca = x_get_disp_ea_020(tmppc, 0);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/cpu/cpuemu_31.c: In function 'op_4cfb_31_ff':
src/cpu/cpuemu_31.c:21885:9: warning: 'tmppc' may be used uninitialized in this function [-Wmaybe-uninitialized]
21885 | srca = x_get_disp_ea_020(tmppc, 0);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
The code in the function looks like this:
/* MVMEL.W #<data>.W,(d8,PC,Xn) */
uae_u32 REGPARAM2 CPUFUNC(op_4cbb_31)(uae_u32 opcode)
{
int count_cycles = 0;
uae_u32 dstreg = 3;
OpcodeFamily = 37;
CurrentInstrCycles = 12;
uae_u16 mask = get_iword_mmu040(2);
uae_u32 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
uaecptr tmppc;
uaecptr srca;
m68k_incpci(4);
if (mmu040_movem) {
srca = mmu040_movem_ea;
} else
tmppc = m68k_getpci();
srca = x_get_disp_ea_020(tmppc, 0);
...
}
Thus the tmppc is really used without being initialized here, and the
"srca = x_get_disp_ea_020()" always overwrites the previous "srca =
mmu040_movem_ea;" ... which can't be right, can it?
Do you get the same generated code in WinUAE here, too, Toni?
Best regards,
Thomas