Generate proper PIC code for libc_pic.a.
This commit is contained in:
parent
3377068dd2
commit
9b73f39949
|
@ -34,7 +34,7 @@
|
|||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)SYS.h 5.5 (Berkeley) 5/7/91
|
||||
* $NetBSD: SYS.h,v 1.4 2002/05/26 12:24:58 wiz Exp $
|
||||
* $NetBSD: SYS.h,v 1.5 2003/07/01 14:35:44 marcus Exp $
|
||||
*/
|
||||
|
||||
#include <machine/asm.h>
|
||||
|
@ -66,6 +66,18 @@
|
|||
ENTRY(x); \
|
||||
SYSTRAP(y)
|
||||
|
||||
#ifdef PIC
|
||||
#define _SYSCALL(x,y) \
|
||||
.text; \
|
||||
911: mov.l 912f, r3; \
|
||||
braf r3; \
|
||||
nop; \
|
||||
.align 2; \
|
||||
912: .long cerror-(911b+6); \
|
||||
_SYSCALL_NOERROR(x,y); \
|
||||
bf 911b; \
|
||||
nop
|
||||
#else
|
||||
#define _SYSCALL(x,y) \
|
||||
.text; \
|
||||
911: mov.l 912f, r3; \
|
||||
|
@ -76,6 +88,7 @@
|
|||
_SYSCALL_NOERROR(x,y); \
|
||||
bf 911b; \
|
||||
nop
|
||||
#endif
|
||||
|
||||
#define SYSCALL_NOERROR(x) \
|
||||
_SYSCALL_NOERROR(x,x)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: __setjmp14.S,v 1.4 2001/05/11 19:58:06 msaitoh Exp $ */
|
||||
/* $NetBSD: __setjmp14.S,v 1.5 2003/07/01 14:35:44 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS)
|
||||
RCSID("$NetBSD: __setjmp14.S,v 1.4 2001/05/11 19:58:06 msaitoh Exp $")
|
||||
RCSID("$NetBSD: __setjmp14.S,v 1.5 2003/07/01 14:35:44 marcus Exp $")
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@ -61,9 +61,16 @@ ENTRY(__setjmp14)
|
|||
mov #0, r5
|
||||
add #4*10, r6 /* &sigmask */
|
||||
|
||||
#ifdef PIC
|
||||
mov.l L__sigprocmask14r1, r0
|
||||
bsrf r0
|
||||
nop
|
||||
L__sigprocmask14o1:
|
||||
#else
|
||||
mov.l L__sigprocmask14, r0
|
||||
jsr @r0
|
||||
nop
|
||||
#endif
|
||||
|
||||
mov.l @r15+, r4
|
||||
lds.l @r15+, pr
|
||||
|
@ -90,9 +97,16 @@ ENTRY(__longjmp14)
|
|||
mov #3, r4 /* SIG_SETMASK */
|
||||
add #4*10, r5 /* &sigmask */
|
||||
mov #0, r6
|
||||
#ifdef PIC
|
||||
mov.l L__sigprocmask14r2, r0
|
||||
bsrf r0
|
||||
nop
|
||||
L__sigprocmask14o2:
|
||||
#else
|
||||
mov.l L__sigprocmask14, r0
|
||||
jsr @r0
|
||||
nop
|
||||
#endif
|
||||
mov.l @r15+, r5
|
||||
mov.l @r15+, r4
|
||||
|
||||
|
@ -114,5 +128,12 @@ ENTRY(__longjmp14)
|
|||
nop
|
||||
|
||||
.align 2
|
||||
#ifdef PIC
|
||||
L__sigprocmask14r1:
|
||||
.long _C_LABEL(__sigprocmask14)-L__sigprocmask14o1
|
||||
L__sigprocmask14r2:
|
||||
.long _C_LABEL(__sigprocmask14)-L__sigprocmask14o2
|
||||
#else
|
||||
L__sigprocmask14:
|
||||
.long _C_LABEL(__sigprocmask14)
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: __sigsetjmp14.S,v 1.4 2001/05/11 19:58:07 msaitoh Exp $ */
|
||||
/* $NetBSD: __sigsetjmp14.S,v 1.5 2003/07/01 14:35:44 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS)
|
||||
RCSID("$NetBSD: __sigsetjmp14.S,v 1.4 2001/05/11 19:58:07 msaitoh Exp $")
|
||||
RCSID("$NetBSD: __sigsetjmp14.S,v 1.5 2003/07/01 14:35:44 marcus Exp $")
|
||||
#endif
|
||||
|
||||
ENTRY(__sigsetjmp14)
|
||||
|
@ -55,9 +55,16 @@ ENTRY(__sigsetjmp14)
|
|||
mov #0, r5
|
||||
add #4*10, r6 /* &sigmask */
|
||||
|
||||
#ifdef PIC
|
||||
mov.l L__sigprocmask14r1, r0
|
||||
bsrf r0
|
||||
nop
|
||||
L__sigprocmask14o1:
|
||||
#else
|
||||
mov.l L__sigprocmask14, r0
|
||||
jsr @r0
|
||||
nop
|
||||
#endif
|
||||
|
||||
mov.l @r15+, r5
|
||||
mov.l @r15+, r4
|
||||
|
@ -91,9 +98,16 @@ ENTRY(__siglongjmp14)
|
|||
mov #3, r4 /* SIG_SETMASK */
|
||||
add #4*10, r5 /* &sigmask */
|
||||
mov #0, r6
|
||||
#ifdef PIC
|
||||
mov.l L__sigprocmask14r2, r0
|
||||
bsrf r0
|
||||
nop
|
||||
L__sigprocmask14o2:
|
||||
#else
|
||||
mov.l L__sigprocmask14, r0
|
||||
jsr @r0
|
||||
nop
|
||||
#endif
|
||||
mov.l @r15+, r5
|
||||
mov.l @r15+, r4
|
||||
|
||||
|
@ -117,5 +131,12 @@ ENTRY(__siglongjmp14)
|
|||
nop
|
||||
|
||||
.align 2
|
||||
#ifdef PIC
|
||||
L__sigprocmask14r1:
|
||||
.long _C_LABEL(__sigprocmask14)-L__sigprocmask14o1
|
||||
L__sigprocmask14r2:
|
||||
.long _C_LABEL(__sigprocmask14)-L__sigprocmask14o2
|
||||
#else
|
||||
L__sigprocmask14:
|
||||
.long _C_LABEL(__sigprocmask14)
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: sdivsi3.S,v 1.4 2001/05/11 19:58:07 msaitoh Exp $ */
|
||||
/* $NetBSD: sdivsi3.S,v 1.5 2003/07/01 14:35:44 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS)
|
||||
RCSID("$NetBSD: sdivsi3.S,v 1.4 2001/05/11 19:58:07 msaitoh Exp $")
|
||||
RCSID("$NetBSD: sdivsi3.S,v 1.5 2003/07/01 14:35:44 marcus Exp $")
|
||||
#endif
|
||||
|
||||
/* r0 <= r4 / r5 */
|
||||
|
@ -78,7 +78,11 @@ div_by_zero:
|
|||
mov r15, r14
|
||||
|
||||
mov.l L_raise, r1
|
||||
#ifdef PIC
|
||||
1: bsrf r1
|
||||
#else
|
||||
jsr @r1
|
||||
#endif
|
||||
mov #8, r4 /* delay slot */
|
||||
mov #0, r0
|
||||
|
||||
|
@ -88,5 +92,9 @@ div_by_zero:
|
|||
|
||||
.align 2
|
||||
L_raise:
|
||||
#ifdef PIC
|
||||
.long _C_LABEL(raise)-(1b+4)
|
||||
#else
|
||||
.long _C_LABEL(raise)
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: setjmp.S,v 1.4 2001/05/11 19:58:07 msaitoh Exp $ */
|
||||
/* $NetBSD: setjmp.S,v 1.5 2003/07/01 14:35:44 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS)
|
||||
RCSID("$NetBSD: setjmp.S,v 1.4 2001/05/11 19:58:07 msaitoh Exp $")
|
||||
RCSID("$NetBSD: setjmp.S,v 1.5 2003/07/01 14:35:44 marcus Exp $")
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@ -58,8 +58,14 @@ ENTRY(setjmp)
|
|||
mov.l r4, @-r15
|
||||
mov #0, r4
|
||||
mov.l Lsigblock, r0
|
||||
#ifdef PIC
|
||||
bsrf r0
|
||||
nop
|
||||
1:
|
||||
#else
|
||||
jsr @r0
|
||||
nop
|
||||
#endif
|
||||
mov.l @r15+, r4
|
||||
lds.l @r15+, pr
|
||||
|
||||
|
@ -81,7 +87,11 @@ ENTRY(setjmp)
|
|||
|
||||
.align 2
|
||||
Lsigblock:
|
||||
#ifdef PIC
|
||||
.long _C_LABEL(sigblock)-1b
|
||||
#else
|
||||
.long _C_LABEL(sigblock)
|
||||
#endif
|
||||
|
||||
ENTRY(longjmp)
|
||||
mov.l r4, @-r15
|
||||
|
@ -90,8 +100,14 @@ ENTRY(longjmp)
|
|||
add #4*10, r0
|
||||
mov.l @r0, r4
|
||||
mov.l Lsigsetmask, r0
|
||||
#ifdef PIC
|
||||
bsrf r0
|
||||
nop
|
||||
1:
|
||||
#else
|
||||
jsr @r0
|
||||
nop
|
||||
#endif
|
||||
mov.l @r15+, r5
|
||||
mov.l @r15+, r4
|
||||
|
||||
|
@ -114,4 +130,8 @@ ENTRY(longjmp)
|
|||
|
||||
.align 2
|
||||
Lsigsetmask:
|
||||
#ifdef PIC
|
||||
.long _C_LABEL(sigsetmask)-1b
|
||||
#else
|
||||
.long _C_LABEL(sigsetmask)
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: sigsetjmp.S,v 1.4 2001/05/11 19:58:07 msaitoh Exp $ */
|
||||
/* $NetBSD: sigsetjmp.S,v 1.5 2003/07/01 14:35:44 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS)
|
||||
RCSID("$NetBSD: sigsetjmp.S,v 1.4 2001/05/11 19:58:07 msaitoh Exp $")
|
||||
RCSID("$NetBSD: sigsetjmp.S,v 1.5 2003/07/01 14:35:44 marcus Exp $")
|
||||
#endif
|
||||
|
||||
ENTRY(sigsetjmp)
|
||||
|
@ -54,8 +54,14 @@ ENTRY(sigsetjmp)
|
|||
mov.l r4, @-r15
|
||||
mov #0, r4
|
||||
mov.l Lsigblock, r0
|
||||
#ifdef PIC
|
||||
bsrf r0
|
||||
nop
|
||||
2:
|
||||
#else
|
||||
jsr @r0
|
||||
nop
|
||||
#endif
|
||||
mov.l @r15+, r4
|
||||
lds.l @r15+, pr
|
||||
|
||||
|
@ -79,7 +85,11 @@ ENTRY(sigsetjmp)
|
|||
|
||||
.align 2
|
||||
Lsigblock:
|
||||
#ifdef PIC
|
||||
.long _C_LABEL(sigblock)-2b
|
||||
#else
|
||||
.long _C_LABEL(sigblock)
|
||||
#endif
|
||||
|
||||
ENTRY(siglongjmp)
|
||||
mov r4, r0
|
||||
|
@ -94,8 +104,14 @@ ENTRY(siglongjmp)
|
|||
add #4*10, r0
|
||||
mov.l @r0, r4
|
||||
mov.l Lsigsetmask, r0
|
||||
#ifdef PIC
|
||||
bsrf r0
|
||||
nop
|
||||
2:
|
||||
#else
|
||||
jsr @r0
|
||||
nop
|
||||
#endif
|
||||
mov.l @r15+, r5
|
||||
mov.l @r15+, r4
|
||||
|
||||
|
@ -119,4 +135,8 @@ ENTRY(siglongjmp)
|
|||
|
||||
.align 2
|
||||
Lsigsetmask :
|
||||
#ifdef PIC
|
||||
.long _C_LABEL(sigsetmask)-2b
|
||||
#else
|
||||
.long _C_LABEL(sigsetmask)
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: swapcontext.S,v 1.2 2003/01/20 00:26:39 thorpej Exp $ */
|
||||
/* $NetBSD: swapcontext.S,v 1.3 2003/07/01 14:35:44 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2001 The NetBSD Foundation, Inc.
|
||||
|
@ -38,22 +38,31 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
RCSID("$NetBSD: swapcontext.S,v 1.2 2003/01/20 00:26:39 thorpej Exp $")
|
||||
RCSID("$NetBSD: swapcontext.S,v 1.3 2003/07/01 14:35:44 marcus Exp $")
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
ENTRY(swapcontext)
|
||||
mov.l r5, @-r15
|
||||
sts.l pr, @-r15
|
||||
mov.l _L._getcontext, r0
|
||||
#ifdef PIC
|
||||
bsrf r0
|
||||
#else
|
||||
jsr @r0
|
||||
#endif
|
||||
mov.l r4, @-r15
|
||||
2:
|
||||
mov.l @r15+, r1
|
||||
tst r0, r0
|
||||
bf 1f
|
||||
mov.l @r15, r0
|
||||
mov.l r0, @(36 + 1 * 4, r1) /* saved pc <- pr */
|
||||
mov.l _L.setcontext, r2
|
||||
#ifdef PIC
|
||||
bsrf r2
|
||||
#else
|
||||
jsr @r2
|
||||
#endif
|
||||
mov.l @(4, r15), r4
|
||||
1:
|
||||
lds.l @r15+, pr
|
||||
|
@ -61,5 +70,10 @@ ENTRY(swapcontext)
|
|||
add #4, r15
|
||||
|
||||
.align 2
|
||||
#ifdef PIC
|
||||
_L._getcontext: .long _C_LABEL(_getcontext)-2b
|
||||
_L.setcontext: .long _C_LABEL(setcontext)-1b
|
||||
#else
|
||||
_L._getcontext: .long _C_LABEL(_getcontext)
|
||||
_L.setcontext: .long _C_LABEL(setcontext)
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: udivsi3.S,v 1.3 2001/05/11 19:58:07 msaitoh Exp $ */
|
||||
/* $NetBSD: udivsi3.S,v 1.4 2003/07/01 14:35:44 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(LIBC_SCCS)
|
||||
RCSID("$NetBSD: udivsi3.S,v 1.3 2001/05/11 19:58:07 msaitoh Exp $")
|
||||
RCSID("$NetBSD: udivsi3.S,v 1.4 2003/07/01 14:35:44 marcus Exp $")
|
||||
#endif
|
||||
|
||||
/* r0 <= r4 / r5 */
|
||||
|
@ -72,7 +72,11 @@ div_by_zero:
|
|||
mov r15, r14
|
||||
|
||||
mov.l L_raise, r1
|
||||
#ifdef PIC
|
||||
1: bsrf r1
|
||||
#else
|
||||
jsr @r1
|
||||
#endif
|
||||
mov #8, r4 /* delay slot */
|
||||
mov #0, r0
|
||||
|
||||
|
@ -82,5 +86,9 @@ div_by_zero:
|
|||
|
||||
.align 2
|
||||
L_raise:
|
||||
#ifdef PIC
|
||||
.long _C_LABEL(raise)-(1b+4)
|
||||
#else
|
||||
.long _C_LABEL(raise)
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: Ovfork.S,v 1.3 2001/05/11 19:58:08 msaitoh Exp $ */
|
||||
/* $NetBSD: Ovfork.S,v 1.4 2003/07/01 14:35:45 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
RCSID("$NetBSD: Ovfork.S,v 1.3 2001/05/11 19:58:08 msaitoh Exp $")
|
||||
RCSID("$NetBSD: Ovfork.S,v 1.4 2003/07/01 14:35:45 marcus Exp $")
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
@ -62,12 +62,27 @@ ENTRY(vfork)
|
|||
jmp @r2
|
||||
nop
|
||||
err:
|
||||
#ifdef PIC
|
||||
mov r0, r2
|
||||
mova L_GOT, r0
|
||||
mov.l L_GOT, r1
|
||||
add r0, r1
|
||||
mov.l L_errno, r0
|
||||
mov.l @(r0, r1), r1
|
||||
mov.l r2, @r1
|
||||
#else
|
||||
mov.l L_errno, r1
|
||||
mov.l r0, @r1
|
||||
#endif
|
||||
mov #0xff, r0
|
||||
jmp @r2
|
||||
nop
|
||||
|
||||
.align 2
|
||||
LSYS_vfork: .long SYS_vfork
|
||||
#ifdef PIC
|
||||
L_GOT: .long _GLOBAL_OFFSET_TABLE_
|
||||
L_errno: .long _C_LABEL(errno)@GOT
|
||||
#else
|
||||
L_errno: .long _C_LABEL(errno)
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: __clone.S,v 1.1 2001/07/22 17:18:25 tsubai Exp $ */
|
||||
/* $NetBSD: __clone.S,v 1.2 2003/07/01 14:35:45 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2001 Tsubai Masanari. All rights reserved.
|
||||
|
@ -58,14 +58,22 @@ ENTRY(__clone)
|
|||
mov r7, r4 /* arg */
|
||||
|
||||
mov.l L__exit, r1
|
||||
#ifdef PIC
|
||||
bsrf r1
|
||||
#else
|
||||
jsr @r1
|
||||
#endif
|
||||
mov r0, r4
|
||||
|
||||
2:
|
||||
inval:
|
||||
mov #EINVAL, r0
|
||||
err:
|
||||
mov.l Lcerror, r1
|
||||
#ifdef PIC
|
||||
braf r1
|
||||
#else
|
||||
jmp @r1
|
||||
#endif
|
||||
nop
|
||||
1:
|
||||
rts
|
||||
|
@ -74,7 +82,14 @@ err:
|
|||
.align 2
|
||||
LSYS___clone:
|
||||
.long SYS___clone
|
||||
#ifdef PIC
|
||||
L__exit:
|
||||
.long _C_LABEL(_exit)-2b
|
||||
Lcerror:
|
||||
.long cerror-1b
|
||||
#else
|
||||
L__exit:
|
||||
.long _C_LABEL(_exit)
|
||||
Lcerror:
|
||||
.long cerror
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: __syscall.S,v 1.3 2001/05/11 19:58:08 msaitoh Exp $ */
|
||||
/* $NetBSD: __syscall.S,v 1.4 2003/07/01 14:35:45 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
RCSID("$NetBSD: __syscall.S,v 1.3 2001/05/11 19:58:08 msaitoh Exp $")
|
||||
RCSID("$NetBSD: __syscall.S,v 1.4 2003/07/01 14:35:45 marcus Exp $")
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
@ -54,9 +54,18 @@ ENTRY(__syscall)
|
|||
nop
|
||||
err:
|
||||
mov.l Lcerror, r1
|
||||
#ifdef PIC
|
||||
braf r1
|
||||
#else
|
||||
jmp @r1
|
||||
#endif
|
||||
nop
|
||||
1:
|
||||
|
||||
.align 2
|
||||
#ifdef PIC
|
||||
Lcerror: .long cerror-1b
|
||||
#else
|
||||
Lcerror: .long cerror
|
||||
#endif
|
||||
L__syscall: .long SYS___syscall
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: __vfork14.S,v 1.3 2001/05/11 19:58:08 msaitoh Exp $ */
|
||||
/* $NetBSD: __vfork14.S,v 1.4 2003/07/01 14:35:45 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
RCSID("$NetBSD: __vfork14.S,v 1.3 2001/05/11 19:58:08 msaitoh Exp $")
|
||||
RCSID("$NetBSD: __vfork14.S,v 1.4 2003/07/01 14:35:45 marcus Exp $")
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
@ -62,8 +62,18 @@ ENTRY(__vfork14)
|
|||
jmp @r2
|
||||
nop
|
||||
err:
|
||||
#ifdef PIC
|
||||
mov r0, r3
|
||||
mova L_GOT, r0
|
||||
mov.l L_GOT, r1
|
||||
add r0, r1
|
||||
mov.l L_errno, r0
|
||||
mov.l @(r0, r1), r1
|
||||
mov.l r3, @r1
|
||||
#else
|
||||
mov.l L_errno, r1
|
||||
mov.l r0, @r1
|
||||
#endif
|
||||
mov #0xff, r0
|
||||
jmp @r2
|
||||
nop
|
||||
|
@ -71,5 +81,10 @@ err:
|
|||
.align 2
|
||||
LSYS___vfork14:
|
||||
.long SYS___vfork14
|
||||
#ifdef PIC
|
||||
L_GOT: .long _GLOBAL_OFFSET_TABLE_
|
||||
L_errno: .long _C_LABEL(errno)@GOT
|
||||
#else
|
||||
L_errno:
|
||||
.long _C_LABEL(errno)
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: brk.S,v 1.7 2001/05/11 19:58:08 msaitoh Exp $ */
|
||||
/* $NetBSD: brk.S,v 1.8 2003/07/01 14:35:45 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
RCSID("$NetBSD: brk.S,v 1.7 2001/05/11 19:58:08 msaitoh Exp $")
|
||||
RCSID("$NetBSD: brk.S,v 1.8 2003/07/01 14:35:45 marcus Exp $")
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
@ -58,8 +58,17 @@ _C_LABEL(__minbrk):
|
|||
.text
|
||||
|
||||
ENTRY(_brk)
|
||||
#ifdef PIC
|
||||
mova L_GOT, r0
|
||||
mov.l L_GOT, r2
|
||||
add r0, r2
|
||||
mov.l Lminbrk, r0
|
||||
mov.l @(r0, r2), r0
|
||||
mov.l @r0, r0
|
||||
#else
|
||||
mov.l Lminbrk, r0
|
||||
mov.l @r0, r0
|
||||
#endif
|
||||
cmp/hs r4, r0
|
||||
bf 1f
|
||||
mov r0, r4
|
||||
|
@ -67,18 +76,36 @@ ENTRY(_brk)
|
|||
mov.l LSYS_break, r0
|
||||
trapa #0x80
|
||||
bf err
|
||||
#ifdef PIC
|
||||
mov.l Lcurbrk, r0
|
||||
mov.l @(r0, r2), r1
|
||||
xor r0, r0
|
||||
#else
|
||||
xor r0, r0
|
||||
mov.l Lcurbrk, r1
|
||||
#endif
|
||||
rts
|
||||
mov.l r4, @r1
|
||||
err:
|
||||
mov.l Lcerror, r1
|
||||
#ifdef PIC
|
||||
braf r1
|
||||
#else
|
||||
jmp @r1
|
||||
#endif
|
||||
nop
|
||||
2:
|
||||
|
||||
|
||||
.align 2
|
||||
Lminbrk: .long _C_LABEL(__minbrk)
|
||||
LSYS_break: .long SYS_break
|
||||
#ifdef PIC
|
||||
L_GOT: .long _GLOBAL_OFFSET_TABLE_
|
||||
Lminbrk: .long _C_LABEL(__minbrk)@GOT
|
||||
Lcurbrk: .long curbrk@GOT
|
||||
Lcerror: .long cerror-2b
|
||||
#else
|
||||
Lminbrk: .long _C_LABEL(__minbrk)
|
||||
Lcurbrk: .long curbrk
|
||||
Lcerror: .long cerror
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: cerror.S,v 1.4 2001/05/11 19:58:08 msaitoh Exp $ */
|
||||
/* $NetBSD: cerror.S,v 1.5 2003/07/01 14:35:45 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
RCSID("$NetBSD: cerror.S,v 1.4 2001/05/11 19:58:08 msaitoh Exp $")
|
||||
RCSID("$NetBSD: cerror.S,v 1.5 2003/07/01 14:35:45 marcus Exp $")
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
@ -49,11 +49,26 @@
|
|||
|
||||
.globl _C_LABEL(errno)
|
||||
cerror:
|
||||
#ifdef PIC
|
||||
mov r0, r2
|
||||
mova L_GOT, r0
|
||||
mov.l L_GOT, r1
|
||||
add r0, r1
|
||||
mov.l L_errno, r0
|
||||
mov.l @(r0, r1), r1
|
||||
mov.l r2, @r1
|
||||
#else
|
||||
mov.l L_errno, r1
|
||||
mov.l r0, @r1
|
||||
#endif
|
||||
mov #0xff, r0
|
||||
rts
|
||||
mov #0xff, r1
|
||||
|
||||
.align 2
|
||||
#ifdef PIC
|
||||
L_GOT: .long _GLOBAL_OFFSET_TABLE_
|
||||
L_errno: .long _C_LABEL(errno)@GOT
|
||||
#else
|
||||
L_errno: .long _C_LABEL(errno)
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: exect.S,v 1.2 2001/05/11 19:58:08 msaitoh Exp $ */
|
||||
/* $NetBSD: exect.S,v 1.3 2003/07/01 14:35:45 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
RCSID("$NetBSD: exect.S,v 1.2 2001/05/11 19:58:08 msaitoh Exp $")
|
||||
RCSID("$NetBSD: exect.S,v 1.3 2003/07/01 14:35:45 marcus Exp $")
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
@ -51,11 +51,20 @@ ENTRY(exect)
|
|||
trapa #0x80
|
||||
|
||||
mov.l Lcerror, r1
|
||||
#ifdef PIC
|
||||
braf r0
|
||||
#else
|
||||
jmp @r0
|
||||
|
||||
#endif
|
||||
nop
|
||||
1:
|
||||
.align 2
|
||||
LSYS_execve: .long SYS_execve
|
||||
#ifdef PIC
|
||||
Lcerror: .long cerror-1b
|
||||
#else
|
||||
Lcerror: .long cerror
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
ENTRY(exect)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fork.S,v 1.6 2003/02/13 02:50:50 nathanw Exp $ */
|
||||
/* $NetBSD: fork.S,v 1.7 2003/07/01 14:35:45 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
RCSID("$NetBSD: fork.S,v 1.6 2003/02/13 02:50:50 nathanw Exp $")
|
||||
RCSID("$NetBSD: fork.S,v 1.7 2003/07/01 14:35:45 marcus Exp $")
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
@ -48,14 +48,23 @@
|
|||
.text
|
||||
.align 2
|
||||
2: mov.l 1f, r3
|
||||
#ifdef PIC
|
||||
braf r3
|
||||
#else
|
||||
jmp @r3
|
||||
#endif
|
||||
nop
|
||||
4:
|
||||
_SYSCALL_NOERROR(__fork,fork)
|
||||
bf 2b
|
||||
bra 3f
|
||||
nop
|
||||
.align 2
|
||||
#ifdef PIC
|
||||
1: .long cerror-4b
|
||||
#else
|
||||
1: .long cerror
|
||||
#endif
|
||||
3:
|
||||
add #0xff, r1 /* from 1 to 0 in child, 0 to -1 in parent */
|
||||
rts /* pid = fork(); */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ptrace.S,v 1.3 2001/05/11 19:58:08 msaitoh Exp $ */
|
||||
/* $NetBSD: ptrace.S,v 1.4 2003/07/01 14:35:45 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,13 +40,21 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
RCSID("$NetBSD: ptrace.S,v 1.3 2001/05/11 19:58:08 msaitoh Exp $")
|
||||
RCSID("$NetBSD: ptrace.S,v 1.4 2003/07/01 14:35:45 marcus Exp $")
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
||||
ENTRY(ptrace)
|
||||
#ifdef PIC
|
||||
mova L_GOT, r0
|
||||
mov.l L_GOT, r1
|
||||
add r0, r1
|
||||
mov.l L_errno, r0
|
||||
mov.l @(r0, r1), r0
|
||||
#else
|
||||
mov.l L_errno, r0
|
||||
#endif
|
||||
xor r1, r1
|
||||
mov.l r1, @r0
|
||||
mov.l LSYS_ptrace, r0
|
||||
|
@ -56,12 +64,23 @@ ENTRY(ptrace)
|
|||
nop
|
||||
err:
|
||||
mov.l Lcerror, r1
|
||||
#ifdef PIC
|
||||
bsrf r1
|
||||
#else
|
||||
jmp @r1
|
||||
#endif
|
||||
nop
|
||||
1:
|
||||
|
||||
.align 2
|
||||
L_errno: .long _C_LABEL(errno)
|
||||
LSYS_ptrace: .long SYS_ptrace
|
||||
#ifdef PIC
|
||||
L_GOT: .long _GLOBAL_OFFSET_TABLE_
|
||||
L_errno: .long _C_LABEL(errno)@GOT
|
||||
Lcerror: .long cerror-1b
|
||||
#else
|
||||
L_errno: .long _C_LABEL(errno)
|
||||
Lcerror: .long cerror
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: sbrk.S,v 1.6 2001/05/11 19:58:08 msaitoh Exp $ */
|
||||
/* $NetBSD: sbrk.S,v 1.7 2003/07/01 14:35:45 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
RCSID("$NetBSD: sbrk.S,v 1.6 2001/05/11 19:58:08 msaitoh Exp $")
|
||||
RCSID("$NetBSD: sbrk.S,v 1.7 2003/07/01 14:35:45 marcus Exp $")
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
@ -58,25 +58,49 @@ curbrk: .long _end
|
|||
|
||||
ENTRY(_sbrk)
|
||||
mov r4, r2
|
||||
#ifdef PIC
|
||||
mova L_GOT, r0
|
||||
mov.l L_GOT, r3
|
||||
add r0, r3
|
||||
mov.l Lcurbrk, r0
|
||||
mov.l @(r0, r3), r0
|
||||
#else
|
||||
mov.l Lcurbrk, r0
|
||||
#endif
|
||||
mov.l @r0, r0
|
||||
add r0, r4
|
||||
mov.l LSYS_break, r0
|
||||
trapa #0x80
|
||||
bf err
|
||||
#ifdef PIC
|
||||
mov.l Lcurbrk, r0
|
||||
mov.l @(r0, r3), r1
|
||||
#else
|
||||
mov.l Lcurbrk, r1
|
||||
#endif
|
||||
mov.l @r1, r0
|
||||
add r0, r2
|
||||
rts
|
||||
mov.l r2, @r1
|
||||
err:
|
||||
mov.l Lcerror, r1
|
||||
#ifdef PIC
|
||||
braf r1
|
||||
#else
|
||||
jmp @r1
|
||||
#endif
|
||||
nop
|
||||
1:
|
||||
|
||||
.align 2
|
||||
Lcurbrk: .long curbrk
|
||||
LSYS_break: .long SYS_break
|
||||
#ifdef PIC
|
||||
L_GOT: .long _GLOBAL_OFFSET_TABLE_
|
||||
Lcurbrk: .long curbrk@GOT
|
||||
Lcerror: .long cerror-1b
|
||||
#else
|
||||
Lcurbrk: .long curbrk
|
||||
Lcerror: .long cerror
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: sigprocmask.S,v 1.4 2001/05/11 19:58:08 msaitoh Exp $ */
|
||||
/* $NetBSD: sigprocmask.S,v 1.5 2003/07/01 14:35:45 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
RCSID("$NetBSD: sigprocmask.S,v 1.4 2001/05/11 19:58:08 msaitoh Exp $")
|
||||
RCSID("$NetBSD: sigprocmask.S,v 1.5 2003/07/01 14:35:45 marcus Exp $")
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
@ -70,11 +70,20 @@ out:
|
|||
nop
|
||||
err:
|
||||
mov.l Lcerror, r1
|
||||
#ifdef PIC
|
||||
braf r1
|
||||
#else
|
||||
jmp @r1
|
||||
#endif
|
||||
nop
|
||||
3:
|
||||
|
||||
.align 2
|
||||
LSYS_sigprocmask13:
|
||||
.long SYS_compat_13_sigprocmask13
|
||||
Lcerror:
|
||||
#ifdef PIC
|
||||
.long cerror-3b
|
||||
#else
|
||||
.long cerror
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: sigsuspend.S,v 1.3 2001/05/11 19:58:08 msaitoh Exp $ */
|
||||
/* $NetBSD: sigsuspend.S,v 1.4 2003/07/01 14:35:45 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
RCSID("$NetBSD: sigsuspend.S,v 1.3 2001/05/11 19:58:08 msaitoh Exp $")
|
||||
RCSID("$NetBSD: sigsuspend.S,v 1.4 2003/07/01 14:35:45 marcus Exp $")
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
@ -57,11 +57,20 @@ ENTRY(sigsuspend)
|
|||
nop
|
||||
err:
|
||||
mov.l Lcerror, r1
|
||||
#ifdef PIC
|
||||
braf r1
|
||||
#else
|
||||
jmp @r1
|
||||
#endif
|
||||
nop
|
||||
1:
|
||||
|
||||
.align 2
|
||||
LSYS_sigsuspend13:
|
||||
.long SYS_compat_13_sigsuspend13
|
||||
Lcerror:
|
||||
#ifdef PIC
|
||||
.long cerror-1b
|
||||
#else
|
||||
.long cerror
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: syscall.S,v 1.3 2001/05/11 19:58:08 msaitoh Exp $ */
|
||||
/* $NetBSD: syscall.S,v 1.4 2003/07/01 14:35:45 marcus Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
#if defined(SYSLIBC_SCCS) && !defined(lint)
|
||||
RCSID("$NetBSD: syscall.S,v 1.3 2001/05/11 19:58:08 msaitoh Exp $")
|
||||
RCSID("$NetBSD: syscall.S,v 1.4 2003/07/01 14:35:45 marcus Exp $")
|
||||
#endif /* SYSLIBC_SCCS and not lint */
|
||||
|
||||
#include "SYS.h"
|
||||
|
@ -54,9 +54,18 @@ ENTRY(syscall)
|
|||
nop
|
||||
err:
|
||||
mov.l Lcerror, r1
|
||||
#ifdef PIC
|
||||
braf r1
|
||||
#else
|
||||
jmp @r1
|
||||
#endif
|
||||
nop
|
||||
1:
|
||||
|
||||
.align 2
|
||||
#ifdef PIC
|
||||
Lcerror: .long cerror-1b
|
||||
#else
|
||||
Lcerror: .long cerror
|
||||
#endif
|
||||
Lsyscall: .long SYS_syscall
|
||||
|
|
Loading…
Reference in New Issue