This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

m68k soft float routines


With the addition of m54455 it is necessary to tweak the lb1sf68.asm file so that it works for a linux target. This patch of Mark Shinwell's does that.

tested on m68k-linux-gnu, ok?

nathan
--
Nathan Sidwell    ::   http://www.codesourcery.com   ::         CodeSourcery

2008-07-03  Mark Shinwell  <shinwell@codesourcery.com>

	* config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.

Index: config/m68k/lb1sf68.asm
===================================================================
--- config/m68k/lb1sf68.asm	(revision 137406)
+++ config/m68k/lb1sf68.asm	(working copy)
@@ -129,10 +129,11 @@ Boston, MA 02110-1301, USA.  */
 
 #else /* __PIC__ */
 
-	/* Common for -mid-shared-libary and -msep-data */
+	/* Common for Linux and uClinux, the latter with either
+	   -mid-shared-library or -msep-data.  */
 
 	.macro PICCALL addr
-#if defined (__mcoldfire__) && !defined (__mcfisab__)
+#if defined (__mcoldfire__) && !defined (__mcfisab__) && !defined (__mcfisac__)
 	lea	\addr-.-8,a0
 	jsr	pc@(a0)
 #else
@@ -141,6 +142,9 @@ Boston, MA 02110-1301, USA.  */
 	.endm
 
 	.macro PICJUMP addr
+	/* ISA C has no bra.l instruction, and since this assembly file
+	   gets assembled into multiple object files, we avoid the
+	   bra instruction entirely.  */
 #if defined (__mcoldfire__) && !defined (__mcfisab__)
 	lea	\addr-.-8,a0
 	jmp	pc@(a0)
@@ -149,7 +153,11 @@ Boston, MA 02110-1301, USA.  */
 #endif
 	.endm
 
-# if defined(__ID_SHARED_LIBRARY__)
+# if defined (__uClinux__)
+
+	/* Versions for uClinux */
+
+#  if defined(__ID_SHARED_LIBRARY__)
 
 	/* -mid-shared-library versions  */
 
@@ -163,7 +171,7 @@ Boston, MA 02110-1301, USA.  */
 	movel	\sym@GOT(\areg), sp@-
 	.endm
 
-# else /* !__ID_SHARED_LIBRARY__ */
+#  else /* !__ID_SHARED_LIBRARY__ */
 
 	/* Versions for -msep-data */
 
@@ -175,7 +183,25 @@ Boston, MA 02110-1301, USA.  */
 	movel	\sym@GOT(a5), sp@-
 	.endm
 
-# endif /* !__ID_SHARED_LIBRARY__ */
+#  endif
+
+# else /* !__uClinux__ */
+
+	/* Versions for Linux */
+
+	.macro PICLEA sym, reg
+	movel	#_GLOBAL_OFFSET_TABLE_@GOTPC, \reg
+	lea	(-6, pc, \reg), \reg
+	movel	\sym@GOT(\reg), \reg
+	.endm
+
+	.macro PICPEA sym, areg
+	movel	#_GLOBAL_OFFSET_TABLE_@GOTPC, \areg
+	lea	(-6, pc, \areg), \areg
+	movel	\sym@GOT(\areg), sp@-
+	.endm
+
+# endif
 #endif /* __PIC__ */
 
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]