summaryrefslogtreecommitdiff
path: root/gcc/config/m68k/lb1sf68.asm
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2008-12-04 17:56:55 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2008-12-04 17:56:55 +0000
commitda9055d29af60e521b94ef9d06e5e99f4e79e6a9 (patch)
tree5f6e71850acc8fc72a303b3e8977d8f2ef788bc4 /gcc/config/m68k/lb1sf68.asm
parentb4df425bacd370bd1700ca7ba7e6fe4f830b5eb8 (diff)
downloadgcc-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.asm82
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