Signed-off-by: Jacek Caban jacek@codeweavers.com --- tools/winebuild/import.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
On 6/3/21 8:02 AM, Jacek Caban wrote:
Signed-off-by: Jacek Caban jacek@codeweavers.com
tools/winebuild/import.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
Wait, so what if %rflags or %cs is modified?
Do you have specific performance measurements for this patch?
On 6/3/21 10:56 AM, Zebediah Figura (she/her) wrote:
On 6/3/21 8:02 AM, Jacek Caban wrote:
Signed-off-by: Jacek Caban jacek@codeweavers.com
tools/winebuild/import.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
Wait, so what if %rflags or %cs is modified?
Eh, never mind, I think I see the point here, shame on me for not reading very well.
I'm a bit confused now, though, how is patch 3/3 incorrect?
Do you have specific performance measurements for this patch?
On 6/3/21 6:00 PM, Zebediah Figura (she/her) wrote:
On 6/3/21 10:56 AM, Zebediah Figura (she/her) wrote:
On 6/3/21 8:02 AM, Jacek Caban wrote:
Signed-off-by: Jacek Caban jacek@codeweavers.com
tools/winebuild/import.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
Wait, so what if %rflags or %cs is modified?
Eh, never mind, I think I see the point here, shame on me for not reading very well.
I'm a bit confused now, though, how is patch 3/3 incorrect?
Only XMM6-XMM15 are preserved, as required by usual calling convention requirements. The rest of FPU/YMM context is not preserved by the 'fast path'.
Jacek
On 6/3/21 11:33 AM, Jacek Caban wrote:
On 6/3/21 6:00 PM, Zebediah Figura (she/her) wrote:
On 6/3/21 10:56 AM, Zebediah Figura (she/her) wrote:
On 6/3/21 8:02 AM, Jacek Caban wrote:
Signed-off-by: Jacek Caban jacek@codeweavers.com
tools/winebuild/import.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
Wait, so what if %rflags or %cs is modified?
Eh, never mind, I think I see the point here, shame on me for not reading very well.
I'm a bit confused now, though, how is patch 3/3 incorrect?
Only XMM6-XMM15 are preserved, as required by usual calling convention requirements. The rest of FPU/YMM context is not preserved by the 'fast path'.
I must be missing something, but doesn't that match the Windows ABI?
On 6/3/21 6:37 PM, Zebediah Figura (she/her) wrote:
On 6/3/21 11:33 AM, Jacek Caban wrote:
On 6/3/21 6:00 PM, Zebediah Figura (she/her) wrote:
On 6/3/21 10:56 AM, Zebediah Figura (she/her) wrote:
On 6/3/21 8:02 AM, Jacek Caban wrote:
Signed-off-by: Jacek Caban jacek@codeweavers.com
tools/winebuild/import.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
Wait, so what if %rflags or %cs is modified?
Eh, never mind, I think I see the point here, shame on me for not reading very well.
I'm a bit confused now, though, how is patch 3/3 incorrect?
Only XMM6-XMM15 are preserved, as required by usual calling convention requirements. The rest of FPU/YMM context is not preserved by the 'fast path'.
I must be missing something, but doesn't that match the Windows ABI?
It does match general calling convention from Windows ABI, which is what applications should care about, but Windows syscalls have more guarantees than that.
Jacek
On 6/3/21 5:56 PM, Zebediah Figura (she/her) wrote:
Do you have specific performance measurements for this patch?
On the benchmark from [1], it's 1650 vs 1430 in 'stub' case. See [2] for more details about performance impact of different syscall dispatcher parts' overhead (although the final version that ended up in Wine is generally faster, it still gives a good overview). This particular patch affects 'restore control registers' part.
Jacek
[1] https://www.winehq.org/pipermail/wine-devel/2021-January/179730.html
[2] https://www.winehq.org/pipermail/wine-devel/2021-January/179801.html