July 1, 2025
8:42 p.m.
I think @gofman's suggestion is to restore all registers?
No, only non-volatile. As I understand what Alexandre suggests correctly, it is better to just restore those in call_user_mode_callback, in principle similar to what you did but: - for all non-volatile regs; - no need to pass additional parameters, you can get those right from frame. I don't know if that is really necessary, but I personally would go for some test for RtlVirtualUnwind called from window procedure (with something like CreateWindow called from asm code to save non-volatile registers before / after), to make sure we are getting it right. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/8466#note_108627