[RFC PATCH 3/4] ntdll: Use writeback addressing to eliminate ADD in ARM syscall dispatcher.
Jinoh Kang
jinoh.kang.kr at gmail.com
Tue Feb 8 12:19:21 CST 2022
Shortened code leads to less time spent on instruction fetch and more
efficient I-cache utilization.
Signed-off-by: Jinoh Kang <jinoh.kang.kr at gmail.com>
---
dlls/ntdll/unix/signal_arm.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/dlls/ntdll/unix/signal_arm.c b/dlls/ntdll/unix/signal_arm.c
index c63f669668c..9bd03cc8aae 100644
--- a/dlls/ntdll/unix/signal_arm.c
+++ b/dlls/ntdll/unix/signal_arm.c
@@ -1208,9 +1208,8 @@ __ASM_GLOBAL_FUNC( __wine_syscall_dispatcher,
"tst ip, #2\n\t" /* CONTEXT_INTEGER */
"it ne\n\t"
"ldmne r8, {r0-r3}\n\t"
- "ldrd sp, lr, [r8, #0x38]\n\t"
- "add r8, r8, #0x10\n\t"
- "ldm r8, {r4-r12,pc}\n"
+ "ldrd sp, lr, [r8, #0x38]!\n\t"
+ "ldmdb r8, {r4-r12,pc}\n"
"5:\tmovw r0, #0x000d\n\t" /* STATUS_INVALID_PARAMETER */
"movt r0, #0xc000\n\t"
"add sp, sp, #0x10\n\t"
--
2.35.1
More information about the wine-devel
mailing list