ptitSeb / box64

Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64 Linux devices
https://box86.org
MIT License
3.73k stars 267 forks source link

[COSIM] Added thread-safe tests #1477

Closed ksco closed 5 months ago

ksco commented 5 months ago

Also added BOX64_DYNAREC_TEST=2 in the CI, well, except for RISC-V, need to find out what's the issue there...

ksco commented 5 months ago

Current CI failing seems have nothing to do with this PR.

ksco commented 5 months ago

Okay, the RISC-V side is complaining about the newly enabled X87 TAGS test, will port it to RISC-V later..

EDIT: it's already ported in 2a79b604546769e600600f3d85a684641b0bca28, then there are some bugs need to be fixed.

ptitSeb commented 5 months ago

main is green now

ksco commented 5 months ago

ack, rerunning

ptitSeb commented 5 months ago

Why do you need that "notest" int everywhere. Can't you use x64emu_t->test->test instead? or maybe add a notest member to x64test_t is using test is not possible?

ksco commented 5 months ago

Why do you need that "notest" int everywhere. Can't you use x64emu_t->test->test instead? or maybe add a notest member to x64test_t is using test is not possible?

That is possible, will do it.

ksco commented 5 months ago

Done, no more signature changes, sorry.

ptitSeb commented 5 months ago

I'll merge, but I really think that disabling test on jump, espcialy conditionnal jump, greatly reduce the usefullness of the test. Flags are not tested (because of the deffered and on-demand nature of the them), only their side effect, like conditionnal jump taken or not, are observed. Disbling jump blinds you from most flag computation error...

ksco commented 5 months ago

I'll merge, but I really think that disabling test on jump, espcialy conditionnal jump, greatly reduce the usefullness of the test. Flags are not tested (because of the deffered and on-demand nature of the them), only their side effect, like conditionnal jump taken or not, are observed. Disbling jump blinds you from most flag computation error...

Sorry I missed this yesterday, I agree, the limitations are too much. But think it as an enhancement for DYNAREC_TEST=1, not a replacement -- it's nice to have a more limited but working tool for multi-thread programs.