diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-12-04 17:56:55 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-12-04 17:56:55 +0000 |
commit | da9055d29af60e521b94ef9d06e5e99f4e79e6a9 (patch) | |
tree | 5f6e71850acc8fc72a303b3e8977d8f2ef788bc4 /gcc/config/m68k/lb1sf68.asm | |
parent | b4df425bacd370bd1700ca7ba7e6fe4f830b5eb8 (diff) | |
download | gcc-da9055d29af60e521b94ef9d06e5e99f4e79e6a9.tar.gz |
2008-12-04 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r142432
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@142441 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m68k/lb1sf68.asm')
-rw-r--r-- | gcc/config/m68k/lb1sf68.asm | 82 |
1 files changed, 56 insertions, 26 deletions
diff --git a/gcc/config/m68k/lb1sf68.asm b/gcc/config/m68k/lb1sf68.asm index ebfcb88f42d..a3d96d6661e 100644 --- a/gcc/config/m68k/lb1sf68.asm +++ b/gcc/config/m68k/lb1sf68.asm @@ -129,30 +129,6 @@ Boston, MA 02110-1301, USA. */ #else /* __PIC__ */ - /* Common for Linux and uClinux, the latter with either - -mid-shared-library or -msep-data. */ - - .macro PICCALL addr -#if defined (__mcoldfire__) && !defined (__mcfisab__) && !defined (__mcfisac__) - lea \addr-.-8,a0 - jsr pc@(a0) -#else - bsr \addr -#endif - .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) -#else - bra \addr -#endif - .endm - # if defined (__uClinux__) /* Versions for uClinux */ @@ -171,6 +147,16 @@ Boston, MA 02110-1301, USA. */ movel \sym@GOT(\areg), sp@- .endm + .macro PICCALL addr + PICLEA \addr,a0 + jsr a0@ + .endm + + .macro PICJUMP addr + PICLEA \addr,a0 + jmp a0@ + .endm + # else /* !__ID_SHARED_LIBRARY__ */ /* Versions for -msep-data */ @@ -183,6 +169,27 @@ Boston, MA 02110-1301, USA. */ movel \sym@GOT(a5), sp@- .endm + .macro PICCALL addr +#if defined (__mcoldfire__) && !defined (__mcfisab__) && !defined (__mcfisac__) + lea \addr-.-8,a0 + jsr pc@(a0) +#else + bsr \addr +#endif + .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) +#else + bra \addr +#endif + .endm + # endif # else /* !__uClinux__ */ @@ -201,6 +208,27 @@ Boston, MA 02110-1301, USA. */ movel \sym@GOT(\areg), sp@- .endm + .macro PICCALL addr +#if defined (__mcoldfire__) && !defined (__mcfisab__) && !defined (__mcfisac__) + lea \addr-.-8,a0 + jsr pc@(a0) +#else + bsr \addr +#endif + .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) +#else + bra \addr +#endif + .endm + # endif #endif /* __PIC__ */ @@ -648,6 +676,7 @@ ROUND_TO_MINUS = 3 | round result towards minus infinity .globl SYM (__negdf2) .globl SYM (__cmpdf2) .globl SYM (__cmpdf2_internal) + .hidden SYM (__cmpdf2_internal) .text .even @@ -2410,7 +2439,7 @@ SYM (__cmpdf2): movl a6@(16),sp@- movl a6@(12),sp@- movl a6@(8),sp@- - bsr SYM (__cmpdf2_internal) + PICCALL SYM (__cmpdf2_internal) unlk a6 rts @@ -2562,6 +2591,7 @@ ROUND_TO_MINUS = 3 | round result towards minus infinity .globl SYM (__negsf2) .globl SYM (__cmpsf2) .globl SYM (__cmpsf2_internal) + .hidden SYM (__cmpsf2_internal) | These are common routines to return and signal exceptions. @@ -3816,7 +3846,7 @@ SYM (__cmpsf2): pea 1 movl a6@(12),sp@- movl a6@(8),sp@- - bsr (__cmpsf2_internal) + PICCALL SYM (__cmpsf2_internal) unlk a6 rts |