This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
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;
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |