mirror of git://sourceware.org/git/glibc.git
				
				
				
			Update.
2003-01-13 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: Avoid unterminated string literals. * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: Likewise. 2003-01-13 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Code reordering. Move CENABLE and CDISABLE literals from PSEUDO_END to PSEUDO. (PSEUDO_END): Remove. (SINGLE_THREAD_P): Save an instruction. * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add missing parameter to SINGLE_THREAD_P call. * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Code reordering.
This commit is contained in:
		
							parent
							
								
									0c5d3ed9ed
								
							
						
					
					
						commit
						db0a052cec
					
				|  | @ -1,3 +1,21 @@ | |||
| 2003-01-13  Martin Schwidefsky  <schwidefsky@de.ibm.com> | ||||
| 
 | ||||
| 	* sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: Avoid | ||||
| 	unterminated string literals. | ||||
| 	* sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: Likewise. | ||||
| 
 | ||||
| 2003-01-13  Martin Schwidefsky  <schwidefsky@de.ibm.com> | ||||
| 
 | ||||
| 	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h | ||||
| 	(PSEUDO): Code reordering.  Move CENABLE and CDISABLE literals from | ||||
| 	PSEUDO_END to PSEUDO. | ||||
| 	(PSEUDO_END): Remove. | ||||
| 	(SINGLE_THREAD_P): Save an instruction. | ||||
| 	* sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add missing | ||||
| 	parameter to SINGLE_THREAD_P call. | ||||
| 	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): | ||||
| 	Code reordering. | ||||
| 
 | ||||
| 2003-01-10  Andreas Schwab  <schwab@suse.de> | ||||
| 
 | ||||
| 	* sysdeps/unix/sysv/linux/m68k/vfork.S: New file. | ||||
|  |  | |||
|  | @ -36,119 +36,119 @@ | |||
|    * crtn.s puts the corresponding function epilogues | ||||
|    in the .init and .fini sections. */ | ||||
| 
 | ||||
| __asm__ (" | ||||
| 
 | ||||
| #include \"defs.h\" | ||||
| 
 | ||||
| /*@HEADER_ENDS*/ | ||||
| 
 | ||||
| /*@TESTS_BEGIN*/ | ||||
| 
 | ||||
| /*@TESTS_END*/ | ||||
| 
 | ||||
| /*@_init_PROLOG_BEGINS*/ | ||||
| 
 | ||||
| 	.section .init | ||||
| #NO_APP | ||||
| 	.align 4 | ||||
| .globl _init | ||||
| 	.type	 _init,@function | ||||
| _init: | ||||
| #	leaf function           0 | ||||
| #	automatics              0 | ||||
| #	outgoing args           0 | ||||
| #	need frame pointer      0 | ||||
| #	call alloca             0 | ||||
| #	has varargs             0 | ||||
| #	incoming args (stack)   0 | ||||
| #	function length         36 | ||||
| 	STM	6,15,24(15) | ||||
| 	BRAS	13,.LTN1_0 | ||||
| .LT1_0: | ||||
| .LC13: | ||||
| 	.long	__pthread_initialize_minimal@PLT-.LT1_0 | ||||
| .LC14: | ||||
| 	.long	__gmon_start__@GOT | ||||
| .LC15: | ||||
| 	.long	_GLOBAL_OFFSET_TABLE_-.LT1_0 | ||||
| .LTN1_0: | ||||
| 	LR	1,15 | ||||
| 	AHI	15,-96 | ||||
| 	ST	1,0(15) | ||||
| 	L	12,.LC15-.LT1_0(13) | ||||
| 	AR	12,13 | ||||
| 	L     1,.LC13-.LT1_0(13) | ||||
| 	LA    1,0(1,13) | ||||
| 	BASR  14,1 | ||||
| 	L     1,.LC14-.LT1_0(13) | ||||
| 	L     1,0(1,12) | ||||
| 	LTR   1,1 | ||||
| 	JE    .L22 | ||||
| 	BASR  14,1 | ||||
| .L22: | ||||
| #APP | ||||
| 	.align 4,0x07 | ||||
| 	END_INIT | ||||
| 
 | ||||
| /*@_init_PROLOG_ENDS*/ | ||||
| 
 | ||||
| /*@_init_EPILOG_BEGINS*/ | ||||
| 	.align 4 | ||||
| 	.section .init | ||||
| #NO_APP | ||||
| 	.align 4 | ||||
| 	L	4,152(15) | ||||
| 	LM	6,15,120(15) | ||||
| 	BR	4 | ||||
| #APP | ||||
| 	END_INIT | ||||
| 
 | ||||
| /*@_init_EPILOG_ENDS*/ | ||||
| 
 | ||||
| /*@_fini_PROLOG_BEGINS*/ | ||||
| 	.section .fini | ||||
| #NO_APP | ||||
| 	.align 4 | ||||
| .globl _fini | ||||
| 	.type	 _fini,@function | ||||
| _fini: | ||||
| #	leaf function           0 | ||||
| #	automatics              0 | ||||
| #	outgoing args           0 | ||||
| #	need frame pointer      0 | ||||
| #	call alloca             0 | ||||
| #	has varargs             0 | ||||
| #	incoming args (stack)   0 | ||||
| #	function length         30 | ||||
| 	STM	6,15,24(15) | ||||
| 	BRAS	13,.LTN2_0 | ||||
| .LT2_0: | ||||
| .LC17: | ||||
| 	.long	_GLOBAL_OFFSET_TABLE_-.LT2_0 | ||||
| .LTN2_0: | ||||
| 	LR	1,15 | ||||
| 	AHI	15,-96 | ||||
| 	ST	1,0(15) | ||||
| 	L	12,.LC17-.LT2_0(13) | ||||
| 	AR	12,13 | ||||
| #APP | ||||
| 	.align 4,0x07 | ||||
| 	END_FINI | ||||
| 
 | ||||
| /*@_fini_PROLOG_ENDS*/ | ||||
| 
 | ||||
| /*@_fini_EPILOG_BEGINS*/ | ||||
| 	.align 4 | ||||
| 	.section .fini | ||||
| #NO_APP | ||||
| 	.align 4 | ||||
| 	L	4,152(15) | ||||
| 	LM	6,15,120(15) | ||||
| 	BR	4 | ||||
| #APP | ||||
| 	END_FINI | ||||
| 
 | ||||
| /*@_fini_EPILOG_ENDS*/ | ||||
| 
 | ||||
| /*@TRAILER_BEGINS*/ | ||||
| __asm__ ("\
 | ||||
| \n\ | ||||
| #include \"defs.h\"\n\ | ||||
| \n\ | ||||
| /*@HEADER_ENDS*/\n\ | ||||
| \n\ | ||||
| /*@TESTS_BEGIN*/\n\ | ||||
| \n\ | ||||
| /*@TESTS_END*/\n\ | ||||
| \n\ | ||||
| /*@_init_PROLOG_BEGINS*/\n\ | ||||
| \n\ | ||||
| 	.section .init\n\ | ||||
| #NO_APP\n\ | ||||
| 	.align 4\n\ | ||||
| .globl _init\n\ | ||||
| 	.type	 _init,@function\n\ | ||||
| _init:\n\ | ||||
| #	leaf function           0\n\ | ||||
| #	automatics              0\n\ | ||||
| #	outgoing args           0\n\ | ||||
| #	need frame pointer      0\n\ | ||||
| #	call alloca             0\n\ | ||||
| #	has varargs             0\n\ | ||||
| #	incoming args (stack)   0\n\ | ||||
| #	function length         36\n\ | ||||
| 	STM	6,15,24(15)\n\ | ||||
| 	BRAS	13,.LTN1_0\n\ | ||||
| .LT1_0:\n\ | ||||
| .LC13:\n\ | ||||
| 	.long	__pthread_initialize_minimal@PLT-.LT1_0\n\ | ||||
| .LC14:\n\ | ||||
| 	.long	__gmon_start__@GOT\n\ | ||||
| .LC15:\n\ | ||||
| 	.long	_GLOBAL_OFFSET_TABLE_-.LT1_0\n\ | ||||
| .LTN1_0:\n\ | ||||
| 	LR	1,15\n\ | ||||
| 	AHI	15,-96\n\ | ||||
| 	ST	1,0(15)\n\ | ||||
| 	L	12,.LC15-.LT1_0(13)\n\ | ||||
| 	AR	12,13\n\ | ||||
| 	L     1,.LC13-.LT1_0(13)\n\ | ||||
| 	LA    1,0(1,13)\n\ | ||||
| 	BASR  14,1\n\ | ||||
| 	L     1,.LC14-.LT1_0(13)\n\ | ||||
| 	L     1,0(1,12)\n\ | ||||
| 	LTR   1,1\n\ | ||||
| 	JE    .L22\n\ | ||||
| 	BASR  14,1\n\ | ||||
| .L22:\n\ | ||||
| #APP\n\ | ||||
| 	.align 4,0x07\n\ | ||||
| 	END_INIT\n\ | ||||
| \n\ | ||||
| /*@_init_PROLOG_ENDS*/\n\ | ||||
| \n\ | ||||
| /*@_init_EPILOG_BEGINS*/\n\ | ||||
| 	.align 4\n\ | ||||
| 	.section .init\n\ | ||||
| #NO_APP\n\ | ||||
| 	.align 4\n\ | ||||
| 	L	4,152(15)\n\ | ||||
| 	LM	6,15,120(15)\n\ | ||||
| 	BR	4\n\ | ||||
| #APP\n\ | ||||
| 	END_INIT\n\ | ||||
| \n\ | ||||
| /*@_init_EPILOG_ENDS*/\n\ | ||||
| \n\ | ||||
| /*@_fini_PROLOG_BEGINS*/\n\ | ||||
| 	.section .fini\n\ | ||||
| #NO_APP\n\ | ||||
| 	.align 4\n\ | ||||
| .globl _fini\n\ | ||||
| 	.type	 _fini,@function\n\ | ||||
| _fini:\n\ | ||||
| #	leaf function           0\n\ | ||||
| #	automatics              0\n\ | ||||
| #	outgoing args           0\n\ | ||||
| #	need frame pointer      0\n\ | ||||
| #	call alloca             0\n\ | ||||
| #	has varargs             0\n\ | ||||
| #	incoming args (stack)   0\n\ | ||||
| #	function length         30\n\ | ||||
| 	STM	6,15,24(15)\n\ | ||||
| 	BRAS	13,.LTN2_0\n\ | ||||
| .LT2_0:\n\ | ||||
| .LC17:\n\ | ||||
| 	.long	_GLOBAL_OFFSET_TABLE_-.LT2_0\n\ | ||||
| .LTN2_0:\n\ | ||||
| 	LR	1,15\n\ | ||||
| 	AHI	15,-96\n\ | ||||
| 	ST	1,0(15)\n\ | ||||
| 	L	12,.LC17-.LT2_0(13)\n\ | ||||
| 	AR	12,13\n\ | ||||
| #APP\n\ | ||||
| 	.align 4,0x07\n\ | ||||
| 	END_FINI\n\ | ||||
| \n\ | ||||
| /*@_fini_PROLOG_ENDS*/\n\ | ||||
| \n\ | ||||
| /*@_fini_EPILOG_BEGINS*/\n\ | ||||
| 	.align 4\n\ | ||||
| 	.section .fini\n\ | ||||
| #NO_APP\n\ | ||||
| 	.align 4\n\ | ||||
| 	L	4,152(15)\n\ | ||||
| 	LM	6,15,120(15)\n\ | ||||
| 	BR	4\n\ | ||||
| #APP\n\ | ||||
| 	END_FINI\n\ | ||||
| \n\ | ||||
| /*@_fini_EPILOG_ENDS*/\n\ | ||||
| \n\ | ||||
| /*@TRAILER_BEGINS*/\ | ||||
| "); | ||||
|  |  | |||
|  | @ -28,14 +28,6 @@ | |||
| # undef PSEUDO | ||||
| # define PSEUDO(name, syscall_name, args)				      \ | ||||
| 	.text;								      \ | ||||
| ENTRY(name)								      \ | ||||
| 	SINGLE_THREAD_P(%r1)						      \ | ||||
| 	jne	L(pseudo_cancel);					      \ | ||||
| 	DO_CALL(syscall_name, args);					      \ | ||||
| 	lhi	%r4,-4095;						      \ | ||||
| 	clr	%r2,%r4;						      \ | ||||
| 	jnl	SYSCALL_ERROR_LABEL;					      \ | ||||
| 	br	%r14;							      \ | ||||
| L(pseudo_cancel):							      \ | ||||
| 	STM_##args							      \ | ||||
| 	stm	%r12,%r15,48(%r15);					      \ | ||||
|  | @ -43,29 +35,30 @@ L(pseudo_cancel):							      \ | |||
| 	ahi	%r15,-96;						      \ | ||||
| 	st	%r14,0(%r15);						      \ | ||||
| 	basr    %r13,0;							      \ | ||||
| 200301:	l	%r1,200302f-200301b(%r13);				      \ | ||||
| 0:	l	%r1,1f-0b(%r13);					      \ | ||||
| 	bas	%r14,0(%r1,%r13);					      \ | ||||
| 	lr	%r0,%r2;						      \ | ||||
| 	LM_##args							      \ | ||||
| 	DO_CALL(syscall_name, args);					      \ | ||||
| 	l	%r1,200303f-200301b(%r13);				      \ | ||||
| 	l	%r1,2f-0b(%r13);					      \ | ||||
| 	lr	%r12,%r2;						      \ | ||||
| 	lr	%r2,%r0;						      \ | ||||
| 	bas	%r14,0(%r1,%r13);					      \ | ||||
| 	lr	%r2,%r12;						      \ | ||||
| 	lm	%r12,%r15,48+96(%r15);					      \ | ||||
| 	j	L(pseudo_check);					      \ | ||||
| 1:	.long	CENABLE-0b;						      \ | ||||
| 2:	.long	CDISABLE-0b;						      \ | ||||
| ENTRY(name)								      \ | ||||
| 	SINGLE_THREAD_P(%r1)						      \ | ||||
| 	jne	L(pseudo_cancel);					      \ | ||||
| 	DO_CALL(syscall_name, args);					      \ | ||||
| L(pseudo_check):							      \ | ||||
| 	lhi	%r4,-4095;						      \ | ||||
| 	clr	%r2,%r4;						      \ | ||||
| 	jnl	SYSCALL_ERROR_LABEL;					      \ | ||||
| L(pseudo_end): | ||||
| 
 | ||||
| #undef PSEUDO_END | ||||
| #define PSEUDO_END(name)						      \ | ||||
|   SYSCALL_ERROR_HANDLER;						      \ | ||||
| 200302:	.long	CENABLE-200301b;					      \ | ||||
| 200303:	.long	CDISABLE-200301b;					      \ | ||||
|     END (name) | ||||
| 
 | ||||
| # ifdef IS_IN_libpthread | ||||
| #  define CENABLE	__pthread_enable_asynccancel | ||||
| #  define CDISABLE	__pthread_disable_asynccancel | ||||
|  | @ -95,8 +88,7 @@ L(pseudo_end): | |||
| # else | ||||
| #  define SINGLE_THREAD_P(reg) \ | ||||
| 	ear	reg,%a0;						      \ | ||||
| 	l	reg,MULTIPLE_THREADS_OFFSET(reg);			      \ | ||||
| 	ltr	reg,reg; | ||||
| 	icm	reg,15,MULTIPLE_THREADS_OFFSET(reg); | ||||
| # endif | ||||
| 
 | ||||
| #elif !defined __ASSEMBLER__ | ||||
|  |  | |||
|  | @ -27,7 +27,7 @@ | |||
|    and the process ID of the new process to the old process.  */ | ||||
| 
 | ||||
| ENTRY (__vfork) | ||||
| 	SINGLE_THREAD_P | ||||
| 	SINGLE_THREAD_P(%r1) | ||||
| 	jne	0f | ||||
| 
 | ||||
| 	/* Do vfork system call.  */ | ||||
|  |  | |||
|  | @ -37,101 +37,101 @@ | |||
|    * crtn.s puts the corresponding function epilogues | ||||
|    in the .init and .fini sections. */ | ||||
| 
 | ||||
| __asm__ (" | ||||
| 
 | ||||
| #include \"defs.h\" | ||||
| 
 | ||||
| /*@HEADER_ENDS*/ | ||||
| 
 | ||||
| /*@TESTS_BEGIN*/ | ||||
| 
 | ||||
| /*@TESTS_END*/ | ||||
| 
 | ||||
| /*@_init_PROLOG_BEGINS*/ | ||||
| 
 | ||||
| 	.section .init | ||||
| #NO_APP | ||||
| 	.align 4 | ||||
| .globl _init | ||||
| 	.type	 _init,@function | ||||
| _init: | ||||
| #	leaf function           0 | ||||
| #	automatics              0 | ||||
| #	outgoing args           0 | ||||
| #	need frame pointer      0 | ||||
| #	call alloca             0 | ||||
| #	has varargs             0 | ||||
| #	incoming args (stack)   0 | ||||
| #	function length         36 | ||||
| 	STMG	6,15,48(15) | ||||
| 	LGR	1,15 | ||||
| 	AGHI	15,-160 | ||||
| 	STG	1,0(15) | ||||
| 	LARL	12,_GLOBAL_OFFSET_TABLE_ | ||||
| 	BRASL	14,__pthread_initialize_minimal@PLT | ||||
| 	LARL	1,__gmon_start__@GOTENT | ||||
| 	LG	1,0(1) | ||||
| 	LTGR	1,1 | ||||
| 	JE	.L22 | ||||
| 	BASR	14,1 | ||||
| .L22: | ||||
| #APP | ||||
| 	.align 4,0x07 | ||||
| 	END_INIT | ||||
| 
 | ||||
| /*@_init_PROLOG_ENDS*/ | ||||
| 
 | ||||
| /*@_init_EPILOG_BEGINS*/ | ||||
| 	.align 4 | ||||
| 	.section .init | ||||
| #NO_APP | ||||
| 	.align 4 | ||||
| 	LG	4,272(15) | ||||
| 	LMG	6,15,208(15) | ||||
| 	BR	4 | ||||
| #APP | ||||
| 	END_INIT | ||||
| 
 | ||||
| /*@_init_EPILOG_ENDS*/ | ||||
| 
 | ||||
| /*@_fini_PROLOG_BEGINS*/ | ||||
| 	.section .fini | ||||
| #NO_APP | ||||
| 	.align 4 | ||||
| .globl _fini | ||||
| 	.type	 _fini,@function | ||||
| _fini: | ||||
| #	leaf function           0 | ||||
| #	automatics              0 | ||||
| #	outgoing args           0 | ||||
| #	need frame pointer      0 | ||||
| #	call alloca             0 | ||||
| #	has varargs             0 | ||||
| #	incoming args (stack)   0 | ||||
| #	function length         30 | ||||
| 	STMG	6,15,48(15) | ||||
| 	LGR	1,15 | ||||
| 	AGHI	15,-160 | ||||
| 	STG	1,0(15) | ||||
| 	LARL	12,_GLOBAL_OFFSET_TABLE_ | ||||
| #APP | ||||
| 	.align 4,0x07 | ||||
| 	END_FINI | ||||
| 
 | ||||
| /*@_fini_PROLOG_ENDS*/ | ||||
| 
 | ||||
| /*@_fini_EPILOG_BEGINS*/ | ||||
| 	.align 4 | ||||
| 	.section .fini | ||||
| #NO_APP | ||||
| 	.align 4 | ||||
| 	LG	4,272(15) | ||||
| 	LMG	6,15,208(15) | ||||
| 	BR	4 | ||||
| #APP | ||||
| 	END_FINI | ||||
| 
 | ||||
| /*@_fini_EPILOG_ENDS*/ | ||||
| 
 | ||||
| /*@TRAILER_BEGINS*/ | ||||
| "); | ||||
| __asm__ ("\
 | ||||
| \n\ | ||||
| #include \"defs.h\"\n\ | ||||
| \n\ | ||||
| /*@HEADER_ENDS*/\n\ | ||||
| \n\ | ||||
| /*@TESTS_BEGIN*/\n\ | ||||
| \n\ | ||||
| /*@TESTS_END*/\n\ | ||||
| \n\ | ||||
| /*@_init_PROLOG_BEGINS*/\n\ | ||||
| \n\ | ||||
| 	.section .init\n\ | ||||
| #NO_APP\n\ | ||||
| 	.align 4\n\ | ||||
| .globl _init\n\ | ||||
| 	.type	 _init,@function\n\ | ||||
| _init:\n\ | ||||
| #	leaf function           0\n\ | ||||
| #	automatics              0\n\ | ||||
| #	outgoing args           0\n\ | ||||
| #	need frame pointer      0\n\ | ||||
| #	call alloca             0\n\ | ||||
| #	has varargs             0\n\ | ||||
| #	incoming args (stack)   0\n\ | ||||
| #	function length         36\n\ | ||||
| 	STMG	6,15,48(15)\n\ | ||||
| 	LGR	1,15\n\ | ||||
| 	AGHI	15,-160\n\ | ||||
| 	STG	1,0(15)\n\ | ||||
| 	LARL	12,_GLOBAL_OFFSET_TABLE_\n\ | ||||
| 	BRASL	14,__pthread_initialize_minimal@PLT\n\ | ||||
| 	LARL	1,__gmon_start__@GOTENT\n\ | ||||
| 	LG	1,0(1)\n\ | ||||
| 	LTGR	1,1\n\ | ||||
| 	JE	.L22\n\ | ||||
| 	BASR	14,1\n\ | ||||
| .L22:\n\ | ||||
| #APP\n\ | ||||
| 	.align 4,0x07\n\ | ||||
| 	END_INIT\n\ | ||||
| \n\ | ||||
| /*@_init_PROLOG_ENDS*/\n\ | ||||
| \n\ | ||||
| /*@_init_EPILOG_BEGINS*/\n\ | ||||
| 	.align 4\n\ | ||||
| 	.section .init\n\ | ||||
| #NO_APP\n\ | ||||
| 	.align 4\n\ | ||||
| 	LG	4,272(15)\n\ | ||||
| 	LMG	6,15,208(15)\n\ | ||||
| 	BR	4\n\ | ||||
| #APP\n\ | ||||
| 	END_INIT\n\ | ||||
| \n\ | ||||
| /*@_init_EPILOG_ENDS*/\n\ | ||||
| \n\ | ||||
| /*@_fini_PROLOG_BEGINS*/\n\ | ||||
| 	.section .fini\n\ | ||||
| #NO_APP\n\ | ||||
| 	.align 4\n\ | ||||
| .globl _fini\n\ | ||||
| 	.type	 _fini,@function\n\ | ||||
| _fini:\n\ | ||||
| #	leaf function           0\n\ | ||||
| #	automatics              0\n\ | ||||
| #	outgoing args           0\n\ | ||||
| #	need frame pointer      0\n\ | ||||
| #	call alloca             0\n\ | ||||
| #	has varargs             0\n\ | ||||
| #	incoming args (stack)   0\n\ | ||||
| #	function length         30\n\ | ||||
| 	STMG	6,15,48(15)\n\ | ||||
| 	LGR	1,15\n\ | ||||
| 	AGHI	15,-160\n\ | ||||
| 	STG	1,0(15)\n\ | ||||
| 	LARL	12,_GLOBAL_OFFSET_TABLE_\n\ | ||||
| #APP\n\ | ||||
| 	.align 4,0x07\n\ | ||||
| 	END_FINI\n\ | ||||
| \n\ | ||||
| /*@_fini_PROLOG_ENDS*/\n\ | ||||
| \n\ | ||||
| /*@_fini_EPILOG_BEGINS*/\n\ | ||||
| 	.align 4\n\ | ||||
| 	.section .fini\n\ | ||||
| #NO_APP\n\ | ||||
| 	.align 4\n\ | ||||
| 	LG	4,272(15)\n\ | ||||
| 	LMG	6,15,208(15)\n\ | ||||
| 	BR	4\n\ | ||||
| #APP\n\ | ||||
| 	END_FINI\n\ | ||||
| \n\ | ||||
| /*@_fini_EPILOG_ENDS*/\n\ | ||||
| \n\ | ||||
| /*@TRAILER_BEGINS*/\n\ | ||||
| 	"); | ||||
|  |  | |||
|  | @ -28,14 +28,6 @@ | |||
| # undef PSEUDO | ||||
| # define PSEUDO(name, syscall_name, args)				      \ | ||||
| 	.text;								      \ | ||||
| ENTRY(name)								      \ | ||||
| 	SINGLE_THREAD_P							      \ | ||||
| 	jne	L(pseudo_cancel);					      \ | ||||
| 	DO_CALL(syscall_name, args);					      \ | ||||
| 	lghi	%r4,-4095;						      \ | ||||
| 	clgr	%r2,%r4;						      \ | ||||
| 	jnl	SYSCALL_ERROR_LABEL;					      \ | ||||
| 	br	%r14;							      \ | ||||
| L(pseudo_cancel):							      \ | ||||
| 	STM_##args							      \ | ||||
| 	stmg	%r13,%r15,104(%r15);					      \ | ||||
|  | @ -51,6 +43,12 @@ L(pseudo_cancel):							      \ | |||
| 	brasl	%r14,CDISABLE;						      \ | ||||
| 	lgr	%r2,%r13;						      \ | ||||
| 	lmg	%r13,%r15,104+160(%r15);				      \ | ||||
| 	j	L(pseudo_check);					      \ | ||||
| ENTRY(name)								      \ | ||||
| 	SINGLE_THREAD_P							      \ | ||||
| 	jne	L(pseudo_cancel);					      \ | ||||
| 	DO_CALL(syscall_name, args);					      \ | ||||
| L(pseudo_check):							      \ | ||||
| 	lghi	%r4,-4095;						      \ | ||||
| 	clgr	%r2,%r4;						      \ | ||||
| 	jnl	SYSCALL_ERROR_LABEL;					      \ | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| /* Copyright (C) 2002 Free Software Foundation, Inc.
 | ||||
| /* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
 | ||||
|    This file is part of the GNU C Library. | ||||
|    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. | ||||
| 
 | ||||
|  | @ -75,4 +75,4 @@ __pthread_mutex_lock (mutex) | |||
|   return 0; | ||||
| } | ||||
| strong_alias (__pthread_mutex_lock, pthread_mutex_lock) | ||||
| INTDEF(__pthread_mutex_lock) | ||||
| strong_alias (__pthread_mutex_lock, __pthread_mutex_lock_internal) | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| /* Copyright (C) 2002 Free Software Foundation, Inc.
 | ||||
| /* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
 | ||||
|    This file is part of the GNU C Library. | ||||
|    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. | ||||
| 
 | ||||
|  | @ -63,4 +63,4 @@ __pthread_mutex_unlock (mutex) | |||
|   return 0; | ||||
| } | ||||
| strong_alias (__pthread_mutex_unlock, pthread_mutex_unlock) | ||||
| INTDEF(__pthread_mutex_unlock) | ||||
| strong_alias (__pthread_mutex_unlock, __pthread_mutex_unlock_internal) | ||||
|  |  | |||
|  | @ -82,13 +82,16 @@ | |||
| #define mcount		_mcount | ||||
| #endif | ||||
| 
 | ||||
| #define	PSEUDO(name, syscall_name, args)				      \ | ||||
| lose: SYSCALL_PIC_SETUP							      \ | ||||
|   JUMPTARGET(syscall_error)						      \ | ||||
|   .globl syscall_error;							      \ | ||||
|   ENTRY (name)								      \ | ||||
|   DO_CALL (syscall_name, args);						      \ | ||||
|   jm lose | ||||
| #define	PSEUDO(name, syscall_name, args) \ | ||||
| lose: SYSCALL_PIC_SETUP				\ | ||||
|     basr %r1,0;					\ | ||||
| 0:  al %r1,1f-0b(%r1);				\ | ||||
|     br %r1;					\ | ||||
| 1:  .long JUMPTARGET(syscall_error) - 0b;	\ | ||||
|     .globl syscall_error;			\ | ||||
|     ENTRY (name)				\ | ||||
|     DO_CALL (syscall_name, args);		\ | ||||
|     jm lose | ||||
| 
 | ||||
| #undef	PSEUDO_END | ||||
| #define	PSEUDO_END(name)						      \ | ||||
|  | @ -96,21 +99,13 @@ lose: SYSCALL_PIC_SETUP							      \ | |||
| 
 | ||||
| #undef JUMPTARGET | ||||
| #ifdef PIC | ||||
| #define JUMPTARGET(name)  \ | ||||
|     basr %r1,0            \ | ||||
| 0:  al   %r1,1f-0b(0,%r1) \ | ||||
|     br   %r1              \ | ||||
| 1:  .long name##@PLT - 0b | ||||
| #define JUMPTARGET(name)	name##@PLT | ||||
| #define SYSCALL_PIC_SETUP             \ | ||||
|     bras  %r12,1f                     \ | ||||
| 0:  .long _GLOBAL_OFFSET_TABLE_-0b    \ | ||||
| 1:  al    %r12,0(%r12) | ||||
| #else | ||||
| #define JUMPTARGET(name)   \ | ||||
|     basr  %r1,0            \ | ||||
| 0:  al    %r1,1f-0b(0,%r1) \ | ||||
|     br    %r1              \ | ||||
| 1:  .long name - 0b | ||||
| #define JUMPTARGET(name)   	name | ||||
| #define SYSCALL_PIC_SETUP	/* Nothing.  */ | ||||
| #endif | ||||
| 
 | ||||
|  |  | |||
|  | @ -28,100 +28,100 @@ | |||
|    * crtn.s puts the corresponding function epilogues | ||||
|    in the .init and .fini sections. */ | ||||
| 
 | ||||
| __asm__ (" | ||||
| 
 | ||||
| #include \"defs.h\" | ||||
| 
 | ||||
| /*@HEADER_ENDS*/ | ||||
| 
 | ||||
| /*@TESTS_BEGIN*/ | ||||
| 
 | ||||
| /*@TESTS_END*/ | ||||
| 
 | ||||
| /*@_init_PROLOG_BEGINS*/ | ||||
| 
 | ||||
| 	.section .init | ||||
| #NO_APP | ||||
| 	.align 4 | ||||
| .globl _init | ||||
| 	.type	 _init,@function | ||||
| _init: | ||||
| #	leaf function           0 | ||||
| #	automatics              0 | ||||
| #	outgoing args           0 | ||||
| #	need frame pointer      0 | ||||
| #	call alloca             0 | ||||
| #	has varargs             0 | ||||
| #	incoming args (stack)   0 | ||||
| #	function length         36 | ||||
| 	STMG	6,15,48(15) | ||||
| 	LGR	1,15 | ||||
| 	AGHI	15,-160 | ||||
| 	STG	1,0(15) | ||||
|         LARL    12,_GLOBAL_OFFSET_TABLE_ | ||||
| 	LARL    1,__gmon_start__@GOTENT | ||||
| 	LG      1,0(1) | ||||
| 	LTGR    1,1 | ||||
| 	JE      .L22 | ||||
| 	BASR    14,1 | ||||
| .L22: | ||||
| #APP | ||||
| 	.align 4,0x07 | ||||
| 	END_INIT | ||||
| 
 | ||||
| /*@_init_PROLOG_ENDS*/ | ||||
| 
 | ||||
| /*@_init_EPILOG_BEGINS*/ | ||||
| 	.align 4 | ||||
| 	.section .init | ||||
| #NO_APP | ||||
| 	.align 4 | ||||
| 	LG	4,272(15) | ||||
| 	LMG	6,15,208(15) | ||||
| 	BR	4 | ||||
| #APP | ||||
| 	END_INIT | ||||
| 
 | ||||
| /*@_init_EPILOG_ENDS*/ | ||||
| 
 | ||||
| /*@_fini_PROLOG_BEGINS*/ | ||||
| 	.section .fini | ||||
| #NO_APP | ||||
| 	.align 4 | ||||
| .globl _fini | ||||
| 	.type	 _fini,@function | ||||
| _fini: | ||||
| #	leaf function           0 | ||||
| #	automatics              0 | ||||
| #	outgoing args           0 | ||||
| #	need frame pointer      0 | ||||
| #	call alloca             0 | ||||
| #	has varargs             0 | ||||
| #	incoming args (stack)   0 | ||||
| #	function length         30 | ||||
| 	STMG	6,15,48(15) | ||||
| 	LGR	1,15 | ||||
| 	AGHI	15,-160 | ||||
| 	STG	1,0(15) | ||||
| 	LARL	12,_GLOBAL_OFFSET_TABLE_ | ||||
| #APP | ||||
| 	.align 4,0x07 | ||||
| 	END_FINI | ||||
| 
 | ||||
| /*@_fini_PROLOG_ENDS*/ | ||||
| 
 | ||||
| /*@_fini_EPILOG_BEGINS*/ | ||||
| 	.align 4 | ||||
| 	.section .fini | ||||
| #NO_APP | ||||
| 	.align 4 | ||||
| 	LG	4,272(15) | ||||
| 	LMG	6,15,208(15) | ||||
| 	BR	4 | ||||
| #APP | ||||
| 	END_FINI | ||||
| 
 | ||||
| /*@_fini_EPILOG_ENDS*/ | ||||
| 
 | ||||
| /*@TRAILER_BEGINS*/ | ||||
| __asm__ ("\
 | ||||
| \n\ | ||||
| #include \"defs.h\"\n\ | ||||
| \n\ | ||||
| /*@HEADER_ENDS*/\n\ | ||||
| \n\ | ||||
| /*@TESTS_BEGIN*/\n\ | ||||
| \n\ | ||||
| /*@TESTS_END*/\n\ | ||||
| \n\ | ||||
| /*@_init_PROLOG_BEGINS*/\n\ | ||||
| \n\ | ||||
| 	.section .init\n\ | ||||
| #NO_APP\n\ | ||||
| 	.align 4\n\ | ||||
| .globl _init\n\ | ||||
| 	.type	 _init,@function\n\ | ||||
| _init:\n\ | ||||
| #	leaf function           0\n\ | ||||
| #	automatics              0\n\ | ||||
| #	outgoing args           0\n\ | ||||
| #	need frame pointer      0\n\ | ||||
| #	call alloca             0\n\ | ||||
| #	has varargs             0\n\ | ||||
| #	incoming args (stack)   0\n\ | ||||
| #	function length         36\n\ | ||||
| 	STMG	6,15,48(15)\n\ | ||||
| 	LGR	1,15\n\ | ||||
| 	AGHI	15,-160\n\ | ||||
| 	STG	1,0(15)\n\ | ||||
|         LARL    12,_GLOBAL_OFFSET_TABLE_\n\ | ||||
| 	LARL    1,__gmon_start__@GOTENT\n\ | ||||
| 	LG      1,0(1)\n\ | ||||
| 	LTGR    1,1\n\ | ||||
| 	JE      .L22\n\ | ||||
| 	BASR    14,1\n\ | ||||
| .L22:\n\ | ||||
| #APP\n\ | ||||
| 	.align 4,0x07\n\ | ||||
| 	END_INIT\n\ | ||||
| \n\ | ||||
| /*@_init_PROLOG_ENDS*/\n\ | ||||
| \n\ | ||||
| /*@_init_EPILOG_BEGINS*/\n\ | ||||
| 	.align 4\n\ | ||||
| 	.section .init\n\ | ||||
| #NO_APP\n\ | ||||
| 	.align 4\n\ | ||||
| 	LG	4,272(15)\n\ | ||||
| 	LMG	6,15,208(15)\n\ | ||||
| 	BR	4\n\ | ||||
| #APP\n\ | ||||
| 	END_INIT\n\ | ||||
| \n\ | ||||
| /*@_init_EPILOG_ENDS*/\n\ | ||||
| \n\ | ||||
| /*@_fini_PROLOG_BEGINS*/\n\ | ||||
| 	.section .fini\n\ | ||||
| #NO_APP\n\ | ||||
| 	.align 4\n\ | ||||
| .globl _fini\n\ | ||||
| 	.type	 _fini,@function\n\ | ||||
| _fini:\n\ | ||||
| #	leaf function           0\n\ | ||||
| #	automatics              0\n\ | ||||
| #	outgoing args           0\n\ | ||||
| #	need frame pointer      0\n\ | ||||
| #	call alloca             0\n\ | ||||
| #	has varargs             0\n\ | ||||
| #	incoming args (stack)   0\n\ | ||||
| #	function length         30\n\ | ||||
| 	STMG	6,15,48(15)\n\ | ||||
| 	LGR	1,15\n\ | ||||
| 	AGHI	15,-160\n\ | ||||
| 	STG	1,0(15)\n\ | ||||
| 	LARL	12,_GLOBAL_OFFSET_TABLE_\n\ | ||||
| #APP\n\ | ||||
| 	.align 4,0x07\n\ | ||||
| 	END_FINI\n\ | ||||
| \n\ | ||||
| /*@_fini_PROLOG_ENDS*/\n\ | ||||
| \n\ | ||||
| /*@_fini_EPILOG_BEGINS*/\n\ | ||||
| 	.align 4\n\ | ||||
| 	.section .fini\n\ | ||||
| #NO_APP\n\ | ||||
| 	.align 4\n\ | ||||
| 	LG	4,272(15)\n\ | ||||
| 	LMG	6,15,208(15)\n\ | ||||
| 	BR	4\n\ | ||||
| #APP\n\ | ||||
| 	END_FINI\n\ | ||||
| \n\ | ||||
| /*@_fini_EPILOG_ENDS*/\n\ | ||||
| \n\ | ||||
| 	/*@TRAILER_BEGINS*/\ | ||||
| "); | ||||
|  |  | |||
|  | @ -80,12 +80,12 @@ | |||
| #define mcount		_mcount | ||||
| #endif | ||||
| 
 | ||||
| #define	PSEUDO(name, syscall_name, args)				      \ | ||||
| lose: SYSCALL_PIC_SETUP							      \ | ||||
|   JUMPTARGET(syscall_error)						      \ | ||||
|   .globl syscall_error;							      \ | ||||
|   ENTRY (name)								      \ | ||||
|   DO_CALL (syscall_name, args);						      \ | ||||
| #define	PSEUDO(name, syscall_name, args) \ | ||||
| lose: SYSCALL_PIC_SETUP			\ | ||||
|   jg JUMPTARGET(syscall_error);		\ | ||||
|   .globl syscall_error;			\ | ||||
|   ENTRY (name)				\ | ||||
|   DO_CALL (syscall_name, args);		\ | ||||
|   jm lose | ||||
| 
 | ||||
| #undef	PSEUDO_END | ||||
|  | @ -94,13 +94,11 @@ lose: SYSCALL_PIC_SETUP							      \ | |||
| 
 | ||||
| #undef JUMPTARGET | ||||
| #ifdef PIC | ||||
| #define JUMPTARGET(name)  \ | ||||
|     brasl name##@PLT | ||||
| #define JUMPTARGET(name)	name##@PLT | ||||
| #define SYSCALL_PIC_SETUP \ | ||||
|     larl  %r12,_GLOBAL_OFFSET_TABLE_ | ||||
| #else | ||||
| #define JUMPTARGET(name)  \ | ||||
|     brasl name | ||||
| #define JUMPTARGET(name)	name | ||||
| #define SYSCALL_PIC_SETUP	/* Nothing.  */ | ||||
| #endif | ||||
| 
 | ||||
|  |  | |||
|  | @ -33,10 +33,6 @@ | |||
| #undef SYS_ify | ||||
| #define SYS_ify(syscall_name)	__NR_##syscall_name | ||||
| 
 | ||||
| /* ELF-like local names start with `.L'.  */ | ||||
| #undef L | ||||
| #define L(name)	.L##name | ||||
| 
 | ||||
| #ifdef __ASSEMBLER__ | ||||
| 
 | ||||
| /* Linux uses a negative return value to indicate syscall errors, unlike
 | ||||
|  |  | |||
|  | @ -34,10 +34,6 @@ | |||
| #undef SYS_ify | ||||
| #define SYS_ify(syscall_name)	__NR_##syscall_name | ||||
| 
 | ||||
| /* ELF-like local names start with `.L'.  */ | ||||
| #undef L | ||||
| #define L(name)	.L##name | ||||
| 
 | ||||
| #ifdef __ASSEMBLER__ | ||||
| 
 | ||||
| /* Linux uses a negative return value to indicate syscall errors, unlike
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue