about summary refs log tree commit diff
path: root/sysdeps/ia64/fpu/s_atanf.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ia64/fpu/s_atanf.S')
-rw-r--r--sysdeps/ia64/fpu/s_atanf.S75
1 files changed, 38 insertions, 37 deletions
diff --git a/sysdeps/ia64/fpu/s_atanf.S b/sysdeps/ia64/fpu/s_atanf.S
index fb7f4a307e..b0a68737aa 100644
--- a/sysdeps/ia64/fpu/s_atanf.S
+++ b/sysdeps/ia64/fpu/s_atanf.S
@@ -1,10 +1,12 @@
 .file "atanf.s"
 
+// THIS IS NOT OPTIMIZED AND NOT OFFICIAL
 
-// 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, 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 +22,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,18 +37,16 @@
 //
 // 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
 //==============================================================
-// 02/20/00 Initial version
-// 08/17/00 Changed predicate register macro-usage to direct predicate
+// ?/??/00  Initial revision 
+// 8/17/00  Changed predicate register macro-usage to direct predicate
 //          names due to an assembler bug.
-// 02/06/02 Corrected .section statement
-// 05/20/02 Cleaned up namespace and sf0 syntax
-// 02/06/03 Reordered header: .section, .global, .proc, .align;
-//          added missing bundling
+
+#include "libm_support.h"
 
 //
 // Assembly macros
@@ -140,11 +140,16 @@ atanf_answer       = f8
 //atanf_pred_GT1     = p7
 
 
-RODATA
+#ifdef _LIBC
+.rodata
+#else
+.data
+#endif
 
 .align 16
 
-LOCAL_OBJECT_START(atanf_coeff_1_table)
+atanf_coeff_1_table:
+ASM_TYPE_DIRECTIVE(atanf_coeff_1_table,@object)
 data8 0x40c4c241be751ff2  // r4
 data8 0x40e9f300c2f3070b  // r5
 data8 0x409babffef772075  // r3
@@ -159,11 +164,12 @@ data8 0xbfc2473c5145ee38  // p3
 data8 0x3fbc4f512b1865f5  // p4
 data8 0x3fc9997e7afbff4e  // p2
 data8 0x3ff921fb54442d18  // pi/2
-LOCAL_OBJECT_END(atanf_coeff_1_table)
+ASM_SIZE_DIRECTIVE(atanf_coeff_1_table)
 
 
 
-LOCAL_OBJECT_START(atanf_coeff_2_table)
+atanf_coeff_2_table:
+ASM_TYPE_DIRECTIVE(atanf_coeff_2_table,@object)
 data8 0x4035000000004284  // r1
 data8 0x406cdffff336a59b  // r2
 data8 0x3fbc4f512b1865f5  // p4 = q6
@@ -176,12 +182,18 @@ data8 0xbfa6e10ba401393f  // p7
 data8 0x3f97105b4160f86b  // p8
 data8 0xbf7deaadaa336451  // p9
 data8 0x3f522e5d33bc9baa  // p10
-LOCAL_OBJECT_END(atanf_coeff_2_table)
+ASM_SIZE_DIRECTIVE(atanf_coeff_2_table)
+
+
 
+.global atanf 
 
+.text
+.proc  atanf
+
+.align 32
+atanf:
 
-.section .text
-GLOBAL_LIBM_ENTRY(atanf)
 
 {     .mfi 
      alloc      r32                  = ar.pfs,1,2,0,0
@@ -313,7 +325,7 @@ GLOBAL_LIBM_ENTRY(atanf)
 {     .mfb 
      nop.m                 999
      fma.s1    atanf_x5  =    atanf_t,atanf_xcub,f0
-(p8)  br.cond.spnt   ATANF_X_INF_NAN_ZERO
+(p8)  br.cond.spnt   L(ATANF_X_INF_NAN_ZERO)
 } 
 ;;
  
@@ -475,7 +487,7 @@ GLOBAL_LIBM_ENTRY(atanf)
  
 {     .mfi 
      nop.m                           999
-     fma.s0       atanf_sgnx_piby2    =    atanf_sgn_x,atanf_piby2,f0
+     fma       atanf_sgnx_piby2    =    atanf_sgn_x,atanf_piby2,f0
      nop.i                           999
 } 
 {     .mfi 
@@ -518,38 +530,27 @@ GLOBAL_LIBM_ENTRY(atanf)
 {     .mfi 
                     nop.m                      999
 //(atanf_pred_GT1)    fnma.s    atanf_answer   =    atanf_poly_q,atanf_z21_poly_r,atanf_sgnx_piby2
-(p7)    fnma.s.s0    atanf_answer   =    atanf_poly_q,atanf_z21_poly_r,atanf_sgnx_piby2
+(p7)    fnma.s    atanf_answer   =    atanf_poly_q,atanf_z21_poly_r,atanf_sgnx_piby2
                     nop.i                      999;;
 } 
  
 {     .mfb 
                     nop.m                      999
 //(atanf_pred_LE1)    fma.s     atanf_answer   =    atanf_x11,atanf_poly_p1,atanf_poly_p4
-(p6)    fma.s.s0     atanf_answer   =    atanf_x11,atanf_poly_p1,atanf_poly_p4
+(p6)    fma.s     atanf_answer   =    atanf_x11,atanf_poly_p1,atanf_poly_p4
                     br.ret.sptk b0
 } 
 
 
 
-ATANF_X_INF_NAN_ZERO:
+L(ATANF_X_INF_NAN_ZERO):
 
-{ .mfi
-      nop.m 0
-      fclass.m p8,p9 = f8,0x23  // @inf
-      nop.i 0
-}
+      fclass.m p8,p9 = f8,0x23	// @inf
 ;;
-{ .mfi
-      nop.m 0
 (p8)  fmerge.s f8 = f8, atanf_piby2
-      nop.i 0
-}
 ;;
-{ .mfb
-      nop.m 0
-      fnorm.s.s0 f8 = f8
+      fnorm.s f8 = f8
       br.ret.sptk b0
-}
-;;
 
-GLOBAL_LIBM_END(atanf)
+.endp atanf
+ASM_SIZE_DIRECTIVE(atanf)