about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/sparc/sparc64
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-09-16 17:54:34 +0000
committerUlrich Drepper <drepper@redhat.com>1998-09-16 17:54:34 +0000
commit9c4c002459bd2665ac1ad544e56952ec7797e8dd (patch)
tree9d2faf3588e279b3b99748cdf7ccdceefe6a7092 /sysdeps/unix/sysv/linux/sparc/sparc64
parenta8125d855218832508af812df585c5fac5093bc3 (diff)
downloadglibc-9c4c002459bd2665ac1ad544e56952ec7797e8dd.tar.gz
glibc-9c4c002459bd2665ac1ad544e56952ec7797e8dd.tar.xz
glibc-9c4c002459bd2665ac1ad544e56952ec7797e8dd.zip
Update.
1998-09-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/mach/hurd/dl-cache.c (_dl_unload_cache): New dummy
	function.  Reported by okuji@kuicr.kyoto-u.ac.jp [PR libc/789].

1998-09-15  David S. Miller  <davem@pierdol.cobaltmicro.com>

	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_runtime_setup):
	Add profiling support.
	(TRAMPOLINE_TEMPLATE): New macro.
	(ELF_MACHINE_RUNTIME_TRAMPOLINE): Define in terms of that.
	(RTLD_START): Prettify, and set __libc_stack_end properly.
	(elf_machine_rela) [R_SPARC_COPY]: Remove RTLD_BOOTSTRAP ifndef
	and check for sym being NULL instead.
	* sysdeps/sparc/sparc64/addmul_1.S: Adjust to allocate 192 bytes
	of stack space.
	* sysdeps/sparc/sparc64/lshift.S: Likewise.
	* sysdeps/sparc/sparc64/mul_1.S: Likewise.
	* sysdeps/sparc/sparc64/rshift.S: Likewise.
	* sysdeps/sparc/sparc64/submul_1.S: Likewise.
	* sysdeps/sparc/sparc64/elf/crtbegin.S: Likewise and remove old
	MEDANY code model %g4 usage.
	* sysdeps/sparc/sparc64/elf/crtend.S: Likewise and remove old
	MEDANY code model %g4 usage.
	* sysdeps/sparc/sparc64/elf/start.S: Rework to not use old FULLANY
	code model address formation.
	* sysdeps/sparc/sparc64/dl-machine.h: Don't include link.h, do
	include elf/ldsodefs.h
	(DT_SPARC): Remove.
	(elf_machine_matches_host): It is now EM_SPARCV9.
	(elf_machine_dynamic): Clean up to remove ugly cast.
	(elf_machine_fixup_plt): Rework for new V9 ABI, add support for
	new PLT formats.
	(elf_machine_rela): Don't do anything at all for R_SPARC_NONE.
	Prettify rest of function.
	[R_SPARC_COPY]: Check for sym being NULL.
	[R_SPARC_32]: Handle it.
	[R_SPARC_H44, R_SPARC_M44, R_SPARC_L44]: Handle them for the
	MEDMID code model.
	[R_SPARC_HH22, R_SPARC_HM10, R_SPARC_LM22]: Handle them for the
	MEDANY code model.
	[R_SPARC_NONE]: Remove this case, as it is now checked earlier.
	(elf_machine_runtime_setup): Rewrite for new V9 ABI plt formats.
	Add profiling support.
	(TRAMPOLINE_TEMPLATE): New macro.
	(ELF_MACHINE_RUNTIME_TRAMPOLINE): Define in terms of that.
	(RTLD_START): Prettify and set __libc_stack_end.
	* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h (SA_SIGINFO):
	Define.
	* sysdeps/unix/sysv/linux/sparc/bits/signum.h (_NSIG): Set to 64.
	(SIGRTMIN, SIGRTMAX, __SIGRTMIN, __SIGRTMAX): Define.
	* sysdeps/unix/sysv/linux/sparc/sparc32/brk.c (__brk): Remove
	unused variable scratch.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c
	(__syscall_rt_sigaction, __rt_sigreturn_stub, __sigreturn_stub):
	Declare.
	(__sigaction): Rewrite rt_sigaction case to pass correct sigreturn
	stub to rt_sigaction syscalls.  Rewrite non-rt case to use correct
	old format kernel sigaction structures.
	* sysdeps/unix/sysv/linux/sparc/sparc64/ucontext.h: Move...
	* sysdeps/unix/sysv/linux/sparc/sparc64/sys/ucontext.h: to here.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Dist: Remove ucontext.h
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h: Fix
	ucontext include.
	(_JMPBUF_UNWINDS): Define.
	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h: Declare
	statfs64 structure, which is exactly the same as the normal one.
	* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Allocate 192 bytes
	of stack.  Use correct syscall trap number.  Add branch prediction
	settings to branch instructions.  Remove old MEDANY code model %g4
	referneces for non-PIC.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S: Add
	__libc_longjmp and __libc_siglongjmp strong aliases.
	* sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c (__readdir64):
	Also define to __no__readdir64_decl around readdir.c inclusion.
	(__readdir64): Add strong alias.
	* sysdeps/unix/sysv/linux/sparc/sparc64/socket.S: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (getrlimit):
	Set strong and weak names properly.

