public inbox for libc-hacker@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] sysdep-cancel fix for s390*.
@ 2003-01-13  4:59 Martin Schwidefsky
  2003-01-13  4:59 ` Ulrich Drepper
  0 siblings, 1 reply; 2+ messages in thread
From: Martin Schwidefsky @ 2003-01-13  4:59 UTC (permalink / raw)
  To: libc-hacker

Hi,
thanks to Jakub who wrote sysdep-cancel.h for s390* the current
libc head is compiling out of the box and passes make check without
a problem. I checked Jakubs try at s390 assembler and found the
code doesn't setup the backchain which is needed by backtrace.
The rest is minor code improvements.

blue skies,
  Martin.

2003-01-10  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Setup
	backchain in pseudo_cancel. Minor code improvements.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Setup
	backchain in pseudo_cancel. Correct stack frame size.

diff -urN libc/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h libc-s390/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
--- libc/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h	Sun Jan  5 06:06:21 2003
+++ libc-s390/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h	Fri Jan 10 19:43:26 2003
@@ -38,21 +38,22 @@
 	br	%r14;							      \
 L(pseudo_cancel):							      \
 	STM_##args							      \
-	stm	%r13,%r15,52(%r15);					      \
+	stm	%r12,%r15,48(%r15);					      \
+	lr	%r14,%r15;						      \
 	ahi	%r15,-96;						      \
+	st	%r14,0(%r15);						      \
 	basr    %r13,0;							      \
 200301:	l	%r1,200302f-200301b(%r13);				      \
-	bas	%r14,0(%r13,%r1);					      \
+	bas	%r14,0(%r1,%r13);					      \
 	lr	%r0,%r2;						      \
 	LM_##args							      \
 	DO_CALL(syscall_name, args);					      \
-	l	%r3,200303f-200301b(%r13);				      \
-	lr	%r4,%r13;						      \
-	lr	%r13,%r2;						      \
+	l	%r1,200303f-200301b(%r13);				      \
+	lr	%r12,%r2;						      \
 	lr	%r2,%r0;						      \
-	bas	%r14,0(%r4,%r3);					      \
-	lr	%r2,%r13;						      \
-	lm	%r13,%r15,52+96(%r15);					      \
+	bas	%r14,0(%r1,%r13);					      \
+	lr	%r2,%r12;						      \
+	lm	%r12,%r15,48+96(%r15);					      \
 	lhi	%r4,-4095;						      \
 	clr	%r2,%r4;						      \
 	jnl	SYSCALL_ERROR_LABEL;					      \
diff -urN libc/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h libc-s390/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
--- libc/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h	Sun Jan  5 06:06:45 2003
+++ libc-s390/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h	Fri Jan 10 19:42:57 2003
@@ -39,16 +39,18 @@
 L(pseudo_cancel):							      \
 	STM_##args							      \
 	stmg	%r13,%r15,104(%r15);					      \
-	aghi	%r15,-192;						      \
+	lgr	%r14,%r15;						      \
+	aghi	%r15,-160;						      \
+	stg	%r14,0(%r15);						      \
 	brasl	%r14,CENABLE;						      \
-	lr	%r0,%r2;						      \
+	lgr	%r0,%r2;						      \
 	LM_##args							      \
 	DO_CALL(syscall_name, args);					      \
 	lgr	%r13,%r2;						      \
-	lr	%r2,%r0;						      \
+	lgr	%r2,%r0;						      \
 	brasl	%r14,CDISABLE;						      \
 	lgr	%r2,%r13;						      \
-	lmg	%r13,%r15,104+192(%r15);				      \
+	lmg	%r13,%r15,104+160(%r15);				      \
 	lghi	%r4,-4095;						      \
 	clgr	%r2,%r4;						      \
 	jnl	SYSCALL_ERROR_LABEL;					      \
@@ -72,11 +74,11 @@
 #define STM_5		stmg %r2,%r5,16(%r15);
 
 #define LM_0		/* Nothing */
-#define LM_1		lg %r2,16+192(%r15);
-#define LM_2		lmg %r2,%r3,16+192(%r15);
-#define LM_3		lmg %r2,%r4,16+192(%r15);
-#define LM_4		lmg %r2,%r5,16+192(%r15);
-#define LM_5		lmg %r2,%r5,16+192(%r15);
+#define LM_1		lg %r2,16+160(%r15);
+#define LM_2		lmg %r2,%r3,16+160(%r15);
+#define LM_3		lmg %r2,%r4,16+160(%r15);
+#define LM_4		lmg %r2,%r5,16+160(%r15);
+#define LM_5		lmg %r2,%r5,16+160(%r15);
 
 # ifndef __ASSEMBLER__
 extern int __local_multiple_threads attribute_hidden;

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] sysdep-cancel fix for s390*.
  2003-01-13  4:59 [PATCH] sysdep-cancel fix for s390* Martin Schwidefsky
@ 2003-01-13  4:59 ` Ulrich Drepper
  0 siblings, 0 replies; 2+ messages in thread
From: Ulrich Drepper @ 2003-01-13  4:59 UTC (permalink / raw)
  To: Martin Schwidefsky; +Cc: libc-hacker

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Martin Schwidefsky wrote:
> Hi,
> thanks to Jakub who wrote sysdep-cancel.h for s390* the current
> libc head is compiling out of the box and passes make check without
> a problem. I checked Jakubs try at s390 assembler and found the
> code doesn't setup the backchain which is needed by backtrace.
> The rest is minor code improvements.

Thanks, the patch is in.

- -- 
- --------------.                        ,-.            444 Castro Street
Ulrich Drepper \    ,-----------------'   \ Mountain View, CA 94041 USA
Red Hat         `--' drepper at redhat.com `---------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+IfQ42ijCOnn/RHQRAuaOAJ404BOPXuOQ/lBvkl8vOKdqMEvpKQCeP3Wx
khEYZT9H3PjVW7tDVv9nSHE=
=9SsS
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-01-12 23:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-13  4:59 [PATCH] sysdep-cancel fix for s390* Martin Schwidefsky
2003-01-13  4:59 ` Ulrich Drepper

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).