[PATCH 4/6] The C6X port

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Wed Feb 23 22:41:06 UTC 2011


On Wed, Feb 23, 2011 at 08:05:50PM +0100, Bernd Schmidt wrote:
>This adds support for the TI C6X family of processors.

>Signed-off-by: Mark Salter <msalter at redhat.com>
>Signed-off-by: Aurelien Jacquiot <a-jacquiot at ti.com>
>Signed-off-by: Bernd Schmidt <bernds at codesourcery.com>
>---

>--- a/include/elf.h
>+++ b/include/elf.h

>+#define R_C6000_COPY		26
>+#define R_C6000_JUMP_SLOT	27
>+#define R_C6000_ALIGN		253
>+#define R_C6000_FPHEAD		254
>+#define R_C6000_NOCMP		255

>--- /dev/null
>+++ b/ldso/ldso/c6x/dl-debug.h

>+	"R_C6000_PREL31",		/* 25 */
>+	"R_C6000_COPY",
>+#if 0

+ "R_C6000_JUMP_SLOT", ?

>+	"R_C6000_ALIGN",		/* 253 */
>+	"R_C6000_FPHEAD",		/* 254 */
>+	"R_C6000_NOCMP",		/* 255 */
>+#endif
>+};

>diff --git a/ldso/ldso/c6x/dl-startup.h b/ldso/ldso/c6x/dl-startup.h
>new file mode 100644
>index 0000000..388ba9a
>--- /dev/null
>+++ b/ldso/ldso/c6x/dl-startup.h

mixing tabs and spaces below.
>+__asm__("	.text\n"
>+	".globl _start\n"
>+	"_start:\n"
>+	"          B .S2		_dl_start\n"
>+        "          STW .D2T2		B14, *+B14[1]\n"
>+	"          ADD .D1X		B15,8,A8\n"
>+	"          ADDKPC .S2		ret_from_dl,B3,2\n"
>+	"ret_from_dl:\n"
>+	"	   B .S2X		A4\n"
>+        " ||       LDW .D2T2		*+B14[0],B14\n"
>+	" 	   ADDKPC .S2		__dl_fini,B0,0\n"
>+	"          MV .S1X		B0,A4\n"
>+	"	   NOP\n"
>+	"	   NOP\n"
>+	"	   NOP\n"
>+	"__dl_fini:\n"
>+        "          LDW .D2T2		*+B14[1],B14\n"
>+	"	   NOP		4\n"
>+	" 	   LDW .D2T1		*+B14($GOT(_dl_fini)), A0\n"
>+	"          NOP		4\n"
>+	"	   BNOP .S2X		A0, 5\n");
>+
>+__asm__("	.text\n"
>+	"__c6x_cache_sync:\n"
>+	"	   MVK .S2		330,B0\n"
>+	"	   SWE\n"
>+	"	   NOP\n"
>+	"	   BNOP .S2		B3,5\n"
>+	"	   NOP\n"
>+	"	   NOP\n"
>+	"	   NOP\n"
>+	"	   NOP\n"
>+	"\n"
>+);

>+extern void __c6x_cache_sync(unsigned long start,
>+			     unsigned long end)
>+    __attribute__((__visibility__("hidden")));

attribute_hidden

>--- /dev/null
>+++ b/ldso/ldso/c6x/dl-sysdep.h

>+extern int _dl_linux_resolve(void) __attribute__((__visibility__("hidden")));

ditto above and some other occurances later on

>--- /dev/null
>+++ b/ldso/ldso/c6x/elfinterp.c

will look at the remainder during the weekend.


More information about the uClibc mailing list