[PATCH 5/7] vcomp: Change _vcomp_fork_call_wrapper() args parameter type to void **.

Zebediah Figura (she/her) zfigura at codeweavers.com
Mon Feb 8 17:57:30 CST 2021


On 2/8/21 5:50 PM, Paul Gofman wrote:
> While looking at this I think I spotted a bug in ARM wrapper
> implementation which seems to be copying the first parameter over and
> over (doesn't increment the pointers while copying):
> 
>                    "3:\tldr x0, [x2], #8\n\t"
>                    "str x0, [x10], #8\n\t"
>                    "subs w1, w1, #1\n\t"
>                    "b.ne 3b\n\t"
> 
> But I have no experience with ARM assembly and might be missing
> something obvious. I don't have anything set up to build and run Wine
> ARM unfortunately to test.


The above ldr/str statements actually do increment x2 and x10
(specifically, post-increment). The statements

ldr x0, [x2, #8]
str x0, [x10, #8]

[i.e. with the offset inside the brackets] are equivalent but do not
increment x2 and x10.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20210208/c824504d/attachment.sig>


More information about the wine-devel mailing list