vcomp: Fix vcomp_fork() implementation on ARM64.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
fbec0ba9ee
commit
15ecb13d9c
|
@ -239,40 +239,24 @@ __ASM_GLOBAL_FUNC( _vcomp_fork_call_wrapper,
|
||||||
"stp x29, x30, [SP,#-16]!\n\t"
|
"stp x29, x30, [SP,#-16]!\n\t"
|
||||||
"mov x29, SP\n\t"
|
"mov x29, SP\n\t"
|
||||||
"mov x9, x0\n\t"
|
"mov x9, x0\n\t"
|
||||||
"cbz w1, 2f\n\t"
|
"cbz w1, 4f\n\t"
|
||||||
"mov w10, w1\n\t"
|
"lsl w8, w1, #3\n\t"
|
||||||
"mov x11, x2\n\t"
|
"cmp w8, #64\n\t"
|
||||||
"ldr w12, [x11, #24]\n\t"
|
"b.ge 1f\n\t"
|
||||||
"ldr x13, [x11, #8]\n\t"
|
"mov w8, #64\n"
|
||||||
"ldr x0, [x13, w12, sxtw]\n\t"
|
"1:\ttbz w8, #3, 2f\n\t"
|
||||||
"add w12, w12, #8\n\t"
|
"add w8, w8, #8\n"
|
||||||
"ldr x1, [x13, w12, sxtw]\n\t"
|
"2:\tsub x10, x29, x8\n\t"
|
||||||
"add w12, w12, #8\n\t"
|
"mov sp, x10\n"
|
||||||
"ldr x2, [x13, w12, sxtw]\n\t"
|
"3:\tldr x0, [x2], #8\n\t"
|
||||||
"add w12, w12, #8\n\t"
|
"str x0, [x10], #8\n\t"
|
||||||
"ldr x3, [x13, w12, sxtw]\n\t"
|
"subs w1, w1, #1\n\t"
|
||||||
"add w12, w12, #8\n\t"
|
"b.ne 3b\n\t"
|
||||||
"ldr x4, [x13, w12, sxtw]\n\t"
|
"ldp x0, x1, [sp], #16\n\t"
|
||||||
"add w12, w12, #8\n\t"
|
"ldp x2, x3, [sp], #16\n\t"
|
||||||
"ldr x5, [x13, w12, sxtw]\n\t"
|
"ldp x4, x5, [sp], #16\n\t"
|
||||||
"add w12, w12, #8\n\t"
|
"ldp x6, x7, [sp], #16\n"
|
||||||
"ldr x6, [x13, w12, sxtw]\n\t"
|
"4:\tblr x9\n\t"
|
||||||
"add w12, w12, #8\n\t"
|
|
||||||
"ldr x7, [x13, w12, sxtw]\n\t"
|
|
||||||
"add w12, w12, #8\n\t"
|
|
||||||
"add x13, x13, w12, sxtw\n\t"
|
|
||||||
"subs w12, w10, #8\n\t"
|
|
||||||
"b.le 2f\n\t"
|
|
||||||
"ldr x11, [x11]\n\t"
|
|
||||||
"lsl w12, w12, #3\n\t"
|
|
||||||
"sub SP, SP, w12, sxtw\n\t"
|
|
||||||
"tbz w12, #3, 1f\n\t"
|
|
||||||
"sub SP, SP, #8\n\t"
|
|
||||||
"1: sub w12, w12, #8\n\t"
|
|
||||||
"ldr x14, [x13, w12, sxtw]\n\t"
|
|
||||||
"str x14, [SP, w12, sxtw]\n\t"
|
|
||||||
"cbnz w12, 1b\n\t"
|
|
||||||
"2: blr x9\n\t"
|
|
||||||
"mov SP, x29\n\t"
|
"mov SP, x29\n\t"
|
||||||
"ldp x29, x30, [SP], #16\n\t"
|
"ldp x29, x30, [SP], #16\n\t"
|
||||||
"ret\n" )
|
"ret\n" )
|
||||||
|
|
Loading…
Reference in New Issue