Generate proper PIC code for libc_pic.a.

This commit is contained in:
marcus 2003-07-01 14:35:44 +00:00
parent 3377068dd2
commit 9b73f39949
21 changed files with 354 additions and 45 deletions

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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(); */

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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