OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [uClibc/] [ldso/] [ldso/] [sh64/] [boot1_arch.h] - Rev 1325

Go to most recent revision | Compare with Previous | Blame | View Log

/* Any assmbly language/system dependent hacks needed to setup boot1.c so it
 * will work as expected and cope with whatever platform specific wierdness is
 * needed for this architecture.
 */
 
asm("" \
"	.section .text..SHmedia32,\"ax\"\n"				\
"	.globl _dl_boot\n"						\
"	.type _dl_boot, @function\n"					\
"	.align 5\n"							\
"_dl_boot:\n"								\
"	! Set r12 to point to GOT\n"					\
"	movi	(((datalabel _GLOBAL_OFFSET_TABLE_-(.LZZZ3-.)) >> 16) & 65535), r12\n"	\
"	shori	((datalabel _GLOBAL_OFFSET_TABLE_-(.LZZZ3-.)) & 65535), r12\n"		\
".LZZZ3:\n"								\
"	ptrel/u	r12, tr0\n"						\
"	gettr	tr0, r12	! GOT address\n"			\
"	add	r18, r63, r11	! save return address - needed?\n"	\
"	add	r15, r63, r2	! arg = stack pointer\n"		\
"	pt	_dl_boot2, tr0	! should work even if PIC\n"		\
"	blink	tr0, r18	! call _dl_boot2 - user EP is in r2\n"	\
);
 
#define _dl_boot _dl_boot2
#define LD_BOOT(X)   static void * __attribute__ ((unused)) _dl_boot (X)
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.