1998-09-16 11:25  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* manual/Makefile (AWK): Default to gawk if standalone.

1998-09-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makefile (distribute): Undo last change.
	* Make-dist (+tsrc) [not subdir]: Also include indirection headers
	for sysdep headers.
	(+subdir-headers): Removed, unused.

1998-09-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* stdio-common/Makefile ($(inst_includedir)/bits/stdio_lim.h): Use
	$(do-install).

1998-09-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makerules ($(+sysdir_pfx)sysd-Makefile): Don't check for
	absolute name in $(config-sysdirs), can never happen.
	($(+sysdir_pfx)sysd-rules): Likewise.
	* Makeconfig (full-config-sysdirs): Likewise.
	(all-Subdirs-files): Prepend $(..).

	* configure.in: Don't check for absolute name in $add_ons_pfx, can
	not happen.  Let --enable-add-ons=yes work if no add-ons actually
	exist.

1998-09-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Rules ($(common-objpfx)bits/stdio_%.h): Remove extra
	continuations in command.

1998-09-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* libio/oldstdfiles.c (_IO_stdin_used): Update declaration.
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc/sparc64')
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h7
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h16
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/brk.S15
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/clone.S7
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h7
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c3
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sys/ucontext.h (renamed from sysdeps/unix/sysv/linux/sparc/sparc64/ucontext.h)6
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h53
13 files changed, 71 insertions, 52 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Dist b/sysdeps/unix/sysv/linux/sparc/sparc64/Dist
index 50f83311cd..c22b73ebd2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Dist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Dist
@@ -4,5 +4,4 @@ kernel_stat.h
 getcontext.S
 setcontext.S
 sizes.h
-ucontext.h
 init-first.h
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h
index b200b718d2..e51f81a5a0 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h
@@ -21,6 +21,11 @@
 # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
 #endif
 
-#include <ucontext.h>
+#include <sys/ucontext.h>
 
 typedef ucontext_t __jmp_buf[1];
+
+/* Test if longjmp to JMPBUF would unwind the frame
+   containing a local variable at ADDRESS.  */
+#define _JMPBUF_UNWINDS(jmpbuf, address) \
+  ((unsigned long int) (address) < (jmpbuf)->uc_mcontext.mc_fp)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h
index 9027eca2ac..b6178f5a8e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h
@@ -39,4 +39,20 @@ struct statfs
     long int f_spare[6];
   };
 
+/* We already use 64-bit types in the normal structure,
+   so this is the same as the above.  */
+struct statfs64
+  {
+    long int f_type;
+    long int f_bsize;
+    long int f_blocks;
+    long int f_bfree;
+    long int f_bavail;
+    long int f_files;
+    long int f_ffree;
+    __fsid_t f_fsid;
+    long int f_namelen;
+    long int f_spare[6];
+  };
+
 #endif	/* bits/statfs.h */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
index 333f9916f8..e21b60d637 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
@@ -38,7 +38,7 @@ __curbrk: .skip 8
 
 	.text
 ENTRY(__brk)
-	save	%sp, -160, %sp
+	save	%sp, -192, %sp
 #ifdef PIC
 1:	call	2f
 	sethi	%hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
@@ -49,24 +49,23 @@ ENTRY(__brk)
 	LOADSYSCALL(brk)
 	mov	%i0, %o0
 
-	ta	0x11
+	ta	0x6d
 
 	/* All the ways we can fail... */
 	bcs,pn	%xcc, .Lerr1
 	 nop
-	brz	%i0, .Lok
+	brz,pt	%i0, .Lok
 	 subcc	%i0, %o0, %g0
 	bne,pn	%xcc, .Lerr0
+	 nop
 
 	/* Update __curbrk and return cleanly.  */
 .Lok:	sethi	%hi(__curbrk), %g1
 	or	%g1, %lo(__curbrk), %g1
 #ifdef PIC
 	ldx	[%l7+%g1], %g1
-	stx	%o0, [%g1]
-#else
-	stx	%o0, [%g4+%g1]
 #endif
