⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 initfini.c

📁 Glibc 2.3.2源代码(解压后有100多M)
💻 C
字号:
/* Special .init and .fini section support for SH.   Copyright (C) 2000, 2002 Free Software Foundation, Inc.   This file is part of the GNU C Library.   The GNU C Library is free software; you can redistribute it and/or   modify it under the terms of the GNU Lesser General Public   License as published by the Free Software Foundation; either   version 2.1 of the License, or (at your option) any later version.   The GNU C Library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Lesser General Public License for more details.   You should have received a copy of the GNU Lesser General Public   License along with the GNU C Library; if not, write to the Free   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA.  *//* This file is compiled into assembly code which is then munged by a sed   script into two files: crti.s and crtn.s.   * crti.s puts a function prologue at the beginning of the   .init and .fini sections and defines global symbols for   those addresses, so they can be called as functions.   * crtn.s puts the corresponding function epilogues   in the .init and .fini sections. */__asm__ ("\\n\#include \"defs.h\"\n\#define SHARED\n\\n\/*@HEADER_ENDS*/\n\\n\/*@TESTS_BEGIN*/\n\\n\/*@TESTS_END*/\n\\n\/*@_init_PROLOG_BEGINS*/\n\	.section .init\n\	.align 5\n\	.global	_init\n\	.type	_init,@function\n\_init:\n\	mov.l	r12,@-r15\n\	mov.l	r14,@-r15\n\	sts.l	pr,@-r15\n\#ifdef SHARED\n\	mova	.L22,r0\n\	mov.l	.L22,r12\n\	add	r0,r12\n\	mova	.L23,r0\n\	mov.l	.L23,r1\n\	add	r0,r1\n\#else\n\	mov.l	.L23,r1\n\#endif\n\	jsr	@r1\n\	 mov	r15,r14\n\	bra	1f\n\	 nop\n\	.align 2\n\#ifdef SHARED\n\.L22:\n\	.long	_GLOBAL_OFFSET_TABLE_\n\.L23:\n\	.long	__gmon_start__@PLT\n\#else\n\.L23:\n\	.long	__gmon_start__\n\#endif\n\1:\n\	ALIGN\n\	END_INIT\n\\n\	\n\/*@_init_PROLOG_ENDS*/\n\\n\/*@_init_EPILOG_BEGINS*/\n\	.section .init\n\	mov	r14,r15\n\	lds.l	@r15+,pr\n\	mov.l	@r15+,r14\n\	rts	\n\	mov.l	@r15+,r12\n\	END_INIT\n\	.section .text\n\	.align 5\n\	.weak	__gmon_start__\n\	.type	__gmon_start__,@function\n\__gmon_start__:\n\	mov.l	r14,@-r15\n\	mov	r15,r14\n\	mov	r14,r15\n\	rts	\n\	mov.l	@r15+,r14\n\	\n\/*@_init_EPILOG_ENDS*/\n\\n\/*@_fini_PROLOG_BEGINS*/\n\	.section .fini\n\	.align 5\n\	.global	_fini\n\	.type	_fini,@function\n\_fini:\n\	mov.l	r12,@-r15\n\	mov.l	r14,@-r15\n\	sts.l	pr,@-r15\n\#ifdef SHARED\n\	mova	.L27,r0\n\	mov.l	.L27,r12\n\	add	r0,r12\n\#endif\n\	mov	r15,r14\n\	ALIGN\n\	END_FINI\n\#ifdef SHARED\n\	bra	1f\n\	 nop\n\	.align	2\n\.L27:\n\	.long	_GLOBAL_OFFSET_TABLE_\n\#endif\n\1:\n\/*@_fini_PROLOG_ENDS*/\n\\n\/*@_fini_EPILOG_BEGINS*/\n\	.section .fini\n\	mov	r14,r15\n\	lds.l	@r15+,pr\n\	mov.l	@r15+,r14\n\	rts	\n\	mov.l	@r15+,r12\n\\n\	END_FINI\n\	\n\/*@_fini_EPILOG_ENDS*/\n\\n\/*@TRAILER_BEGINS*/\");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -