about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/alpha
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-11-07 01:35:04 +0000
committerUlrich Drepper <drepper@redhat.com>1996-11-07 01:35:04 +0000
commitb57910379e9a0fa1c6985840bbbe19b30595e361 (patch)
tree9bf68210227e7cc5022fdefaa8510313b651e709 /sysdeps/unix/sysv/linux/alpha
parent2c6fe0bd3b270fc644dd4c773f2d47b93f404efe (diff)
downloadglibc-b57910379e9a0fa1c6985840bbbe19b30595e361.tar.gz
glibc-b57910379e9a0fa1c6985840bbbe19b30595e361.tar.xz
glibc-b57910379e9a0fa1c6985840bbbe19b30595e361.zip
update from 961105, second try cvs/libc-961107
Diffstat (limited to 'sysdeps/unix/sysv/linux/alpha')
-rw-r--r--sysdeps/unix/sysv/linux/alpha/brk.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S18
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S19
-rw-r--r--sysdeps/unix/sysv/linux/alpha/llseek.S12
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sigsuspend.S12
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscall.S14
7 files changed, 72 insertions, 11 deletions
diff --git a/sysdeps/unix/sysv/linux/alpha/brk.S b/sysdeps/unix/sysv/linux/alpha/brk.S
index 75be949aff..d31d9e9b4d 100644
--- a/sysdeps/unix/sysv/linux/alpha/brk.S
+++ b/sysdeps/unix/sysv/linux/alpha/brk.S
@@ -38,6 +38,10 @@ __curbrk: .skip 8
 	.text
 LEAF(__brk, 0)
 	ldgp	gp, 0(t12)
+#ifdef PROF
+	lda	AT, _mcount
+	jsr	AT, (AT), _mcount
+#endif
 	.prologue 1
 
 	ldiq	v0, __NR_brk
diff --git a/sysdeps/unix/sysv/linux/alpha/clone.S b/sysdeps/unix/sysv/linux/alpha/clone.S
index 71d8053b12..9dbf3034c9 100644
--- a/sysdeps/unix/sysv/linux/alpha/clone.S
+++ b/sysdeps/unix/sysv/linux/alpha/clone.S
@@ -32,6 +32,10 @@ ENTRY(__clone)
 	/* Save rest of argument registers for varargs-type work.  */
 	stq	a4,0(sp)
 	stq	a5,8(sp)
+#ifdef PROF
+	lda	AT, _mcount
+	jsr	AT, (AT), _mcount
+#endif
 	.prologue 1
 
 	/* Sanity check arguments.  */
diff --git a/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S b/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
index e09fa738e2..1176a2730f 100644
--- a/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
+++ b/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
@@ -22,9 +22,17 @@ Cambridge, MA 02139, USA.  */
 
 	.text
 
-LEAF(__ieee_get_fp_control, 8)
-	lda	sp, -8(sp)
+LEAF(__ieee_get_fp_control, 16)
+#ifdef PROF
+	ldgp	gp, 0(pv)
+	lda	sp, -16(sp)
+	lda	AT, _mcount
+	jsr	AT, (AT), _mcount
 	.prologue 1
+#else
+	lda	sp, -16(sp)
+	.prologue 0
+#endif
 
 	mov	sp, a1
 	ldi	a0, GSI_IEEE_FP_CONTROL
@@ -33,12 +41,14 @@ LEAF(__ieee_get_fp_control, 8)
 	bne	a3, error
 
 	ldq	v0, 0(sp)
-	lda	sp, 8(sp)
+	lda	sp, 16(sp)
 	ret
 
-error:	lda	sp, 8(sp)
+error:	lda	sp, 16(sp)
+#ifndef PROF
 	br	gp, 1f
 1:	ldgp	gp, 0(gp)
+#endif
 	jmp	zero, __syscall_error
 
 	END(__ieee_get_fp_control)
diff --git a/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S b/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
index d748c81142..aa761ecaca 100644
--- a/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
+++ b/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
@@ -20,9 +20,17 @@ Cambridge, MA 02139, USA.  */
 
 #define SSI_IEEE_FP_CONTROL	14
 
-LEAF(__ieee_set_fp_control, 8)
-	lda	sp, -8(sp)
+LEAF(__ieee_set_fp_control, 16)
+#ifdef PROF
+	ldgp	gp, 0(sp)
+	lda	sp, -16(sp)
+	lda	AT, _mcount
+	jsr	AT, (AT), _mcount
 	.prologue 1
