diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/hppa/pt-vfork.S')
-rw-r--r-- | sysdeps/unix/sysv/linux/hppa/pt-vfork.S | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/sysdeps/unix/sysv/linux/hppa/pt-vfork.S b/sysdeps/unix/sysv/linux/hppa/pt-vfork.S index df532362d2..4684048502 100644 --- a/sysdeps/unix/sysv/linux/hppa/pt-vfork.S +++ b/sysdeps/unix/sysv/linux/hppa/pt-vfork.S @@ -25,26 +25,6 @@ replaced by a call to `execve'. Return -1 for errors, 0 to the new process, and the process ID of the new process to the old process. */ -/* Load the thread register. - Load the saved PID value. - Negate the value. - Store the temporary PID. */ -#define SAVE_PID \ - mfctl %cr27, %r26 ASM_LINE_SEP \ - ldw PID_THREAD_OFFSET(%r26),%r1 ASM_LINE_SEP \ - sub %r0,%r1,%r1 ASM_LINE_SEP \ - stw %r1,PID_THREAD_OFFSET(%r26) ASM_LINE_SEP -/* If we are the parent... - Get the thread pointer. - Load the saved PID. - Negate the value (got back original) - Restore the PID. */ -#define RESTORE_PID \ - cmpb,=,n %r0,%ret0,.Lthread_start ASM_LINE_SEP \ - mfctl %cr27, %r26 ASM_LINE_SEP \ - ldw PID_THREAD_OFFSET(%r26),%r1 ASM_LINE_SEP \ - sub %r0,%r1,%r1 ASM_LINE_SEP \ - stw %r1,PID_THREAD_OFFSET(%r26) ASM_LINE_SEP \ .Lthread_start: ASM_LINE_SEP /* r26, r25, r24, r23 are free since vfork has no arguments */ @@ -58,16 +38,10 @@ ENTRY(__vfork) copy %r19, %r25 /* parent */ #endif - /* Save the process PID */ - SAVE_PID - /* Syscall saves and restores all register states */ ble 0x100(%sr2,%r0) ldi __NR_vfork,%r20 - /* Conditionally restore the PID */ - RESTORE_PID - /* Check for error */ ldi -4096,%r1 comclr,>>= %r1,%ret0,%r0 /* Note: unsigned compare. */ |