diff options
Diffstat (limited to 'sysdeps/ia64/fpu/s_atanf.S')
-rw-r--r-- | sysdeps/ia64/fpu/s_atanf.S | 76 |
1 files changed, 38 insertions, 38 deletions
diff --git a/sysdeps/ia64/fpu/s_atanf.S b/sysdeps/ia64/fpu/s_atanf.S index 4da68c7f08..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,39 +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) |