aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/arm/ieee754-df.S10
-rw-r--r--gcc/config/arm/ieee754-sf.S10
-rw-r--r--gcc/config/arm/lib1funcs.asm17
4 files changed, 34 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5ae14569f41..cdc724b7cea 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2004-01-15 Richard Earnshaw <rearnsha@arm.com>
+ Daniel Jacobowitz <drow@mvista.com>
+
+ * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
+ (EQUIV): Define.
+ (ARM_FUNC_ALIAS): New macro.
+ * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
+ * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
+
2004-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR optimization/12372
diff --git a/gcc/config/arm/ieee754-df.S b/gcc/config/arm/ieee754-df.S
index b04d3dfb5bf..58e019a3fac 100644
--- a/gcc/config/arm/ieee754-df.S
+++ b/gcc/config/arm/ieee754-df.S
@@ -1,6 +1,6 @@
/* ieee754-df.S double-precision floating point support for ARM
- Copyright (C) 2003 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004 Free Software Foundation, Inc.
Contributed by Nicolas Pitre (nico@cam.org)
This file is free software; you can redistribute it and/or modify it
@@ -940,19 +940,19 @@ LSYM(Ldv_s):
#ifdef L_cmpdf2
-FUNC_START gedf2
ARM_FUNC_START gtdf2
+ARM_FUNC_ALIAS gedf2 gtdf2
mov ip, #-1
b 1f
-FUNC_START ledf2
ARM_FUNC_START ltdf2
+ARM_FUNC_ALIAS ledf2 ltdf2
mov ip, #1
b 1f
-FUNC_START nedf2
-FUNC_START eqdf2
ARM_FUNC_START cmpdf2
+ARM_FUNC_ALIAS nedf2 cmpdf2
+ARM_FUNC_ALIAS eqdf2 cmpdf2
mov ip, #1 @ how should we specify unordered here?
1: stmfd sp!, {r4, r5, lr}
diff --git a/gcc/config/arm/ieee754-sf.S b/gcc/config/arm/ieee754-sf.S
index 73c598b7639..5c972452954 100644
--- a/gcc/config/arm/ieee754-sf.S
+++ b/gcc/config/arm/ieee754-sf.S
@@ -1,6 +1,6 @@
/* ieee754-sf.S single-precision floating point support for ARM
- Copyright (C) 2003 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004 Free Software Foundation, Inc.
Contributed by Nicolas Pitre (nico@cam.org)
This file is free software; you can redistribute it and/or modify it
@@ -642,19 +642,19 @@ LSYM(Ldv_s):
#ifdef L_cmpsf2
-FUNC_START gesf2
ARM_FUNC_START gtsf2
+ARM_FUNC_ALIAS gesf2 gtsf2
mov r3, #-1
b 1f
-FUNC_START lesf2
ARM_FUNC_START ltsf2
+ARM_FUNC_ALIAS lesf2 ltsf2
mov r3, #1
b 1f
-FUNC_START nesf2
-FUNC_START eqsf2
ARM_FUNC_START cmpsf2
+ARM_FUNC_ALIAS nesf2 cmpsf2
+ARM_FUNC_ALIAS eqsf2 cmpsf2
mov r3, #1 @ how should we specify unordered here?
1: @ Trap any INF/NAN first.
diff --git a/gcc/config/arm/lib1funcs.asm b/gcc/config/arm/lib1funcs.asm
index fe14070e812..e72af6cca51 100644
--- a/gcc/config/arm/lib1funcs.asm
+++ b/gcc/config/arm/lib1funcs.asm
@@ -1,7 +1,8 @@
@ libgcc routines for ARM cpu.
@ Division routines, written by Richard Earnshaw, (rearnsha@armltd.co.uk)
-/* Copyright 1995, 1996, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004
+ Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -202,12 +203,24 @@ SYM (__\name):
.arm
_L__\name: /* A hook to tell gdb that we've switched to ARM */
.endm
+#define EQUIV .thumb_set
#else
.macro ARM_FUNC_START name
- FUNC_START \name
+ .text
+ .globl SYM (__\name)
+ TYPE (__\name)
+ .align 0
+ .arm
+SYM (__\name):
.endm
+#define EQUIV .set
#endif
+.macro ARM_FUNC_ALIAS new old
+ .globl SYM (__\new)
+ EQUIV SYM (__\new), SYM (__\old)
+.endm
+
#ifdef __thumb__
/* Register aliases. */