+#else
+	lda	sp, -16(sp)
+	.prologue 0
+#endif
 
 	stq	a0, 0(sp)
 	mov	sp, a1
@@ -30,13 +38,16 @@ LEAF(__ieee_set_fp_control, 8)
 	ldi	v0, __NR_osf_setsysinfo
 	call_pal PAL_callsys
 
-	lda	sp, 8(sp)
+	lda	sp, 16(sp)
 
 	bne	a3, error
 	ret
 
-error:	br	gp, 1f
+error:
+#ifndef PROF
+	br	gp, 1f
 1:	ldgp	gp, 0(gp)
+#endif
 	jmp	zero, __syscall_error
 
 	END(__ieee_set_fp_control)
diff --git a/sysdeps/unix/sysv/linux/alpha/llseek.S b/sysdeps/unix/sysv/linux/alpha/llseek.S
index 6020f263cd..45fb349236 100644
--- a/sysdeps/unix/sysv/linux/alpha/llseek.S
+++ b/sysdeps/unix/sysv/linux/alpha/llseek.S
@@ -24,7 +24,14 @@ Cambridge, MA 02139, USA.  */
 
 	.text
 ENTRY(llseek)
+#ifdef PROF
+	ldgp	gp, 0(pv)
+	lda	AT, _mcount
+	jsr	AT, (AT), _mcount
 	.prologue 1
+#else
+	.prologue 0
+#endif
 
 	sll	a1, 32, a1	/* build a 64 bit ofs out of 32 bit operands */
 	zap	a2, 0xf0, a2
@@ -40,8 +47,11 @@ ENTRY(llseek)
 	stq	v0, 0(t0)
 	ret
 
-error:	br	gp, 1f
+error:
+#ifndef PROF
+	br	gp, 1f
 1:	ldgp	gp, 0(gp)
+#endif
 	jmp	zero, __syscall_error
 
 	END(llseek)
diff --git a/sysdeps/unix/sysv/linux/alpha/sigsuspend.S b/sysdeps/unix/sysv/linux/alpha/sigsuspend.S
index aaae9a308a..83d331fef0 100644
--- a/sysdeps/unix/sysv/linux/alpha/sigsuspend.S
+++ b/sysdeps/unix/sysv/linux/alpha/sigsuspend.S
@@ -24,7 +24,14 @@ Cambridge, MA 02139, USA.  */
 	.text
 
 LEAF(sigsuspend, 0)
+#ifdef PROF
+	ldgp	gp, 0(pv)
+	lda	AT, _mcount
+	jsr	AT, (AT), _mcount
 	.prologue 1
+#else
+	.prologue 0
+#endif
 
 	ldq	a0, 0(a0)
 	ldi	v0, __NR_sigsuspend
@@ -32,8 +39,11 @@ LEAF(sigsuspend, 0)
 	bne	a3, error
 	ret
 
-error:	br	gp, 1f
+error:
+#ifndef PROF
+	br	gp, 1f
 1:	ldgp	gp, 0(gp)
+#endif
 	jmp	zero, __syscall_error
 
 	END(sigsuspend)
diff --git a/sysdeps/unix/sysv/linux/alpha/syscall.S b/sysdeps/unix/sysv/linux/alpha/syscall.S
index f1b36e9312..81043c2cdb 100644
--- a/sysdeps/unix/sysv/linux/alpha/syscall.S
+++ b/sysdeps/unix/sysv/linux/alpha/syscall.S
@@ -42,6 +42,15 @@ Cambridge, MA 02139, USA.  */
 
 
 LEAF(__syscall, 0)
+#ifdef PROF
+	ldgp	gp, 0(pv)
+	lda	AT, _mcount
+	jsr	AT, (AT), _mcount
+	.prologue 1
+#else
+	.prologue 0
+#endif
+
 	mov	a0, v0		/* Syscall number -> v0 */
 	mov	a1, a0		/* arg1-arg5 -> a0-a4 */
 	mov	a2, a1
@@ -53,8 +62,11 @@ LEAF(__syscall, 0)
 	bne	a3, error
 	ret
 
-error:	br	gp, 2f
+error:
+#ifndef PROF
+	br	gp, 2f
 2:	ldgp	gp, 0(gp)
+#endif
 	jmp	zero, __syscall_error
 
 weak_alias(__syscall, syscall)