Hi Phil, On Thu, Oct 29, 2026 at 07:10:18AM +0100, Philippe Mathieu-Daudé wrote: > On 29/10/26 06:51, Pierrick Bouvier wrote: > > On 10/28/26 10:46 PM, Philippe Mathieu-Daudé wrote: > > > On 29/10/26 06:39, Philippe Mathieu-Daudé wrote: > > > > On 29/10/26 06:33, Pierrick Bouvier wrote: > > > > > On 10/28/26 12:25 PM, Philippe Mathieu-Daudé wrote: > > > > > > Add R5900 system tests, code is covered, CPU can come back, > > > > > > allowing to fix a bug on PCGT opcode. > > > > > > > > > > > See some test failures, related to gdb: > > > > > https://github.com/p-b-o/qemu-ci/actions/runs/40776744817/ > > > > > job/123131480244 > > > > > > > > Ah hmm I had similar failures due to too old gdb, I might have > > > > missed to check the version in that container image. IIRC > > > > Gustavo had similar problem with ARM I'll see how he fixed > > > > that (I suppose check gdb version and skip the tests). > > > > > > Found it, this is 'gdb_feat_version' :) > > > > > That's the right way to deal with it indeed. > > > > That said, the gdb used in this test (on GitHub) comes from debian > > stable, which is fairly recent (16.3). > > > > Is a more recent version needed for complete mips support? > > If yes, I can update to the latest gdb so we can get full coverage on > > GitHub. Meanwhile, you can find which minimum version is needed. > > Indeed, the problem is simpler, located in the > tests/tcg/multiarch/gdbstub/registers.py. > > Before there were no register descriptions for MIPS and the test was > skipping (registers with no names). Now it runs for real. Apparently > this is what commit 6ef164188d00 ("tests/tcg: finesse the registers > check for "hidden" regs") aimed to resolve but was a bit too > restrictive, this fixes it: > > -- >8 -- > diff --git a/tests/tcg/multiarch/gdbstub/registers.py > b/tests/tcg/multiarch/gdbstub/registers.py > index b3d13cb077f1..8d886413eb28 100644 > --- a/tests/tcg/multiarch/gdbstub/registers.py > +++ b/tests/tcg/multiarch/gdbstub/registers.py > @@ -180,10 +180,13 @@ def complete_and_diff(reg_map): > > for e in reg_map.values(): > - if "initial" in e and "hidden" not in e: > + if "initial" in e: > name = e["name"] > old_val = e["initial"] > > try: > - new_val = frame.read_register(name) > + if "hidden" in e: > + new_val = frame.read_register(e["regnum"]) > + else: > + new_val = frame.read_register(name) > except ValueError: > report(False, f"failed to read {name} at end of run") > --- >
ah, I was late for the party, you already found it :) Reviewed-by: Gustavo Romero <[email protected]> Cheers, Gustavo
