Commit bd0e50ee by Mark Shinwell Committed by Nathan Sidwell

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

From-SVN: r137558
parent 368b55f6
2008-07-07 Mark Shinwell <shinwell@codesourcery.com>
* config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
2008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
......
......@@ -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,6 +153,10 @@ Boston, MA 02110-1301, USA. */
#endif
.endm
# if defined (__uClinux__)
/* Versions for uClinux */
# if defined(__ID_SHARED_LIBRARY__)
/* -mid-shared-library versions */
......@@ -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__ */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment