summaryrefslogtreecommitdiff
path: root/sysdeps/ia64/fpu/s_cbrtl.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ia64/fpu/s_cbrtl.S')
-rw-r--r--sysdeps/ia64/fpu/s_cbrtl.S64
1 files changed, 37 insertions, 27 deletions
diff --git a/sysdeps/ia64/fpu/s_cbrtl.S b/sysdeps/ia64/fpu/s_cbrtl.S
index 3e621e2c12..d4bbf8fdbf 100644
--- a/sysdeps/ia64/fpu/s_cbrtl.S
+++ b/sysdeps/ia64/fpu/s_cbrtl.S
@@ -1,10 +1,11 @@
-.file "cbrtl.s"
+.file "cbrtl.asm"
-
-// Copyright (c) 2000 - 2003, Intel Corporation
+// Copyright (C) 2000, 2001, Intel Corporation
// All rights reserved.
-//
-// Contributed 2000 by the Intel Numerics Group, Intel Corporation
+//
+// Contributed 2/2/2000 by John Harrison, Cristina Iordache, Ted Kubaska,
+// Bob Norin, Shane Story, and Ping Tak Peter Tang
+// of the Computational Software Lab, Intel Corporation.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
@@ -20,7 +21,7 @@
// * The name of Intel Corporation may not be used to endorse or promote
// products derived from this software without specific prior written
// permission.
-
+//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -35,13 +36,11 @@
//
// Intel Corporation is the author of this code, and requests that all
// problem reports or change requests be submitted to it directly at
-// http://www.intel.com/software/products/opensource/libraries/num.htm.
+// http://developer.intel.com/opensource.
//
// History
//==============================================================
-// 04/28/00 Initial version
-// 05/20/02 Cleaned up namespace and sf0 syntax
-// 02/06/03 Reordered header: .section, .global, .proc, .align
+// 4/28/00: Initial version
//
// API
//==============================================================
@@ -96,26 +95,29 @@
// r2-r3, r23-r30
// p6,p7,p12
-
+#include "libm_support.h"
// Data tables
//==============================================================
-RODATA
+#ifdef _LIBC
+.rodata
+#else
+.data
+#endif
.align 16
-LOCAL_OBJECT_START(poly_coeffs)
-
+poly_coeffs:
+ASM_TYPE_DIRECTIVE(poly_coeffs,@object)
data8 0xaaaaaaaaaaaaaab1, 0x00003ffd // C_1
data8 0xe38e38e38e38e3e0, 0x00003ffb // C_2
data8 0x3faf9add3c0be9a6, 0x3fa511e8d2b1f749 // C_3, C_4
data8 0x3f9ee71b2c6ebe99, 0x3f9809180fd0340c // C_5, C_6
-LOCAL_OBJECT_END(poly_coeffs)
-
-
-LOCAL_OBJECT_START(T_table)
+ASM_SIZE_DIRECTIVE(poly_coeffs)
+T_table:
+ASM_TYPE_DIRECTIVE(T_table,@object)
data8 0x80155c748c374836, 0x8040404b0879f7f9
data8 0x806b5dce4b405c10, 0x8096b586974669b1
@@ -501,15 +503,14 @@ data8 0xfec316fecaf3f2ab, 0xfeecfdaf33fadb80
data8 0xff16fffe2fa8fad6, 0xff411e0ba9db886d
data8 0xff6b57f7c33e4e9a, 0xff95ade2d1bd7358
data8 0xffc01fed60f86fb5, 0xffeaae3832b63956
-LOCAL_OBJECT_END(T_table)
+ASM_SIZE_DIRECTIVE(T_table)
-
-LOCAL_OBJECT_START(D_table)
-
+D_table:
+ASM_TYPE_DIRECTIVE(D_table,@object)
data4 0x1e50f488, 0x1ebdc559, 0x1e649ec1, 0x9eed9b2c
data4 0x9e511c44, 0x9ec6d551, 0x9eefe248, 0x9e313854
data4 0x9f54ff18, 0x9d231411, 0x1ee5d63c, 0x9edf6b95
@@ -702,16 +703,25 @@ data4 0x9eafd508, 0x9ef0e9fc, 0x1d1307ac, 0x1eecee20
data4 0x1cf60c6f, 0x9d556216, 0x9eaed175, 0x9ec919f4
data4 0x1ec2c988, 0x1cd82772, 0x9dc99456, 0x1eab0467
data4 0x1e89b36f, 0x1c757944, 0x1eef9abd, 0x9e98664d
-LOCAL_OBJECT_END(D_table)
+ASM_SIZE_DIRECTIVE(D_table)
+
+
+
+.align 32
+.global cbrtl#
+
.section .text
-GLOBAL_LIBM_ENTRY(cbrtl)
+.proc cbrtl#
+.align 32
+cbrtl:
+
{ .mfi
getf.sig r3=f8
// will continue only for normal/denormal numbers
- fclass.nm.unc p12,p7 = f8, 0x1b
+(p0) fclass.nm.unc p12,p7 = f8, 0x1b
// r2 = pointer to C_1...C_6 followed by T_table
addl r2 = @ltoff(poly_coeffs), gp;;
}
@@ -888,5 +898,5 @@ GLOBAL_LIBM_ENTRY(cbrtl)
(p6) fma.s0 f8=f8,f6,f8
br.ret.sptk b0;;
}
-GLOBAL_LIBM_END(cbrtl)
-
+.endp cbrtl
+ASM_SIZE_DIRECTIVE(cbrtl)