From 46049cff4f689532250bec7a53c8c1d5486bf640 Mon Sep 17 00:00:00 2001 From: Richard Earnshaw Date: Thu, 15 Jan 2004 16:56:34 +0000 Subject: Richard Earnshaw Daniel Jacobowitz * 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 From-SVN: r75930 --- gcc/ChangeLog | 9 +++++++++ gcc/config/arm/ieee754-df.S | 10 +++++----- gcc/config/arm/ieee754-sf.S | 10 +++++----- gcc/config/arm/lib1funcs.asm | 17 +++++++++++++++-- 4 files changed, 34 insertions(+), 12 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5ae1456..cdc724b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2004-01-15 Richard Earnshaw + Daniel Jacobowitz + + * 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 PR optimization/12372 diff --git a/gcc/config/arm/ieee754-df.S b/gcc/config/arm/ieee754-df.S index b04d3df..58e019a 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 73c598b..5c97245 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 fe14070..e72af6c 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. */ -- cgit v1.1