+	stx	%o0, [%g1]
 	mov	%g0, %i0
 
 	/* Don't use "ret" cause the preprocessor will eat it.  */
@@ -81,10 +80,8 @@ ENTRY(__brk)
 	or	%g1, %lo(errno), %g1
 #ifdef PIC
 	ldx	[%l7+%g1], %g1
-	st	%o0, [%g1]
-#else
-	st	%o0, [%g4+%g1]
 #endif
+	st	%o0, [%g1]
 #else
 	call	__errno_location
 	 mov	%o0,%l1
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
index 6c619fcdc3..d7506b7c72 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
@@ -30,7 +30,7 @@
 	.type	__clone,@function
 
 __clone:
-	save	%sp,-160,%sp
+	save	%sp, -192, %sp
 
 	/* sanity check arguments */
 	brz,pn	%i0, 99f
@@ -42,10 +42,10 @@ __clone:
 	mov	%i1, %o1
 	mov	%i2, %o0
 	set	__NR_clone, %g1
-	ta	0x11
+	ta	0x6d
 	bcs,pn	%xcc, 99f
 	 nop
-	brnz	%o0, __thread_start
+	brnz,pn	%o0, __thread_start
 	 mov	%o0, %i0
 	ret
 	 restore
@@ -62,7 +62,6 @@ __clone:
 	st	%i0, [%l7+%g2]
 #else
 	sethi	%hi(errno), %g2
-	add	%g2, %g4, %g2
 	set	EINVAL, %i0
 	st	%i0, [%g2+%lo(errno)]
 #endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h b/sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h
index 955714dc4f..ece284ab44 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h
@@ -33,7 +33,7 @@
 	.global " #NAME "
 	.type " #NAME ",@function
 " #NAME ":
-	save	%sp, -128, %sp
+	save	%sp, -192, %sp
 1:	call	11f
 	sethi	%hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
 11:	or	%l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
@@ -73,11 +73,10 @@
 	or	%g2, %lo(_dl_starting_up), %g2
 	brz,pt	%g2, 3f
 	 sethi	%hi(__libc_multiple_libcs), %g3
-	ld	[%g4+%g2], %g1
+	ld	[%g2], %g1
 	mov	%g0, %g2
 	movrz	%g1, 1, %g2
-3:	or	%g3, %lo(__libc_multiple_libcs), %g3
-	st	%g2, [%g3+%g4]
+3:	st	%g2, [%g3 + %lo(__libc_multiple_libcs)]
 	/* If so, argc et al are in %o0-%o2 already.  Otherwise, load them.  */
 	brnz,pn	%g2, " #INIT "
 	 nop
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S b/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
index d63762cb15..963aa6d89d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
@@ -44,5 +44,7 @@ ENTRY(longjmp)
 END(longjmp)
 
 strong_alias(longjmp, __longjmp)
+strong_alias(longjmp, __libc_longjmp)
+strong_alias(longjmp, __libc_siglongjmp)
 weak_alias(longjmp, _longjmp)
 weak_alias(longjmp, siglongjmp)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S b/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S
index 82ff4eae3c..38a6f8f8b8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S
@@ -22,7 +22,7 @@
 ENTRY (__libc_pipe)
         mov	%o0, %o2            /* Save PIPEDES. */
 	LOADSYSCALL(pipe)
-	ta	0x11
+	ta	0x6d
 	bcc,pn	%xcc, 2f
 	 nop
 	SYSCALL_ERROR_HANDLER
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c b/sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c
index 96a6a76945..300ebb2629 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c
@@ -1,4 +1,7 @@
 #define readdir64 __no_readdir64_decl
+#define __readdir64 __no___readdir64_decl
 #include <sysdeps/unix/readdir.c>
+#undef __readdir64
+strong_alias (__readdir, __readdir64)
 #undef readdir64
 weak_alias (__readdir, readdir64)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sys/ucontext.h
index 160e2fc43a..f62b542b2f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sys/ucontext.h
@@ -1,5 +1,5 @@
-#ifndef _UCONTEXT_H
-#define _UCONTEXT_H
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H
 
 #include <signal.h>
 
@@ -64,4 +64,4 @@ struct ucontext {
 };
 typedef struct ucontext ucontext_t;
 
-#endif /* ucontext.h */
+#endif /* sys/ucontext.h */
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
index 30dace5903..5864bfcbc3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
@@ -28,7 +28,7 @@ ENTRY (syscall)
 	mov	%o4,%o3
 	mov	%o5,%o4
 
