about summary refs log tree commit diff
path: root/sysdeps/powerpc/s_copysign.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/powerpc/s_copysign.S')
-rw-r--r--sysdeps/powerpc/s_copysign.S40
1 files changed, 15 insertions, 25 deletions
diff --git a/sysdeps/powerpc/s_copysign.S b/sysdeps/powerpc/s_copysign.S
index adc7df226a..6d5ba82592 100644
--- a/sysdeps/powerpc/s_copysign.S
+++ b/sysdeps/powerpc/s_copysign.S
@@ -1,17 +1,17 @@
 /* Copy a sign bit between floating-point values.
    Copyright (C) 1997 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-  
+
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public License as
    published by the Free Software Foundation; either version 2 of the
    License, or (at your option) any later version.
-  
+
    The GNU C Library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Library General Public License for more details.
-  
+
    You should have received a copy of the GNU Library General Public
    License along with the GNU C Library; see the file COPYING.LIB.  If not,
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
@@ -20,15 +20,12 @@
 /* This has been coded in assembler because GCC makes such a mess of it
    when it's coded in C.  */
 
-	.section ".text"
-	.align 2
-	.globl __copysign
-	.type __copysign,@function
-__copysign:	
+#include <sysdep.h>
+
+ENTRY(__copysign)
 /* double [f1] copysign (double [f1] x, double [f2] y);
    copysign(x,y) returns a value with the magnitude of x and
    with the sign bit of y.  */
-
 	stwu	%r1,-16(%r1)
 	stfd	%f2,8(%r1)
 	lwz	%r3,8(%r1)
@@ -39,22 +36,15 @@ __copysign:
 	blr
 0:	fnabs   %f1,%f1
 	blr
-0:
-	.size	 __copysign,0b-__copysign
-	
-	.globl copysign
-	.globl copysignf
-	.globl __copysignf
-	.weak copysign
-	.weak copysignf
-	.set copysign,__copysign
+	END (__copysign)
+
+weak_alias(__copysign,copysign)
+
 /* It turns out that it's safe to use this code even for single-precision.  */
-	.set __copysignf,__copysign
-	.set copysignf,__copysign
+weak_alias(__copysign,copysignf)
+strong_alias(__copysign,__copysignf)
+
 #ifdef NO_LONG_DOUBLE
-	.globl copysignl
-	.globl __copysignl
-	.weak copysignl
-	.set __copysignl,__copysign
-	.set copysignl,__copysign
+weak_alias(__copysign,copysignl)
+strong_alias(__copysign,__copysignl)
 #endif