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.

Co-Authored-By: Daniel Jacobowitz <drow@mvista.com>

From-SVN: r75930
This commit is contained in:
Richard Earnshaw 2004-01-15 16:56:34 +00:00 committed by Richard Earnshaw
parent 4e394293bf
commit 46049cff4f
4 changed files with 34 additions and 12 deletions

View File

@ -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

View File

@ -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}

View File

@ -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.

View File

@ -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. */