-	ta	0x11
+	ta	0x6d
 
 	bcc,pt %xcc,1f
 	 nop
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
index fcf556b818..1ec42fa42e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
@@ -6,7 +6,7 @@ pread		-	pread		4	__pread		pread __pread64 pread64
 pwrite		-	pwrite		4	__pwrite	pwrite __pwrite64 pwrite64
 fstatfs		-	fstatfs		2	__fstatfs	fstatfs fstatfs64
 statfs		-	statfs		2	__statfs	statfs statfs64
-getrlimit	-	getrlimit	2	getrlimit	getrlimit64
+getrlimit	-	getrlimit	2	__getrlimit	getrlimit getrlimit64
 setrlimit	-	setrlimit	2	setrlimit	setrlimit64
 ftruncate	-	ftruncate	2	__ftruncate	ftruncate ftruncate64
 truncate	-	truncate	2	truncate	truncate64
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
index 2cc8547c1a..5a9a4e249b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
@@ -46,49 +46,48 @@
 #ifdef PIC
 # ifdef _LIBC_REENTRANT
 #  define SYSCALL_ERROR_HANDLER						\
-	save %sp,-160,%sp;						\
-	call __errno_location;						\
+	save	%sp, -192, %sp;						\
+	call	__errno_location;					\
 	 nop;								\
-	st %i0,[%o0];							\
-	sub %g0,1,%i0;							\
-	jmpl %i7+8, %g0;						\
+	st	%i0,[%o0];						\
+	sub	%g0,1,%i0;						\
+	jmpl	%i7+8, %g0;						\
 	 restore
 # else
 #  define SYSCALL_ERROR_HANDLER						\
 	.global C_SYMBOL_NAME(errno);					\
 	.type C_SYMBOL_NAME(errno),@object;				\
-	mov %o7,%g3;							\
-  101:	call 102f;							\
-	sethi %hi(_GLOBAL_OFFSET_TABLE_-(101b-.)),%g2;			\
-  102:	or %g2,%lo(_GLOBAL_OFFSET_TABLE_-(101b-.)),%g2;			\
-	sethi %hi(errno),%o1;						\
-	add %g2,%o7,%l7;						\
-	or %o1,%lo(errno),%o1;						\
-	mov %g3,%o7;							\
-	ldx [%l7+%o1],%g2;						\
-	st %o0,[%g2];							\
+	mov	%o7, %g3;						\
+  101:	call	102f;							\
+	sethi	%hi(_GLOBAL_OFFSET_TABLE_-(101b-.)), %g2;		\
+  102:	or	%g2,%lo(_GLOBAL_OFFSET_TABLE_-(101b-.)), %g2;		\
+	sethi	%hi(errno), %o1;					\
+	add	%g2, %o7, %l7;						\
+	or	%o1, %lo(errno), %o1;					\
+	mov	%g3,%o7;						\
+	ldx	[%l7+%o1], %g2;						\
+	st	%o0, [%g2];						\
 	retl;								\
-	 sub %g0,1,%i0
+	 sub	%g0, 1, %i0
 # endif
 #else
 # ifdef _LIBC_REENTRANT
 #  define SYSCALL_ERROR_HANDLER						\
-	save %sp,-160,%sp;						\
-	call __errno_location;						\
+	save	%sp, -192, %sp;						\
+	call	__errno_location;					\
 	 nop;								\
-	st %i0,[%o0];							\
-	sub %g0,1,%i0;							\
-	jmpl %i7+8, %g0;						\
+	st	%i0, [%o0];						\
+	sub	%g0, 1, %i0;						\
+	jmpl	%i7+8, %g0;						\
 	 restore
 # else
 #  define SYSCALL_ERROR_HANDLER						\
 	.global C_SYMBOL_NAME(errno);					\
 	.type C_SYMBOL_NAME(errno),@object;				\
-	sethi %hi(errno),%g1;						\
-	or %g1,%lo(errno),%g1;						\
-	st %i0,[%g1+%g4];						\
+	sethi	%hi(errno), %g1;					\
+	st	%i0, [%g1 + %lo(errno)];				\
 	retl;								\
-	 sub %g0,1,%i0
+	 sub	%g0, 1, %i0
 # endif
 #endif
 
@@ -96,8 +95,8 @@
 	.text;								\
 	ENTRY(name);							\
 	LOADSYSCALL(syscall_name);					\
-	ta 0x11;							\
-	bcc,pt %xcc,1f;							\
+	ta	0x6d;							\
+	bcc,pt	%xcc, 1f;						\
 	 nop;								\
 	SYSCALL_ERROR_HANDLER;						\
 1: