Quantcast

Simplify arm64 vfork

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Simplify arm64 vfork

Mark Kettenis
The return value munging isn't necessary anymore.  See for example
lib/libc/arch/arm/sys/OVfork.S:

  revision 1.4
  date: 2015/03/31 04:32:01;  author: guenther;  state: Exp;  lines: +1 -10;  commitid: 4lHzpIZZxMqyyel4;
  Simplify fork/vfork logic: the kernel has handled returning zero in the child
  for a long time, so there's no need to test the second return register here
  in the asm stub.

  ok and testing of many archs by krw@ miod@

ok?


Index: lib/libc/arch/aarch64/sys/Ovfork.S
===================================================================
RCS file: /cvs/src/lib/libc/arch/aarch64/sys/Ovfork.S,v
retrieving revision 1.1
diff -u -p -r1.1 Ovfork.S
--- lib/libc/arch/aarch64/sys/Ovfork.S 11 Jan 2017 18:09:24 -0000 1.1
+++ lib/libc/arch/aarch64/sys/Ovfork.S 18 Mar 2017 15:53:57 -0000
@@ -34,13 +34,6 @@
 
 #include "SYS.h"
 
-/*
- * pid = vfork();
- *
- * On return from the SWI:
- * r1 == 0 in parent process, r1 == 1 in child process.
- * r0 == pid of child in parent, r0 == pid of parent in child.
- */
  .text
  .align 0
 
@@ -48,8 +41,6 @@ SYSENTRY_HIDDEN(vfork)
  mov x2, x30
  SYSTRAP(vfork)
  bcs CERROR
- sub x1, x1, #1 /* r1 == 0xffffffff if parent, 0 if child */
- and x0, x0, x1 /* r0 == 0 if child, else unchanged */
  mov x30, x2
  ret
 SYSCALL_END_HIDDEN(vfork)

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Simplify arm64 vfork

Philip Guenther-2
On Sat, 18 Mar 2017, Mark Kettenis wrote:
> The return value munging isn't necessary anymore.  See for example
> lib/libc/arch/arm/sys/OVfork.S:

ok guenther@

Loading...