https://bugs.kde.org/show_bug.cgi?id=481874
--- Comment #10 from Paul Floyd <pjfl...@wanadoo.fr> --- (In reply to Mark Wielaard from comment #9) > You need LibVEX_GuestARM64_put_nzcv_c to signal syscall success/failure. > I am not fully clear what the guest_SETC is for. If there is an asynchronous interrupt during a guest syscall we need to figure out where to restart the syscall. On Linux that is fairly straightforward. The assembler for ML_(do_syscall_for_client_WRK) has markers for the various stages and we just compare the PC to those markers. On FreeBSD and macOS things are different because of the carry flag for the syscall status. That gets set by a function call. So if the interrupt happens in the function call (LibVEX_GuestARM64_put_nzcv_c) the PC is no good. We can reliably know the address of the start of the function, but that's all. In this case there are also several helper functions. A while back I was using a hack by putting a dummy function after the 'set carry' function. That doesn't work on ARM64 so I switched to using a flag. -- You are receiving this mail because: You are watching all bug changes.