summaryrefslogtreecommitdiffstats
path: root/lib/libc/alpha/gen
diff options
context:
space:
mode:
authorjasone <jasone@FreeBSD.org>2000-01-12 09:23:48 +0000
committerjasone <jasone@FreeBSD.org>2000-01-12 09:23:48 +0000
commit75903038bc52105bc7479fe5f2b75f22f10c1c50 (patch)
treec9e28eda650bbd7eaa3eb22c8d7c75d00a96a451 /lib/libc/alpha/gen
parent688bb99b3f790aad607b949661d0361486bbe346 (diff)
downloadFreeBSD-src-75903038bc52105bc7479fe5f2b75f22f10c1c50.zip
FreeBSD-src-75903038bc52105bc7479fe5f2b75f22f10c1c50.tar.gz
Add three-tier symbol naming in support of POSIX thread cancellation
points. For library functions, the pattern is __sleep() <-- _libc_sleep() <-- sleep(). The arrows represent weak aliases. For system calls, the pattern is _read() <-- _libc_read() <-- read().
Diffstat (limited to 'lib/libc/alpha/gen')
-rw-r--r--lib/libc/alpha/gen/_setjmp.S14
-rw-r--r--lib/libc/alpha/gen/setjmp.S12
-rw-r--r--lib/libc/alpha/gen/sigsetjmp.S14
3 files changed, 28 insertions, 12 deletions
diff --git a/lib/libc/alpha/gen/_setjmp.S b/lib/libc/alpha/gen/_setjmp.S
index 2aa8c55..c18462f 100644
--- a/lib/libc/alpha/gen/_setjmp.S
+++ b/lib/libc/alpha/gen/_setjmp.S
@@ -25,6 +25,8 @@
*
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
+ *
+ * $FreeBSD$
*/
#include <machine/asm.h>
@@ -42,7 +44,9 @@
.set noreorder
-LEAF(_setjmp, 1)
+XLEAF(_setjmp, 1)
+XLEAF(_libc__setjmp, 1)
+LEAF(___setjmp, 1)
LDGP(pv)
stq ra, (2 * 8)(a0) /* sc_pc = return address */
stq s0, (( 9 + 4) * 8)(a0) /* saved bits of sc_regs */
@@ -83,9 +87,11 @@ LEAF(_setjmp, 1)
mov zero, v0 /* return zero */
RET
-END(_setjmp)
+END(___setjmp)
-LEAF(_longjmp, 2)
+XLEAF(_longjmp, 2)
+XLEAF(_libc__longjmp, 2)
+LEAF(___longjmp, 2)
LDGP(pv)
ldq t0, ((31 + 4) * 8)(a0) /* magic in sc_regs[31] */
ldiq t1, 0xacedbadd
@@ -120,4 +126,4 @@ botch:
CALL(longjmperror)
CALL(abort)
RET /* "can't" get here... */
-END(_longjmp)
+END(___longjmp)
diff --git a/lib/libc/alpha/gen/setjmp.S b/lib/libc/alpha/gen/setjmp.S
index fc2e16a..4d21f9e 100644
--- a/lib/libc/alpha/gen/setjmp.S
+++ b/lib/libc/alpha/gen/setjmp.S
@@ -44,7 +44,9 @@
.set noreorder
-LEAF(setjmp, 1)
+XLEAF(setjmp, 1)
+XLEAF(_libc_setjmp, 1)
+LEAF(__setjmp, 1)
LDGP(pv)
stq ra, (2 * 8)(a0) /* sc_pc = return address */
stq s0, (( 9 + 4) * 8)(a0) /* saved bits of sc_regs */
@@ -113,9 +115,11 @@ LEAF(setjmp, 1)
mov zero, v0 /* return zero */
RET
-END(setjmp)
+END(__setjmp)
-LEAF(longjmp, 2)
+XLEAF(longjmp, 2)
+XLEAF(_libc_longjmp, 2)
+LEAF(__longjmp, 2)
LDGP(pv)
stq a1, (( 0 + 4) * 8)(a0) /* save return value */
PCALL(sigreturn) /* use sigreturn to return */
@@ -124,4 +128,4 @@ botch:
CALL(longjmperror)
CALL(abort)
RET /* "can't" get here... */
-END(longjmp)
+END(__longjmp)
diff --git a/lib/libc/alpha/gen/sigsetjmp.S b/lib/libc/alpha/gen/sigsetjmp.S
index 8c79e0a..80b38bc 100644
--- a/lib/libc/alpha/gen/sigsetjmp.S
+++ b/lib/libc/alpha/gen/sigsetjmp.S
@@ -25,6 +25,8 @@
*
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
+ *
+ * $FreeBSD$
*/
#include <machine/asm.h>
@@ -43,20 +45,24 @@
.set noreorder
-LEAF(sigsetjmp, 2)
+XLEAF(sigsetjmp, 2)
+XLEAF(_libc_sigsetjmp, 2)
+LEAF(__sigsetjmp, 2)
LDGP(pv)
stq a1, (81 * 8)(a0) /* save the mask */
bne a1, Lsavesig /* if !zero, save signals */
jmp zero, _setjmp /* else don't. */
Lsavesig:
jmp zero, setjmp
-END(sigsetjmp)
+END(__sigsetjmp)
-LEAF(siglongjmp, 2)
+XLEAF(siglongjmp, 2)
+XLEAF(_libc_siglongjmp, 2)
+LEAF(__siglongjmp, 2)
LDGP(pv)
ldq t0, (81 * 8)(a0) /* get the mask */
bne t0, Lrestoresig /* if !zero, restore signals */
jmp zero, _longjmp
Lrestoresig:
jmp zero, longjmp
-END(siglongjmp)
+END(__siglongjmp)
OpenPOWER on IntegriCloud