From 5d21ac643bb2a8d265470bf69043e50f060169d9 Mon Sep 17 00:00:00 2001 From: Brooks Davis Date: Thu, 21 Dec 2023 21:36:12 +0000 Subject: [PATCH] Revert "power*/SYS.h: implement _SYSCALL_BODY() macro" bapt reports build errors on powerpc/powerpc so this is the most likely culprit. This reverts commit e88e1272792e41cbf0a5af1f5f0a858afece0475. --- lib/libc/powerpc/SYS.h | 13 ++++++------- lib/libc/powerpc64/SYS.h | 28 ++++++++++++++++++---------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/lib/libc/powerpc/SYS.h b/lib/libc/powerpc/SYS.h index 24315f36953..8c47a65735f 100644 --- a/lib/libc/powerpc/SYS.h +++ b/lib/libc/powerpc/SYS.h @@ -40,17 +40,14 @@ li 0,(SYS_##name); \ sc -#define _SYSCALL_BODY(name) \ - _SYSCALL(name) \ - bnslr; \ - b CNAME(HIDENAME(cerror)) - #define PSEUDO(name) \ .text; \ .align 2; \ ENTRY(__sys_##name); \ WEAK_REFERENCE(__sys_##name, _##name); \ - _SYSCALL_BODY(name); \ + _SYSCALL(name); \ + bnslr; \ + b CNAME(HIDENAME(cerror)); \ END(__sys_##name) #define RSYSCALL(name) \ @@ -59,5 +56,7 @@ END(__sys_##name) ENTRY(__sys_##name); \ WEAK_REFERENCE(__sys_##name, name); \ WEAK_REFERENCE(__sys_##name, _##name); \ - _SYSCALL_BODY(name); \ + _SYSCALL(name); \ + bnslr; \ + b CNAME(HIDENAME(cerror)); \ END(__sys_##name) diff --git a/lib/libc/powerpc64/SYS.h b/lib/libc/powerpc64/SYS.h index bf8bc6cc0e2..dccd08b6354 100644 --- a/lib/libc/powerpc64/SYS.h +++ b/lib/libc/powerpc64/SYS.h @@ -40,7 +40,11 @@ li 0,(SYS_##name); \ sc -#define _SYSCALL_BODY(name) \ +#define PSEUDO(name) \ + .text; \ + .align 2; \ +ENTRY(__sys_##name); \ + WEAK_REFERENCE(__sys_##name, _##name); \ _SYSCALL(name); \ bnslr; \ mflr %r0; \ @@ -51,14 +55,7 @@ addi %r1,%r1,48; \ ld %r0,16(%r1); \ mtlr %r0; \ - blr - -#define PSEUDO(name) \ - .text; \ - .align 2; \ -ENTRY(__sys_##name); \ - WEAK_REFERENCE(__sys_##name, _##name); \ - _SYSCALL_BODY(name); \ + blr; \ END(__sys_##name) #define RSYSCALL(name) \ @@ -67,5 +64,16 @@ END(__sys_##name) ENTRY(__sys_##name); \ WEAK_REFERENCE(__sys_##name, name); \ WEAK_REFERENCE(__sys_##name, _##name); \ - _SYSCALL_BODY(name); \ + _SYSCALL(name); \ + bnslr; \ + \ + mflr %r0; \ + std %r0,16(%r1); \ + stdu %r1,-48(%r1); \ + bl CNAME(HIDENAME(cerror)); \ + nop; \ + addi %r1,%r1,48; \ + ld %r0,16(%r1); \ + mtlr %r0; \ + blr; \ END(__sys_##name)