http://bugs.winehq.org/show_bug.cgi?id=59333 --- Comment #4 from Hoshino Lina <lina@lina.yt> --- Yeah, I was thinking about that yesterday and it's not just SP. For the GC not to break, you need to make sure all registers are either preserved, or saved to the *user* stack, for any frames reported to user code. Otherwise the GC could miss some roots and free something it shouldn't. In practice, I think that means not clobbering any non-volatile registers while you are saving the frame. I think if you do that, and change the context code to something like: if (rip in __wine_syscall_dispatcher && rip during context save/restore sections) Just fake rip to be before/after the call so user does not observe it else if (is_inside_syscall()) Syscall path else Normal context path Then that would probably be reasonably fine? The user could observe volatile registers "magically" changing during the syscall in the corner cases but not much else. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.