.file "tgamma.s"


// Copyright (c) 2001 - 2005, Intel Corporation
// All rights reserved.
//
// Contributed 2001 by the Intel Numerics Group, Intel Corporation
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//
// * Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
//
// * 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
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS 
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT,INDIRECT,INCIDENTAL,SPECIAL,
// EXEMPLARY,OR CONSEQUENTIAL DAMAGES (INCLUDING,BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,DATA,OR 
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 
// OF LIABILITY,WHETHER IN CONTRACT,STRICT LIABILITY OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
// SOFTWARE,EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
// 
// 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.
//
//*********************************************************************
//
// History: 
// 10/12/01  Initial version
// 05/20/02  Cleaned up namespace and sf0 syntax
// 02/10/03  Reordered header: .section, .global, .proc, .align
// 04/04/03  Changed error codes for overflow and negative integers
// 04/10/03  Changed code for overflow near zero handling
// 03/31/05  Reformatted delimiters between data tables
//
//*********************************************************************
//
//*********************************************************************
//
// Function: tgamma(x) computes the principle value of the GAMMA
// function of x.
//
//*********************************************************************
//
// Resources Used:
//
//    Floating-Point Registers: f8-f15
//                              f33-f87
//
//    General Purpose Registers:
//      r8-r11
//      r14-r28
//      r32-r36
//      r37-r40 (Used to pass arguments to error handling routine)
//
//    Predicate Registers:      p6-p15
//
//*********************************************************************
//
// IEEE Special Conditions:
//
//    tgamma(+inf) = +inf
//    tgamma(-inf) = QNaN 
//    tgamma(+/-0) = +/-inf 
//    tgamma(x<0, x - integer) = QNaN
//    tgamma(SNaN) = QNaN
//    tgamma(QNaN) = QNaN
//
//*********************************************************************
//
// Overview
//
// The method consists of three cases.
// 
// If       2 <= x < OVERFLOW_BOUNDARY      use case tgamma_regular;
// else if    0 < x < 2                     use case tgamma_from_0_to_2;
// else    if  -(i+1) <  x < -i, i = 0...184 use case tgamma_negatives;
//
// Case 2 <= x < OVERFLOW_BOUNDARY
// -------------------------------
//   Here we use algorithm based on the recursive formula
//   GAMMA(x+1) = x*GAMMA(x). For that we subdivide interval
//   [2; OVERFLOW_BOUNDARY] into intervals [16*n; 16*(n+1)] and
//   approximate GAMMA(x) by polynomial of 22th degree on each
//   [16*n; 16*n+1], recursive formula is used to expand GAMMA(x)
//   to [16*n; 16*n+1]. In other words we need to find n, i and r
//   such that x = 16 * n + i + r where n and i are integer numbers
//   and r is fractional part of x. So GAMMA(x) = GAMMA(16*n+i+r) =
//   = (x-1)*(x-2)*...*(x-i)*GAMMA(x-i) =
//   = (x-1)*(x-2)*...*(x-i)*GAMMA(16*n+r) ~
//   ~ (x-1)*(x-2)*...*(x-i)*P22n(r).
//
//   Step 1: Reduction
//   -----------------
//    N = [x] with truncate
//    r = x - N, note 0 <= r < 1
//
//    n = N & ~0xF - index of table that contains coefficient of
//                   polynomial approximation 
//    i = N & 0xF  - is used in recursive formula
//   
//
//   Step 2: Approximation
//   ---------------------
//    We use factorized minimax approximation polynomials
//    P22n(r) = A22*(r^2+C01(n)*R+C00(n))*
//              *(r^2+C11(n)*R+C10(n))*...*(r^2+CA1(n)*R+CA0(n))
//
//   Step 3: Recursion
//   -----------------
//    In case when i > 0 we need to multiply P22n(r) by product
//    R(i)=(x-1)*(x-2)*...*(x-i). To reduce number of fp-instructions
//    we can calculate R as follow:  
//    R(i) = ((x-1)*(x-2))*((x-3)*(x-4))*...*((x-(i-1))*(x-i)) if i is
//    even or R = ((x-1)*(x-2))*((x-3)*(x-4))*...*((x-(i-2))*(x-(i-1)))*
//    *(i-1) if i is odd. In both cases we need to calculate
//    R2(i) = (x^2-3*x+2)*(x^2-7*x+12)*...*(x^2+x+2*j*(2*j-1)) =
//    = (x^2-3*x+2)*(x^2-7*x+12)*...*((x^2+x)+2*j*(2*(j-1)+(1-2*x))) =
//    = (RA+2*(2-RB))*(RA+4*(4-RB))*...*(RA+2*j*(2*(j-1)+RB))
//    where j = 1..[i/2], RA = x^2+x, RB = 1-2*x.
//
//   Step 4: Reconstruction
//   ----------------------
//    Reconstruction is just simple multiplication i.e.
//    GAMMA(x) = P22n(r)*R(i)
//
// Case 0 < x < 2
// --------------
//    To calculate GAMMA(x) on this interval we do following
//        if 1 <= x < 1.25   than  GAMMA(x) = P15(x-1)
//        if 1.25 <= x < 1.5 than  GAMMA(x) = P15(x-x_min) where
//        x_min is point of local minimum on [1; 2] interval.
//        if 1.5  <= x < 2.0 than  GAMMA(x) = P15(x-1.5)
//    and      
//        if 0 < x < 1 than GAMMA(x) = GAMMA(x+1)/x
//
// Case -(i+1) <  x < -i, i = 0...184
// ----------------------------------
//    Here we use the fact that GAMMA(-x) = PI/(x*GAMMA(x)*sin(PI*x)) and
//    so we need to calculate GAMMA(x), sin(PI*x)/PI. Calculation of
//    GAMMA(x) is described above.
//
//   Step 1: Reduction
//   -----------------
//    Note that period of sin(PI*x) is 2 and range reduction for 
//    sin(PI*x) is like to range reduction for GAMMA(x) 
//    i.e r = x - [x] with exception of cases
//    when r > 0.5 (in such cases r = 1 - (x - [x])).
//
//   Step 2: Approximation
//   ---------------------
//    To approximate sin(PI*x)/PI = sin(PI*(2*n+r))/PI = 
//    = (-1)^n*sin(PI*r)/PI Taylor series is used.
//    sin(PI*r)/PI ~ S21(r).
//
//   Step 3: Division
//   ----------------
//    To calculate 1/(x*GAMMA(x)*S21(r)) we use frcpa instruction
//    with following Newton-Raphson interations.
//  
//
//*********************************************************************

GR_Sig                  = r8
GR_TAG                  = r8
GR_ad_Data              = r9
GR_SigRqLin             = r10
GR_iSig                 = r11
GR_ExpOf1               = r11
GR_ExpOf8               = r11


GR_Sig2                 = r14
GR_Addr_Mask1           = r15
GR_Sign_Exp             = r16
GR_Tbl_Offs             = r17
GR_Addr_Mask2           = r18
GR_ad_Co                = r19
GR_Bit2                 = r19
GR_ad_Ce                = r20
GR_ad_Co7               = r21
GR_NzOvfBound           = r21
GR_ad_Ce7               = r22
GR_Tbl_Ind              = r23
GR_Tbl_16xInd           = r24
GR_ExpOf025             = r24
GR_ExpOf05              = r25
GR_0x30033              = r26
GR_10                   = r26
GR_12                   = r27
GR_185                  = r27
GR_14                   = r28
GR_2                    = r28
GR_fpsr                 = r28

GR_SAVE_B0              = r33
GR_SAVE_PFS             = r34
GR_SAVE_GP              = r35
GR_SAVE_SP              = r36

GR_Parameter_X          = r37
GR_Parameter_Y          = r38
GR_Parameter_RESULT     = r39
GR_Parameter_TAG        = r40



FR_X                    = f10
FR_Y                    = f1 // tgamma is single argument function
FR_RESULT               = f8

FR_AbsX                 = f9
FR_NormX                = f9
FR_r02                  = f11
FR_AbsXp1               = f12
FR_X2pX                 = f13
FR_1m2X                 = f14
FR_Rq1                  = f14
FR_Xt                   = f15

FR_r                    = f33
FR_OvfBound             = f34
FR_Xmin                 = f35
FR_2                    = f36
FR_Rcp1                 = f36
FR_Rcp3                 = f36
FR_4                    = f37
FR_5                    = f38
FR_6                    = f39
FR_8                    = f40
FR_10                   = f41
FR_12                   = f42
FR_14                   = f43
FR_GAMMA                = f43
FR_05                   = f44

FR_Rq2                  = f45
FR_Rq3                  = f46
FR_Rq4                  = f47
FR_Rq5                  = f48
FR_Rq6                  = f49
FR_Rq7                  = f50
FR_RqLin                = f51

FR_InvAn                = f52

FR_C01                  = f53
FR_A15                  = f53
FR_C11                  = f54
FR_A14                  = f54
FR_C21                  = f55
FR_A13                  = f55
FR_C31                  = f56
FR_A12                  = f56
FR_C41                  = f57
FR_A11                  = f57
FR_C51                  = f58
FR_A10                  = f58
FR_C61                  = f59
FR_A9                   = f59
FR_C71                  = f60
FR_A8                   = f60
FR_C81                  = f61
FR_A7                   = f61
FR_C91                  = f62
FR_A6                   = f62
FR_CA1                  = f63
FR_A5                   = f63
FR_C00                  = f64
FR_A4                   = f64
FR_rs2                  = f64
FR_C10                  = f65
FR_A3                   = f65
FR_rs3                  = f65
FR_C20                  = f66
FR_A2                   = f66
FR_rs4                  = f66
FR_C30                  = f67
FR_A1                   = f67
FR_rs7                  = f67
FR_C40                  = f68
FR_A0                   = f68
FR_rs8                  = f68
FR_C50                  = f69
FR_r2                   = f69
FR_C60                  = f70
FR_r3                   = f70
FR_C70                  = f71
FR_r4                   = f71
FR_C80                  = f72
FR_r7                   = f72
FR_C90                  = f73
FR_r8                   = f73
FR_CA0                  = f74
FR_An                   = f75

FR_S21                  = f76
FR_S19                  = f77
FR_Rcp0                 = f77
FR_Rcp2                 = f77
FR_S17                  = f78
FR_S15                  = f79
FR_S13                  = f80
FR_S11                  = f81
FR_S9                   = f82
FR_S7                   = f83
FR_S5                   = f84
FR_S3                   = f85

FR_iXt                  = f86
FR_rs                   = f87


// Data tables
//==============================================================
RODATA
.align 16

LOCAL_OBJECT_START(tgamma_data)
data8 0x406573FAE561F648 // overflow boundary (171.624376956302739927196)
data8 0x3FDD8B618D5AF8FE // point of local minium (0.461632144968362356785)
//
//[2; 3]
data8 0xEF0E85C9AE40ABE2,0x00004000 // C01
data8 0xCA2049DDB4096DD8,0x00004000 // C11
data8 0x99A203B4DC2D1A8C,0x00004000 // C21
data8 0xBF5D9D9C0C295570,0x00003FFF // C31
data8 0xE8DD037DEB833BAB,0x00003FFD // C41
data8 0xB6AE39A2A36AA03A,0x0000BFFE // C51
data8 0x804960DC2850277B,0x0000C000 // C61
data8 0xD9F3973841C09F80,0x0000C000 // C71
data8 0x9C198A676F8A2239,0x0000C001 // C81
data8 0xC98B7DAE02BE3226,0x0000C001 // C91
data8 0xE9CAF31AC69301BA,0x0000C001 // CA1
data8 0xFBBDD58608A0D172,0x00004000 // C00
data8 0xFDD0316D1E078301,0x00004000 // C10
data8 0x8630B760468C15E4,0x00004001 // C20
data8 0x93EDE20E47D9152E,0x00004001 // C30
data8 0xA86F3A38C77D6B19,0x00004001 // C40
//[16; 17]
data8 0xF87F757F365EE813,0x00004000 // C01
data8 0xECA84FBA92759DA4,0x00004000 // C11
data8 0xD4E0A55E07A8E913,0x00004000 // C21
data8 0xB0EB45E94C8A5F7B,0x00004000 // C31
data8 0x8050D6B4F7C8617D,0x00004000 // C41
data8 0x8471B111AA691E5A,0x00003FFF // C51
data8 0xADAF462AF96585C9,0x0000BFFC // C61
data8 0xD327C7A587A8C32B,0x0000BFFF // C71
data8 0xDEF5192B4CF5E0F1,0x0000C000 // C81
data8 0xBADD64BB205AEF02,0x0000C001 // C91
data8 0x9330A24AA67D6860,0x0000C002 // CA1
data8 0xF57EEAF36D8C47BE,0x00004000 // C00
data8 0x807092E12A251B38,0x00004001 // C10
data8 0x8C458F80DEE7ED1C,0x00004001 // C20
data8 0x9F30C731DC77F1A6,0x00004001 // C30
data8 0xBAC4E7E099C3A373,0x00004001 // C40
//[32; 33]
data8 0xC3059A415F142DEF,0x00004000 // C01
data8 0xB9C1DAC24664587A,0x00004000 // C11
data8 0xA7101D910992FFB2,0x00004000 // C21
data8 0x8A9522B8E4AA0AB4,0x00004000 // C31
data8 0xC76A271E4BA95DCC,0x00003FFF // C41
data8 0xC5D6DE2A38DB7FF2,0x00003FFE // C51
data8 0xDBA42086997818B2,0x0000BFFC // C61
data8 0xB8EDDB1424C1C996,0x0000BFFF // C71
data8 0xBF7372FB45524B5D,0x0000C000 // C81
data8 0xA03DDE759131580A,0x0000C001 // C91
data8 0xFDA6FC4022C1FFE3,0x0000C001 // CA1
data8 0x9759ABF797B2533D,0x00004000 // C00
data8 0x9FA160C6CF18CEC5,0x00004000 // C10
data8 0xB0EFF1E3530E0FCD,0x00004000 // C20
data8 0xCCD60D5C470165D1,0x00004000 // C30
data8 0xF5E53F6307B0B1C1,0x00004000 // C40
//[48; 49]
data8 0xAABE577FBCE37F5E,0x00004000 // C01
data8 0xA274CAEEB5DF7172,0x00004000 // C11
data8 0x91B90B6646C1B924,0x00004000 // C21
data8 0xF06718519CA256D9,0x00003FFF // C31
data8 0xAA9EE181C0E30263,0x00003FFF // C41
data8 0xA07BDB5325CB28D2,0x00003FFE // C51
data8 0x86C8B873204F9219,0x0000BFFD // C61
data8 0xB0192C5D3E4787D6,0x0000BFFF // C71
data8 0xB1E0A6263D4C19EF,0x0000C000 // C81
data8 0x93BA32A118EAC9AE,0x0000C001 // C91
data8 0xE942A39CD9BEE887,0x0000C001 // CA1
data8 0xE838B0957B0D3D0D,0x00003FFF // C00
data8 0xF60E0F00074FCF34,0x00003FFF // C10
data8 0x89869936AE00C2A5,0x00004000 // C20
data8 0xA0FE4E8AA611207F,0x00004000 // C30
data8 0xC3B1229CFF1DDAFE,0x00004000 // C40
//[64; 65]
data8 0x9C00DDF75CDC6183,0x00004000 // C01
data8 0x9446AE9C0F6A833E,0x00004000 // C11
data8 0x84ABC5083310B774,0x00004000 // C21
data8 0xD9BA3A0977B1ED83,0x00003FFF // C31
data8 0x989B18C99411D300,0x00003FFF // C41
data8 0x886E66402318CE6F,0x00003FFE // C51
data8 0x99028C2468F18F38,0x0000BFFD // C61
data8 0xAB72D17DCD40CCE1,0x0000BFFF // C71
data8 0xA9D9AC9BE42C2EF9,0x0000C000 // C81
data8 0x8C11D983AA177AD2,0x0000C001 // C91
data8 0xDC779E981C1F0F06,0x0000C001 // CA1
data8 0xC1FD4AC85965E8D6,0x00003FFF // C00
data8 0xCE3D2D909D389EC2,0x00003FFF // C10
data8 0xE7F79980AD06F5D8,0x00003FFF // C20
data8 0x88DD9F73C8680B5D,0x00004000 // C30
data8 0xA7D6CB2CB2D46F9D,0x00004000 // C40
//[80; 81]
data8 0x91C7FF4E993430D0,0x00004000 // C01
data8 0x8A6E7AB83E45A7E9,0x00004000 // C11
data8 0xF72D6382E427BEA9,0x00003FFF // C21
data8 0xC9E2E4F9B3B23ED6,0x00003FFF // C31
data8 0x8BEFEF56AE05D775,0x00003FFF // C41
data8 0xEE9666AB6A185560,0x00003FFD // C51
data8 0xA6AFAF5CEFAEE04D,0x0000BFFD // C61
data8 0xA877EAFEF1F9C880,0x0000BFFF // C71
data8 0xA45BD433048ECA15,0x0000C000 // C81
data8 0x86BD1636B774CC2E,0x0000C001 // C91
data8 0xD3721BE006E10823,0x0000C001 // CA1
data8 0xA97EFABA91854208,0x00003FFF // C00
data8 0xB4AF0AEBB3F97737,0x00003FFF // C10
data8 0xCC38241936851B0B,0x00003FFF // C20
data8 0xF282A6261006EA84,0x00003FFF // C30
data8 0x95B8E9DB1BD45BAF,0x00004000 // C40
//[96; 97]
data8 0x8A1FA3171B35A106,0x00004000 // C01
data8 0x830D5B8843890F21,0x00004000 // C11
data8 0xE98B0F1616677A23,0x00003FFF // C21
data8 0xBDF8347F5F67D4EC,0x00003FFF // C31
data8 0x825F15DE34EC055D,0x00003FFF // C41
data8 0xD4846186B8AAC7BE,0x00003FFD // C51
data8 0xB161093AB14919B1,0x0000BFFD // C61
data8 0xA65758EEA4800EF4,0x0000BFFF // C71
data8 0xA046B67536FA329C,0x0000C000 // C81
data8 0x82BBEC1BCB9E9068,0x0000C001 // C91
data8 0xCC9DE2B23BA91B0B,0x0000C001 // CA1
data8 0x983B16148AF77F94,0x00003FFF // C00
data8 0xA2A4D8EE90FEE5DD,0x00003FFF // C10
data8 0xB89446FA37FF481C,0x00003FFF // C20
data8 0xDC5572648485FB01,0x00003FFF // C30
data8 0x88CD5D7DB976129A,0x00004000 // C40
//[112; 113]
data8 0x8417098FD62AC5E3,0x00004000 // C01
data8 0xFA7896486B779CBB,0x00003FFF // C11
data8 0xDEC98B14AF5EEBD1,0x00003FFF // C21
data8 0xB48E153C6BF0B5A3,0x00003FFF // C31
data8 0xF597B038BC957582,0x00003FFE // C41
data8 0xBFC6F0884A415694,0x00003FFD // C51
data8 0xBA075A1392BDB5E5,0x0000BFFD // C61
data8 0xA4B79E01B44C7DB4,0x0000BFFF // C71
data8 0x9D12FA7711BFAB0F,0x0000C000 // C81
data8 0xFF24C47C8E108AB4,0x0000C000 // C91
data8 0xC7325EC86562606A,0x0000C001 // CA1
data8 0x8B47DCD9E1610938,0x00003FFF // C00
data8 0x9518B111B70F88B8,0x00003FFF // C10
data8 0xA9CC197206F68682,0x00003FFF // C20
data8 0xCB98294CC0D7A6A6,0x00003FFF // C30
data8 0xFE09493EA9165181,0x00003FFF // C40
//[128; 129]
data8 0xFE53D03442270D90,0x00003FFF // C01
data8 0xF0F857BAEC1993E4,0x00003FFF // C11
data8 0xD5FF6D70DBBC2FD3,0x00003FFF // C21
data8 0xACDAA5F4988B1074,0x00003FFF // C31
data8 0xE92E069F8AD75B54,0x00003FFE // C41
data8 0xAEBB64645BD94234,0x00003FFD // C51
data8 0xC13746249F39B43C,0x0000BFFD // C61
data8 0xA36B74F5B6297A1F,0x0000BFFF // C71
data8 0x9A77860DF180F6E5,0x0000C000 // C81
data8 0xF9F8457D84410A0C,0x0000C000 // C91
data8 0xC2BF44C649EB8597,0x0000C001 // CA1
data8 0x81225E7489BCDC0E,0x00003FFF // C00
data8 0x8A788A09CE0EED11,0x00003FFF // C10
data8 0x9E2E6F86D1B1D89C,0x00003FFF // C20
data8 0xBE6866B21CF6CCB5,0x00003FFF // C30
data8 0xEE94426EC1486AAE,0x00003FFF // C40
//[144; 145]
data8 0xF6113E09732A6497,0x00003FFF // C01
data8 0xE900D45931B04FC8,0x00003FFF // C11
data8 0xCE9FD58F745EBA5D,0x00003FFF // C21
data8 0xA663A9636C864C86,0x00003FFF // C31
data8 0xDEBF5315896CE629,0x00003FFE // C41
data8 0xA05FEA415EBD7737,0x00003FFD // C51
data8 0xC750F112BD9C4031,0x0000BFFD // C61
data8 0xA2593A35C51C6F6C,0x0000BFFF // C71
data8 0x9848E1DA7FB40C8C,0x0000C000 // C81
data8 0xF59FEE87A5759A4B,0x0000C000 // C91
data8 0xBF00203909E45A1D,0x0000C001 // CA1
data8 0xF1D8E157200127E5,0x00003FFE // C00
data8 0x81DD5397CB08D487,0x00003FFF // C10
data8 0x94C1DC271A8B766F,0x00003FFF // C20
data8 0xB3AFAF9B5D6EDDCF,0x00003FFF // C30
data8 0xE1FB4C57CA81BE1E,0x00003FFF // C40
//[160; 161]
data8 0xEEFFE5122AC72FFD,0x00003FFF // C01
data8 0xE22F70BB52AD54B3,0x00003FFF // C11
data8 0xC84FF021FE993EEA,0x00003FFF // C21
data8 0xA0DA2208EB5B2752,0x00003FFF // C31
data8 0xD5CDD2FCF8AD2DF5,0x00003FFE // C41
data8 0x940BEC6DCD811A59,0x00003FFD // C51
data8 0xCC954EF4FD4EBB81,0x0000BFFD // C61
data8 0xA1712E29A8C04554,0x0000BFFF // C71
data8 0x966B55DFB243521A,0x0000C000 // C81
data8 0xF1E6A2B9CEDD0C4C,0x0000C000 // C91
data8 0xBBC87BCC031012DB,0x0000C001 // CA1
data8 0xE43974E6D2818583,0x00003FFE // C00
data8 0xF5702A516B64C5B7,0x00003FFE // C10
data8 0x8CEBCB1B32E19471,0x00003FFF // C20
data8 0xAAC10F05BB77E0AF,0x00003FFF // C30
data8 0xD776EFCAB205CC58,0x00003FFF // C40
//[176; 177]
data8 0xE8DA614119811E5D,0x00003FFF // C01
data8 0xDC415E0288B223D8,0x00003FFF // C11
data8 0xC2D2243E44EC970E,0x00003FFF // C21
data8 0x9C086664B5307BEA,0x00003FFF // C31
data8 0xCE03D7A08B461156,0x00003FFE // C41
data8 0x894BE3BAAAB66ADC,0x00003FFD // C51
data8 0xD131EDD71A702D4D,0x0000BFFD // C61
data8 0xA0A907CDDBE10898,0x0000BFFF // C71
data8 0x94CC3CD9C765C808,0x0000C000 // C81
data8 0xEEA85F237815FC0D,0x0000C000 // C91
data8 0xB8FA04B023E43F91,0x0000C001 // CA1
data8 0xD8B2C7D9FCBD7EF9,0x00003FFE // C00
data8 0xE9566E93AAE7E38F,0x00003FFE // C10
data8 0x8646E78AABEF0255,0x00003FFF // C20
data8 0xA32AEDB62E304345,0x00003FFF // C30
data8 0xCE83E40280EE7DF0,0x00003FFF // C40
//
//[2; 3]
data8 0xC44FB47E90584083,0x00004001 // C50
data8 0xE863EE77E1C45981,0x00004001 // C60
data8 0x8AC15BE238B9D70E,0x00004002 // C70
data8 0xA5D94B6592350EF4,0x00004002 // C80
data8 0xC379DB3E20A148B3,0x00004002 // C90
data8 0xDACA49B73974F6C9,0x00004002 // CA0
data8 0x810E496A1AFEC895,0x00003FE1 // An
//[16; 17]
data8 0xE17C0357AAF3F817,0x00004001 // C50
data8 0x8BA8804750FBFBFE,0x00004002 // C60
data8 0xB18EAB3CB64BEBEE,0x00004002 // C70
data8 0xE90AB7015AF1C28F,0x00004002 // C80
data8 0xA0AB97CE9E259196,0x00004003 // C90
data8 0xF5E0E0A000C2D720,0x00004003 // CA0
data8 0xD97F0F87EC791954,0x00004005 // An
//[32; 33]
data8 0x980C293F3696040D,0x00004001 // C50
data8 0xC0DBFFBB948A9A4E,0x00004001 // C60
data8 0xFAB54625E9A588A2,0x00004001 // C70
data8 0xA7E08176D6050FBF,0x00004002 // C80
data8 0xEBAAEC4952270A9F,0x00004002 // C90
data8 0xB7479CDAD20550FE,0x00004003 // CA0
data8 0xAACD45931C3FF634,0x00004054 // An
//[48; 49]
data8 0xF5180F0000419AD5,0x00004000 // C50
data8 0x9D507D07BFBB2273,0x00004001 // C60
data8 0xCEB53F7A13A383E3,0x00004001 // C70
data8 0x8BAFEF9E0A49128F,0x00004002 // C80
data8 0xC58EF912D39E228C,0x00004002 // C90
data8 0x9A88118422BA208E,0x00004003 // CA0
data8 0xBD6C0E2477EC12CB,0x000040AC // An
//[64; 65]
data8 0xD410AC48BF7748DA,0x00004000 // C50
data8 0x89399B90AFEBD931,0x00004001 // C60
data8 0xB596DF8F77EB8560,0x00004001 // C70
data8 0xF6D9445A047FB4A6,0x00004001 // C80
data8 0xAF52F0DD65221357,0x00004002 // C90
data8 0x8989B45BFC881989,0x00004003 // CA0
data8 0xB7FCAE86E6E10D5A,0x0000410B // An
//[80; 81]
data8 0xBE759740E3B5AA84,0x00004000 // C50
data8 0xF8037B1B07D27609,0x00004000 // C60
data8 0xA4F6F6C7F0977D4F,0x00004001 // C70
data8 0xE131960233BF02C4,0x00004001 // C80
data8 0xA06DF43D3922BBE2,0x00004002 // C90
data8 0xFC266AB27255A360,0x00004002 // CA0
data8 0xD9F4B012EDAFEF2F,0x0000416F // An
//[96; 97]
data8 0xAEFC84CDA8E1EAA6,0x00004000 // C50
data8 0xE5009110DB5F3C8A,0x00004000 // C60
data8 0x98F5F48738E7B232,0x00004001 // C70
data8 0xD17EE64E21FFDC6B,0x00004001 // C80
data8 0x9596F7A7E36145CC,0x00004002 // C90
data8 0xEB64DBE50E125CAF,0x00004002 // CA0
data8 0xA090530D79E32D2E,0x000041D8 // An
//[112; 113]
data8 0xA33AEA22A16B2655,0x00004000 // C50
data8 0xD682B93BD7D7945C,0x00004000 // C60
data8 0x8FC854C6E6E30CC3,0x00004001 // C70
data8 0xC5754D828AFFDC7A,0x00004001 // C80
data8 0x8D41216B397139C2,0x00004002 // C90
data8 0xDE78D746848116E5,0x00004002 // CA0
data8 0xB8A297A2DC0630DB,0x00004244 // An
//[128; 129]
data8 0x99EB00F11D95E292,0x00004000 // C50
data8 0xCB005CB911EB779A,0x00004000 // C60
data8 0x8879AA2FDFF3A37A,0x00004001 // C70
data8 0xBBDA538AD40CAC2C,0x00004001 // C80
data8 0x8696D849D311B9DE,0x00004002 // C90
data8 0xD41E1C041481199F,0x00004002 // CA0
data8 0xEBA1A43D34EE61EE,0x000042B3 // An
//[144; 145]
data8 0x924F822578AA9F3D,0x00004000 // C50
data8 0xC193FAF9D3B36960,0x00004000 // C60
data8 0x827AE3A6B68ED0CA,0x00004001 // C70
data8 0xB3F52A27EED23F0B,0x00004001 // C80
data8 0x811A079FB3C94D79,0x00004002 // C90
data8 0xCB94415470B6F8D2,0x00004002 // CA0
data8 0x80A0260DCB3EC9AC,0x00004326 // An
//[160; 161]
data8 0x8BF24091E88B331D,0x00004000 // C50
data8 0xB9ADE01187E65201,0x00004000 // C60
data8 0xFAE4508F6E7625FE,0x00004000 // C70
data8 0xAD516668AD6D7367,0x00004001 // C80
data8 0xF8F5FF171154F637,0x00004001 // C90
data8 0xC461321268990C82,0x00004002 // CA0
data8 0xC3B693F344B0E6FE,0x0000439A // An
//
//[176; 177]
data8 0x868545EB42A258ED,0x00004000 // C50
data8 0xB2EF04ACE8BA0E6E,0x00004000 // C60
data8 0xF247D22C22E69230,0x00004000 // C70
data8 0xA7A1AB93E3981A90,0x00004001 // C80
data8 0xF10951733E2C697F,0x00004001 // C90
data8 0xBE3359BFAD128322,0x00004002 // CA0
data8 0x8000000000000000,0x00003fff
//
//[160; 161] for negatives
data8 0xA76DBD55B2E32D71,0x00003C63 // 1/An
//
// sin(pi*x)/pi
data8 0xBCBC4342112F52A2,0x00003FDE // S21
data8 0xFAFCECB86536F655,0x0000BFE3 // S19
data8 0x87E4C97F9CF09B92,0x00003FE9 // S17
data8 0xEA124C68E704C5CB,0x0000BFED // S15
data8 0x9BA38CFD59C8AA1D,0x00003FF2 // S13
data8 0x99C0B552303D5B21,0x0000BFF6 // S11
//
//[176; 177] for negatives
data8 0xBA5D5869211696FF,0x00003BEC // 1/An
//
// sin(pi*x)/pi
data8 0xD63402E79A853175,0x00003FF9 // S9
data8 0xC354723906DB36BA,0x0000BFFC // S7
data8 0xCFCE5A015E236291,0x00003FFE // S5
data8 0xD28D3312983E9918,0x0000BFFF // S3
//
//
// [1.0;1.25]
data8 0xA405530B067ECD3C,0x0000BFFC // A15
data8 0xF5B5413F95E1C282,0x00003FFD // A14
data8 0xC4DED71C782F76C8,0x0000BFFE // A13
data8 0xECF7DDDFD27C9223,0x00003FFE // A12
data8 0xFB73D31793068463,0x0000BFFE // A11
data8 0xFF173B7E66FD1D61,0x00003FFE // A10
data8 0xFFA5EF3959089E94,0x0000BFFE // A9
data8 0xFF8153BD42E71A4F,0x00003FFE // A8
data8 0xFEF9CAEE2CB5B533,0x0000BFFE // A7
data8 0xFE3F02E5EDB6811E,0x00003FFE // A6
data8 0xFB64074CED2658FB,0x0000BFFE // A5
data8 0xFB52882A095B18A4,0x00003FFE // A4
data8 0xE8508C7990A0DAC0,0x0000BFFE // A3
data8 0xFD32C611D8A881D0,0x00003FFE // A2
data8 0x93C467E37DB0C536,0x0000BFFE // A1
data8 0x8000000000000000,0x00003FFF // A0
//
// [1.25;1.5]
data8 0xD038092400619677,0x0000BFF7 // A15
data8 0xEA6DE925E6EB8C8F,0x00003FF3 // A14
data8 0xC53F83645D4597FC,0x0000BFF7 // A13
data8 0xE366DB2FB27B7ECD,0x00003FF7 // A12
data8 0xAC8FD5E11F6EEAD8,0x0000BFF8 // A11
data8 0xFB14010FB3697785,0x00003FF8 // A10
data8 0xB6F91CB5C371177B,0x0000BFF9 // A9
data8 0x85A262C6F8FEEF71,0x00003FFA // A8
data8 0xC038E6E3261568F9,0x0000BFFA // A7
data8 0x8F4BDE8883232364,0x00003FFB // A6
data8 0xBCFBBD5786537E9A,0x0000BFFB // A5
data8 0xA4C08BAF0A559479,0x00003FFC // A4
data8 0x85D74FA063E81476,0x0000BFFC // A3
data8 0xDB629FB9BBDC1C4E,0x00003FFD // A2
data8 0xF4F8FBC7C0C9D317,0x00003FC6 // A1
data8 0xE2B6E4153A57746C,0x00003FFE // A0
//
// [1.25;1.5]
data8 0x9533F9D3723B448C,0x0000BFF2 // A15
data8 0xF1F75D3C561CBBAF,0x00003FF5 // A14
data8 0xBA55A9A1FC883523,0x0000BFF8 // A13
data8 0xB5D5E9E5104FA995,0x00003FFA // A12
data8 0xFD84F35B70CD9AE2,0x0000BFFB // A11
data8 0x87445235F4688CC5,0x00003FFD // A10
data8 0xE7F236EBFB9F774E,0x0000BFFD // A9
data8 0xA6605F2721F787CE,0x00003FFE // A8
data8 0xCF579312AD7EAD72,0x0000BFFE // A7
data8 0xE96254A2407A5EAC,0x00003FFE // A6
data8 0xF41312A8572ED346,0x0000BFFE // A5
data8 0xF9535027C1B1F795,0x00003FFE // A4
data8 0xE7E82D0C613A8DE4,0x0000BFFE // A3
data8 0xFD23CD9741B460B8,0x00003FFE // A2
data8 0x93C30FD9781DBA88,0x0000BFFE // A1
data8 0xFFFFF1781FDBEE84,0x00003FFE // A0
LOCAL_OBJECT_END(tgamma_data)


//==============================================================
// Code
//==============================================================

.section .text
GLOBAL_LIBM_ENTRY(tgamma)
{ .mfi
      getf.exp      GR_Sign_Exp = f8
      fma.s1        FR_1m2X = f8,f1,f8 // 2x
      addl          GR_ad_Data = @ltoff(tgamma_data), gp
}
{ .mfi
      mov           GR_ExpOf8 = 0x10002 // 8
      fcvt.fx.trunc.s1 FR_iXt = f8 // [x]
      mov           GR_ExpOf05 = 0xFFFE // 0.5
};;
{ .mfi
      getf.sig      GR_Sig = f8
      fma.s1        FR_2 = f1,f1,f1 // 2
      mov           GR_Addr_Mask1 = 0x780
}
{ .mlx
      setf.exp      FR_8 = GR_ExpOf8
      movl          GR_10 = 0x4024000000000000
};;
{ .mfi
      ld8           GR_ad_Data = [GR_ad_Data]
      fcmp.lt.s1    p14,p15 = f8,f0
      tbit.z        p12,p13 = GR_Sign_Exp,0x10 // p13 if x >= 2
}
{ .mlx
      and           GR_Bit2 = 4,GR_Sign_Exp
      movl          GR_12 = 0x4028000000000000
};;
{ .mfi
      setf.d        FR_10 = GR_10
      fma.s1        FR_r02 = f8,f1,f0
      extr.u        GR_Tbl_Offs = GR_Sig,58,6
}
{ .mfi
(p12) mov           GR_Addr_Mask1 = r0
      fma.s1        FR_NormX = f8,f1,f0
      cmp.ne        p8,p0 = GR_Bit2,r0
};;
{ .mfi
(p8)  shladd        GR_Tbl_Offs = GR_Tbl_Offs,4,r0
      fclass.m      p10,p0 =  f8,0x1E7 // Test x for NaTVal, NaN, +/-0, +/-INF
      tbit.nz       p11,p0 = GR_Sign_Exp,1
}
{ .mlx
      add           GR_Addr_Mask2 = GR_Addr_Mask1,GR_Addr_Mask1
      movl          GR_14 = 0x402C000000000000
};;
.pred.rel "mutex",p14,p15
{ .mfi
      setf.d        FR_12 = GR_12
(p14) fma.s1        FR_1m2X = f1,f1,FR_1m2X // RB=1-2|x|
      tbit.nz       p8,p9 = GR_Sign_Exp,0
}
{ .mfi
      ldfpd         FR_OvfBound,FR_Xmin = [GR_ad_Data],16
(p15) fms.s1        FR_1m2X = f1,f1,FR_1m2X // RB=1-2|x|
(p11) shladd        GR_Tbl_Offs = GR_Tbl_Offs,2,r0
};;
.pred.rel "mutex",p9,p8
{ .mfi
      setf.d        FR_14 = GR_14
      fma.s1        FR_4 = FR_2,FR_2,f0
(p8)  and           GR_Tbl_Offs = GR_Tbl_Offs, GR_Addr_Mask1
}
{ .mfi
      setf.exp      FR_05 = GR_ExpOf05
      fma.s1        FR_6 = FR_2,FR_2,FR_2
(p9)  and           GR_Tbl_Offs = GR_Tbl_Offs, GR_Addr_Mask2
};;
.pred.rel "mutex",p9,p8
{ .mfi
(p8)  shladd        GR_ad_Co = GR_Tbl_Offs,1,GR_ad_Data
      fcvt.xf       FR_Xt = FR_iXt // [x]
(p15) tbit.z.unc    p11,p0 = GR_Sign_Exp,0x10 // p11 if 0 < x < 2
}
{ .mfi
(p9)  add           GR_ad_Co = GR_ad_Data,GR_Tbl_Offs
      fma.s1        FR_5 = FR_2,FR_2,f1
(p15) cmp.lt.unc    p7,p6 = GR_ExpOf05,GR_Sign_Exp // p7 if 0 < x < 1
};;
{ .mfi
      add           GR_ad_Ce = 16,GR_ad_Co
(p11) frcpa.s1      FR_Rcp0,p0 = f1,f8
      sub           GR_Tbl_Offs = GR_ad_Co,GR_ad_Data
}
{ .mfb
      ldfe          FR_C01 = [GR_ad_Co],32
(p7)  fms.s1        FR_r02 = FR_r02,f1,f1 
      // jump if x is NaTVal, NaN, +/-0, +/-INF
(p10) br.cond.spnt  tgamma_spec
};;
.pred.rel "mutex",p14,p15
{ .mfi
      ldfe          FR_C11 = [GR_ad_Ce],32
(p14) fms.s1        FR_X2pX = f8,f8,f8 // RA=x^2+|x|
      shr           GR_Tbl_Ind = GR_Tbl_Offs,8
}
{ .mfb
      ldfe          FR_C21 = [GR_ad_Co],32
(p15) fma.s1        FR_X2pX = f8,f8,f8 // RA=x^2+x
      // jump if 0 < x < 2
(p11) br.cond.spnt  tgamma_from_0_to_2
};;
{ .mfi
      ldfe          FR_C31 = [GR_ad_Ce],32
      fma.s1        FR_Rq2 = FR_2,f1,FR_1m2X  // 2 + B
      cmp.ltu       p7,p0=0xB,GR_Tbl_Ind
}
{ .mfb
      ldfe          FR_C41 = [GR_ad_Co],32
      fma.s1        FR_Rq3 = FR_2,FR_2,FR_1m2X  // 4 + B
      // jump if GR_Tbl_Ind > 11, i.e |x| is more than 192
(p7)  br.cond.spnt  tgamma_spec_res
};;
{ .mfi
      ldfe          FR_C51 = [GR_ad_Ce],32
      fma.s1        FR_Rq4 = FR_6,f1,FR_1m2X  // 6 + B
      shr           GR_Tbl_Offs = GR_Tbl_Offs,1
}
{ .mfi
      ldfe          FR_C61 = [GR_ad_Co],32
      fma.s1        FR_Rq5 = FR_4,FR_2,FR_1m2X // 8 + B
      nop.i         0
};;
{ .mfi
      ldfe          FR_C71 = [GR_ad_Ce],32
(p14) fms.s1        FR_r = FR_Xt,f1,f8 // r = |x| - [|x|]
      shr           GR_Tbl_16xInd = GR_Tbl_Offs,3
}
{ .mfi
      ldfe          FR_C81 = [GR_ad_Co],32
(p15) fms.s1        FR_r = f8,f1,FR_Xt // r = x - [x]
      add           GR_ad_Data = 0xC00,GR_ad_Data
};;
{ .mfi
      ldfe          FR_C91 = [GR_ad_Ce],32
      fma.s1        FR_Rq6 = FR_5,FR_2,FR_1m2X  // 10 + B
(p14) mov           GR_0x30033 = 0x30033
}
{ .mfi
      ldfe          FR_CA1 = [GR_ad_Co],32
      fma.s1        FR_Rq7 = FR_6,FR_2,FR_1m2X // 12 + B
      sub           GR_Tbl_Offs = GR_Tbl_Offs,GR_Tbl_16xInd
};;
{ .mfi
      ldfe          FR_C00 = [GR_ad_Ce],32
      fma.s1        FR_Rq1 = FR_Rq1,FR_2,FR_X2pX // (x-1)*(x-2)
(p13) cmp.eq.unc    p8,p0 = r0,GR_Tbl_16xInd // index is 0 i.e. arg from [2;16)
}
{ .mfi
      ldfe          FR_C10 = [GR_ad_Co],32
(p14) fms.s1        FR_AbsX = f0,f0,FR_NormX // absolute value of argument
      add           GR_ad_Co7 = GR_ad_Data,GR_Tbl_Offs
};;
{ .mfi
      ldfe          FR_C20 = [GR_ad_Ce],32
      fma.s1        FR_Rq2 = FR_Rq2,FR_4,FR_X2pX // (x-3)*(x-4)
      add           GR_ad_Ce7 = 16,GR_ad_Co7
}
{ .mfi
      ldfe          FR_C30 = [GR_ad_Co],32
      fma.s1        FR_Rq3 = FR_Rq3,FR_6,FR_X2pX // (x-5)*(x-6)
      nop.i         0 
};;
{ .mfi
      ldfe          FR_C40 = [GR_ad_Ce],32
      fma.s1        FR_Rq4 = FR_Rq4,FR_8,FR_X2pX // (x-7)*(x-8)
(p14) cmp.leu.unc   p7,p0 = GR_0x30033,GR_Sign_Exp
}
{ .mfb
      ldfe          FR_C50 = [GR_ad_Co7],32
      fma.s1        FR_Rq5 = FR_Rq5,FR_10,FR_X2pX // (x-9)*(x-10)
      // jump if x is less or equal to -2^52, i.e. x is big negative integer
(p7)  br.cond.spnt  tgamma_singularity
};;
{ .mfi
      ldfe          FR_C60 = [GR_ad_Ce7],32
      fma.s1        FR_C01 = FR_C01,f1,FR_r
      add           GR_ad_Ce = 0x560,GR_ad_Data
}
{ .mfi
      ldfe          FR_C70 = [GR_ad_Co7],32
      fma.s1        FR_rs = f0,f0,FR_r // reduced arg for sin(pi*x)  
      add           GR_ad_Co = 0x550,GR_ad_Data
};;
{ .mfi
      ldfe          FR_C80 = [GR_ad_Ce7],32
      fma.s1        FR_C11 = FR_C11,f1,FR_r
      nop.i         0
}
{ .mfi
      ldfe          FR_C90 = [GR_ad_Co7],32
      fma.s1        FR_C21 = FR_C21,f1,FR_r
      nop.i         0
};;
.pred.rel "mutex",p12,p13
{ .mfi
(p13) getf.sig      GR_iSig = FR_iXt
      fcmp.lt.s1    p11,p0 = FR_05,FR_r
      mov           GR_185 = 185
}
{ .mfi
      nop.m         0
      fma.s1        FR_Rq6 = FR_Rq6,FR_12,FR_X2pX // (x-11)*(x-12)
      nop.i         0
};;
{ .mfi
      ldfe          FR_CA0 = [GR_ad_Ce7],32
      fma.s1        FR_C31 = FR_C31,f1,FR_r
(p12) mov           GR_iSig = 0
}
{ .mfi
      ldfe          FR_An = [GR_ad_Co7],0x80
      fma.s1        FR_C41 = FR_C41,f1,FR_r
      nop.i         0
};;
{ .mfi
(p14) getf.sig      GR_Sig = FR_r
      fma.s1        FR_C51 = FR_C51,f1,FR_r
(p14) sub           GR_iSig = r0,GR_iSig
}
{ .mfi
      ldfe          FR_S21 = [GR_ad_Co],32
      fma.s1        FR_C61 = FR_C61,f1,FR_r
      nop.i         0
};;
{ .mfi
      ldfe          FR_S19 = [GR_ad_Ce],32
      fma.s1        FR_C71 = FR_C71,f1,FR_r
      and           GR_SigRqLin = 0xF,GR_iSig
}
{ .mfi
      ldfe          FR_S17 = [GR_ad_Co],32
      fma.s1        FR_C81 = FR_C81,f1,FR_r
      mov           GR_2 = 2
};;
{ .mfi
(p14) ldfe          FR_InvAn = [GR_ad_Co7]
      fma.s1        FR_C91 = FR_C91,f1,FR_r
      // if significand of r is 0 tnan argument is negative integer
(p14) cmp.eq.unc    p12,p0 = r0,GR_Sig
}
{ .mfb
(p8)  sub           GR_SigRqLin = GR_SigRqLin,GR_2 // subtract 2 if 2 <= x < 16
      fma.s1        FR_CA1 = FR_CA1,f1,FR_r
      // jump if x is negative integer such that -2^52 < x < -185
(p12) br.cond.spnt  tgamma_singularity
};;
{ .mfi
      setf.sig      FR_Xt = GR_SigRqLin
(p11) fms.s1        FR_rs = f1,f1,FR_r
(p14) cmp.ltu.unc   p7,p0 = GR_185,GR_iSig
}
{ .mfb
      ldfe          FR_S15 = [GR_ad_Ce],32
      fma.s1        FR_Rq7 = FR_Rq7,FR_14,FR_X2pX // (x-13)*(x-14)
      // jump if x is noninteger such that -2^52 < x < -185
(p7)  br.cond.spnt  tgamma_underflow
};;
{ .mfi
      ldfe          FR_S13 = [GR_ad_Co],48
      fma.s1        FR_C01 = FR_C01,FR_r,FR_C00
      and           GR_Sig2 = 0xE,GR_SigRqLin
}
{ .mfi
      ldfe          FR_S11 = [GR_ad_Ce],48
      fma.s1        FR_C11 = FR_C11,FR_r,FR_C10
      nop.i         0
};;
{ .mfi
      ldfe          FR_S9 = [GR_ad_Co],32
      fma.s1        FR_C21 = FR_C21,FR_r,FR_C20
      // should we mul by polynomial of recursion?
      cmp.eq        p13,p12 = r0,GR_SigRqLin
}
{ .mfi
      ldfe          FR_S7 = [GR_ad_Ce],32
      fma.s1        FR_C31 = FR_C31,FR_r,FR_C30
      nop.i         0
};;
{ .mfi
      ldfe          FR_S5 = [GR_ad_Co],32
      fma.s1        FR_C41 = FR_C41,FR_r,FR_C40
      nop.i         0
}
{ .mfi
      ldfe          FR_S3 = [GR_ad_Ce],32
      fma.s1        FR_C51 = FR_C51,FR_r,FR_C50
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_C61 = FR_C61,FR_r,FR_C60
      nop.i         0
}
{ .mfi
      nop.m         0
      fma.s1        FR_C71 = FR_C71,FR_r,FR_C70
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_C81 = FR_C81,FR_r,FR_C80
      nop.i         0
}
{ .mfi
      nop.m         0
      fma.s1        FR_C91 = FR_C91,FR_r,FR_C90
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_CA1 = FR_CA1,FR_r,FR_CA0
      nop.i         0
}
{ .mfi
      nop.m         0 
      fma.s1        FR_C01 = FR_C01,FR_C11,f0
      nop.i         0
};;
{ .mfi
      nop.m         0 
      fma.s1        FR_C21 = FR_C21,FR_C31,f0
      nop.i         0
}
{ .mfi
      nop.m         0
      fma.s1        FR_rs2 = FR_rs,FR_rs,f0
(p12) cmp.lt.unc    p7,p0 = 2,GR_Sig2 // should mul by FR_Rq2?
};;
{ .mfi
      nop.m         0 
      fma.s1        FR_C41 = FR_C41,FR_C51,f0
      nop.i         0 
}
{ .mfi
      nop.m         0
(p7)  fma.s1        FR_Rq1 = FR_Rq1,FR_Rq2,f0
(p12) cmp.lt.unc    p9,p0 = 6,GR_Sig2 // should mul by FR_Rq4?
};;
{ .mfi
      nop.m         0 
      fma.s1        FR_C61 = FR_C61,FR_C71,f0
(p15) cmp.eq        p11,p0 = r0,r0
}
{ .mfi
      nop.m         0
(p9)  fma.s1        FR_Rq3 = FR_Rq3,FR_Rq4,f0
(p12) cmp.lt.unc    p8,p0 = 10,GR_Sig2 // should mul by FR_Rq6?
};;
{ .mfi
      nop.m         0 
      fma.s1        FR_C81 = FR_C81,FR_C91,f0
      nop.i         0
}
{ .mfi
      nop.m         0
(p8)  fma.s1        FR_Rq5 = FR_Rq5,FR_Rq6,f0
(p14) cmp.ltu       p0,p11 = 0x9,GR_Tbl_Ind
};;
{ .mfi
      nop.m         0 
      fcvt.xf       FR_RqLin = FR_Xt  
      nop.i         0
}
{ .mfi
      nop.m         0
(p11) fma.s1        FR_CA1 = FR_CA1,FR_An,f0
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_S21 = FR_S21,FR_rs2,FR_S19
      nop.i         0
}
{ .mfi
      nop.m         0
      fma.s1        FR_S17 = FR_S17,FR_rs2,FR_S15
      nop.i         0
};;
{ .mfi
      nop.m         0 
      fma.s1        FR_C01 = FR_C01,FR_C21,f0
      nop.i         0
}
{ .mfi
      nop.m         0 
      fma.s1        FR_rs4 = FR_rs2,FR_rs2,f0
(p12) cmp.lt.unc    p8,p0 = 4,GR_Sig2 // should mul by FR_Rq3?
};;
{ .mfi
      nop.m         0
(p8)  fma.s1        FR_Rq1 = FR_Rq1,FR_Rq3,f0
      nop.i         0
}
{ .mfi
      nop.m         0
      fma.s1        FR_S13 = FR_S13,FR_rs2,FR_S11
(p12) cmp.lt.unc    p9,p0 = 12,GR_Sig2 // should mul by FR_Rq7?
};;
{ .mfi
      nop.m         0 
      fma.s1        FR_C41 = FR_C41,FR_C61,f0
      nop.i         0
}
{ .mfi
      nop.m         0 
(p9)  fma.s1        FR_Rq5 = FR_Rq5,FR_Rq7,f0
      nop.i         0 
};;
{ .mfi
      nop.m         0 
      fma.s1        FR_C81 = FR_C81,FR_CA1,f0
      nop.i         0 
}
{ .mfi
      nop.m         0
      fma.s1        FR_S9 = FR_S9,FR_rs2,FR_S7
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_S5 = FR_S5,FR_rs2,FR_S3
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_rs3 = FR_rs2,FR_rs,f0
(p12) tbit.nz.unc   p6,p0 = GR_SigRqLin,0
}
{ .mfi
      nop.m         0
      fma.s1        FR_rs8 = FR_rs4,FR_rs4,f0
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_S21 = FR_S21,FR_rs4,FR_S17
      mov           GR_ExpOf1 = 0x2FFFF
}
{ .mfi
      nop.m         0 
(p6)  fms.s1        FR_RqLin = FR_AbsX,f1,FR_RqLin
(p12) cmp.lt.unc    p8,p0 = 8,GR_Sig2 // should mul by FR_Rq5?
};;
{ .mfi
      nop.m         0 
      fma.s1        FR_C01 = FR_C01,FR_C41,f0
      nop.i         0
}
{ .mfi
      nop.m         0
(p8)  fma.s1        FR_Rq1 = FR_Rq1,FR_Rq5,f0
(p14) cmp.gtu.unc   p7,p0 = GR_Sign_Exp,GR_ExpOf1
};;
{ .mfi
      nop.m         0
      fma.s1        FR_S13 = FR_S13,FR_rs4,FR_S9
      nop.i         0
}
{ .mfi
      nop.m         0
(p7)  fma.s1        FR_C81 = FR_C81,FR_AbsX,f0
      nop.i         0
};;
{ .mfi
      nop.m         0
(p14) fma.s1        FR_AbsXp1 = f1,f1,FR_AbsX // |x|+1
      nop.i         0
}
{ .mfi
      nop.m         0
(p15) fcmp.lt.unc.s1 p0,p10 = FR_AbsX,FR_OvfBound // x >= overflow_boundary 
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_rs7 = FR_rs4,FR_rs3,f0
      nop.i         0
}
{ .mfi
      nop.m         0
      fma.s1        FR_S5 = FR_S5,FR_rs3,FR_rs
      nop.i         0
};;
{ .mib
(p14) cmp.lt        p13,p0 = r0,r0 // set p13 to 0 if x < 0
(p12) cmp.eq.unc    p8,p9 = 1,GR_SigRqLin
(p10) br.cond.spnt  tgamma_spec_res
};;
{ .mfi
      getf.sig      GR_Sig = FR_iXt
(p6)  fma.s1        FR_Rq1 = FR_Rq1,FR_RqLin,f0
      // should we mul by polynomial of recursion?
(p15) cmp.eq.unc    p0,p11 = r0,GR_SigRqLin
}
{ .mfb
      nop.m         0 
      fma.s1        FR_GAMMA = FR_C01,FR_C81,f0
(p11) br.cond.spnt  tgamma_positives
};;
{ .mfi
      nop.m         0
      fma.s1        FR_S21 = FR_S21,FR_rs8,FR_S13
      nop.i         0
}
{ .mfb
      nop.m         0
(p13) fma.d.s0      f8 = FR_C01,FR_C81,f0
(p13) br.ret.spnt   b0
};;
.pred.rel "mutex",p8,p9
{ .mfi
      nop.m         0 
(p9)  fma.s1        FR_GAMMA = FR_GAMMA,FR_Rq1,f0
      tbit.z        p6,p7 = GR_Sig,0 // p6 if sin<0, p7 if sin>0
}
{ .mfi
      nop.m         0 
(p8)  fma.s1        FR_GAMMA = FR_GAMMA,FR_RqLin,f0
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_S21 = FR_S21,FR_rs7,FR_S5
      nop.i         0
};;
.pred.rel "mutex",p6,p7
{ .mfi
      nop.m         0 
(p6)  fnma.s1       FR_GAMMA = FR_GAMMA,FR_S21,f0 
      nop.i         0 
}
{ .mfi
      nop.m         0 
(p7)  fma.s1        FR_GAMMA = FR_GAMMA,FR_S21,f0
      mov           GR_Sig2 = 1
};;
{ .mfi
      nop.m         0
      frcpa.s1      FR_Rcp0,p0 = f1,FR_GAMMA
      cmp.ltu       p13,p0 = GR_Sign_Exp,GR_ExpOf1
};;
// NR method: ineration #1
{ .mfi
(p13) getf.exp      GR_Sign_Exp = FR_AbsX
      fnma.s1       FR_Rcp1 = FR_Rcp0,FR_GAMMA,f1 // t = 1 - r0*x
(p13) shl           GR_Sig2 = GR_Sig2,63
};;
{ .mfi
(p13) getf.sig      GR_Sig = FR_AbsX
      nop.f         0
(p13) mov           GR_NzOvfBound = 0xFBFF
};;
{ .mfi
(p13) cmp.ltu.unc   p8,p0 = GR_Sign_Exp,GR_NzOvfBound // p8 <- overflow
      nop.f         0
(p13) cmp.eq.unc    p9,p0 = GR_Sign_Exp,GR_NzOvfBound
};;
{ .mfb
      nop.m         0
(p13) fma.d.s0      FR_X = f1,f1,f8 // set deno & inexact flags
(p8)  br.cond.spnt  tgamma_ovf_near_0 //tgamma_neg_overflow
};;
{ .mib
      nop.m         0
(p9)  cmp.eq.unc    p8,p0 = GR_Sig,GR_Sig2
(p8)  br.cond.spnt  tgamma_ovf_near_0_boundary //tgamma_neg_overflow
};;
{ .mfi
      nop.m         0
      fma.s1        FR_Rcp1 = FR_Rcp0,FR_Rcp1,FR_Rcp0
      nop.i         0 
};;
// NR method: ineration #2
{ .mfi
      nop.m         0
      fnma.s1       FR_Rcp2 = FR_Rcp1,FR_GAMMA,f1 // t = 1 - r1*x
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_Rcp2 = FR_Rcp1,FR_Rcp2,FR_Rcp1
      nop.i         0
};;
// NR method: ineration #3
{ .mfi
      nop.m         0
      fnma.s1       FR_Rcp3 = FR_Rcp2,FR_GAMMA,f1 // t = 1 - r2*x
      nop.i         0
}
{ .mfi
      nop.m         0
(p13) fma.s1        FR_Rcp2 = FR_Rcp2,FR_AbsXp1,f0
(p14) cmp.ltu       p10,p11 = 0x9,GR_Tbl_Ind
};;
.pred.rel "mutex",p10,p11
{ .mfi
      nop.m         0
(p10) fma.s1        FR_GAMMA = FR_Rcp2,FR_Rcp3,FR_Rcp2
      nop.i         0
}
{ .mfi
      nop.m         0
(p11) fma.d.s0      f8 = FR_Rcp2,FR_Rcp3,FR_Rcp2
      nop.i         0
};;
{ .mfb
      nop.m         0
(p10) fma.d.s0      f8 = FR_GAMMA,FR_InvAn,f0
      br.ret.sptk   b0
};;


// here if x >= 3
//--------------------------------------------------------------------
.align 32
tgamma_positives:
.pred.rel "mutex",p8,p9
{ .mfi
      nop.m         0 
(p9)  fma.d.s0      f8 = FR_GAMMA,FR_Rq1,f0
      nop.i         0
}
{ .mfb
      nop.m         0 
(p8)  fma.d.s0      f8 = FR_GAMMA,FR_RqLin,f0
      br.ret.sptk   b0
};;

// here if 0 < x < 1
//--------------------------------------------------------------------
.align 32
tgamma_from_0_to_2:
{ .mfi
      getf.exp      GR_Sign_Exp = FR_r02
      fms.s1        FR_r = FR_r02,f1,FR_Xmin
      mov           GR_ExpOf025 = 0xFFFD
}
{ .mfi
      add           GR_ad_Co = 0x1200,GR_ad_Data
(p6)  fnma.s1       FR_Rcp1 = FR_Rcp0,FR_NormX,f1  // t = 1 - r0*x
(p6)  mov           GR_Sig2 = 1
};;
{ .mfi
(p6)  getf.sig      GR_Sig = FR_NormX
      nop.f         0 
(p6)  shl           GR_Sig2 = GR_Sig2,63
}
{ .mfi
      add           GR_ad_Ce = 0x1210,GR_ad_Data
      nop.f         0
(p6)  mov           GR_NzOvfBound = 0xFBFF
};;
{ .mfi
      cmp.eq        p8,p0 = GR_Sign_Exp,GR_ExpOf05 // r02 >= 1/2 
      nop.f         0
      cmp.eq        p9,p10 = GR_Sign_Exp,GR_ExpOf025 // r02 >= 1/4 
}
{ .mfi
(p6)  cmp.ltu.unc   p11,p0 = GR_Sign_Exp,GR_NzOvfBound // p11 <- overflow
      nop.f         0
(p6)  cmp.eq.unc    p12,p0 = GR_Sign_Exp,GR_NzOvfBound
};;
.pred.rel "mutex",p8,p9
{ .mfi
(p8)  add           GR_ad_Co = 0x200,GR_ad_Co
(p6)  fma.d.s0      FR_X = f1,f1,f8 // set deno & inexact flags
(p9)  add           GR_ad_Co = 0x100,GR_ad_Co
}
{ .mib
(p8)  add           GR_ad_Ce = 0x200,GR_ad_Ce
(p9)  add           GR_ad_Ce = 0x100,GR_ad_Ce
(p11) br.cond.spnt  tgamma_ovf_near_0 //tgamma_spec_res
};;
{ .mfi
      ldfe          FR_A15 = [GR_ad_Co],32 
      nop.f         0
(p12) cmp.eq.unc    p13,p0 = GR_Sig,GR_Sig2
}
{ .mfb
      ldfe          FR_A14 = [GR_ad_Ce],32 
      nop.f         0
(p13) br.cond.spnt  tgamma_ovf_near_0_boundary //tgamma_spec_res
};;
{ .mfi
      ldfe          FR_A13 = [GR_ad_Co],32 
      nop.f         0
      nop.i         0
}
{ .mfi
      ldfe          FR_A12 = [GR_ad_Ce],32 
      nop.f         0
      nop.i         0
};;
.pred.rel "mutex",p9,p10
{ .mfi
      ldfe          FR_A11 = [GR_ad_Co],32 
(p10) fma.s1        FR_r2 = FR_r02,FR_r02,f0 
      nop.i         0
}
{ .mfi
      ldfe          FR_A10 = [GR_ad_Ce],32 
(p9)  fma.s1        FR_r2 = FR_r,FR_r,f0 
      nop.i         0
};;
{ .mfi
      ldfe          FR_A9 = [GR_ad_Co],32 
(p6)  fma.s1        FR_Rcp1 = FR_Rcp0,FR_Rcp1,FR_Rcp0
      nop.i         0
}
{ .mfi
      ldfe          FR_A8 = [GR_ad_Ce],32 
(p10) fma.s1        FR_r = f0,f0,FR_r02
      nop.i         0
};;
{ .mfi
      ldfe          FR_A7 = [GR_ad_Co],32 
      nop.f         0
      nop.i         0
}
{ .mfi
      ldfe          FR_A6 = [GR_ad_Ce],32 
      nop.f         0 
      nop.i         0
};;
{ .mfi
      ldfe          FR_A5 = [GR_ad_Co],32 
      nop.f         0
      nop.i         0
}
{ .mfi
      ldfe          FR_A4 = [GR_ad_Ce],32 
      nop.f         0
      nop.i         0
};;
{ .mfi
      ldfe          FR_A3 = [GR_ad_Co],32 
      nop.f         0
      nop.i         0
}
{ .mfi
      ldfe          FR_A2 = [GR_ad_Ce],32 
      nop.f         0
      nop.i         0
};;
{ .mfi
      ldfe          FR_A1 = [GR_ad_Co],32 
      fma.s1        FR_r4 = FR_r2,FR_r2,f0 
      nop.i         0
}
{ .mfi
      ldfe          FR_A0 = [GR_ad_Ce],32 
      nop.f         0
      nop.i         0
};;
{ .mfi
      nop.m         0
(p6)  fnma.s1       FR_Rcp2 = FR_Rcp1,FR_NormX,f1 // t = 1 - r1*x
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_A15 = FR_A15,FR_r,FR_A14
      nop.i         0
}
{ .mfi
      nop.m         0
      fma.s1        FR_A11 = FR_A11,FR_r,FR_A10
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_r8 = FR_r4,FR_r4,f0 
      nop.i         0
};;
{ .mfi
      nop.m         0
(p6)  fma.s1        FR_Rcp2 = FR_Rcp1,FR_Rcp2,FR_Rcp1
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_A7 = FR_A7,FR_r,FR_A6
      nop.i         0
}
{ .mfi
      nop.m         0
      fma.s1        FR_A3 = FR_A3,FR_r,FR_A2
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_A15 = FR_A15,FR_r,FR_A13
      nop.i         0
}
{ .mfi
      nop.m         0
      fma.s1        FR_A11 = FR_A11,FR_r,FR_A9
      nop.i         0
};;
{ .mfi
      nop.m         0
(p6)  fnma.s1       FR_Rcp3 = FR_Rcp2,FR_NormX,f1 // t = 1 - r1*x
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_A7 = FR_A7,FR_r,FR_A5
      nop.i         0
}
{ .mfi
      nop.m         0
      fma.s1        FR_A3 = FR_A3,FR_r,FR_A1
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_A15 = FR_A15,FR_r,FR_A12
      nop.i         0
}
{ .mfi
      nop.m         0
      fma.s1        FR_A11 = FR_A11,FR_r,FR_A8
      nop.i         0
};;
{ .mfi
      nop.m         0
(p6)  fma.s1        FR_Rcp3 = FR_Rcp2,FR_Rcp3,FR_Rcp2
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_A7 = FR_A7,FR_r,FR_A4
      nop.i         0
}
{ .mfi
      nop.m         0
      fma.s1        FR_A3 = FR_A3,FR_r,FR_A0
      nop.i         0
};;
{ .mfi
      nop.m         0
      fma.s1        FR_A15 = FR_A15,FR_r4,FR_A11
      nop.i         0
}
{ .mfi
      nop.m         0
      fma.s1        FR_A7 = FR_A7,FR_r4,FR_A3
      nop.i         0
};;
.pred.rel "mutex",p6,p7
{ .mfi
      nop.m         0 
(p6)  fma.s1        FR_A15 = FR_A15,FR_r8,FR_A7
      nop.i         0
}
{ .mfi
      nop.m         0 
(p7)  fma.d.s0      f8 = FR_A15,FR_r8,FR_A7
      nop.i         0
};;
{ .mfb
      nop.m         0 
(p6)  fma.d.s0      f8 = FR_A15,FR_Rcp3,f0
      br.ret.sptk   b0
};;

// overflow
//--------------------------------------------------------------------
.align 32
tgamma_ovf_near_0_boundary:
.pred.rel "mutex",p14,p15
{ .mfi
	  mov           GR_fpsr = ar.fpsr
	  nop.f         0
(p15) mov           r8 = 0x7ff
}
{ .mfi
      nop.m         0
      nop.f         0
(p14) mov           r8 = 0xfff
};;
{ .mfi
	  nop.m         0
	  nop.f         0
	  shl           r8 = r8,52 
};;
{ .mfi
      sub           r8 = r8,r0,1
      nop.f         0
	  extr.u        GR_fpsr = GR_fpsr,10,2 // rounding mode
};;
.pred.rel "mutex",p14,p15
{ .mfi
      // set p8 to 0 in case of overflow and to 1 otherwise
	  // for negative arg: 
	  //    no overflow if rounding mode either Z or +Inf, i.e.
	  //    GR_fpsr > 1
(p14) cmp.lt        p8,p0 = 1,GR_fpsr
      nop.f         0
	  // for positive arg: 
	  //    no overflow if rounding mode either Z or -Inf, i.e.
	  //    (GR_fpsr & 1) == 0
(p15) tbit.z        p0,p8 = GR_fpsr,0
};;
{ .mib
(p8)  setf.d        f8 = r8 // set result to 0x7fefffffffffffff without
                            // OVERFLOW flag raising
      nop.i         0
(p8)  br.ret.sptk   b0
};;
.align 32
tgamma_ovf_near_0:
{ .mfi
      mov           r8 = 0x1FFFE
      nop.f         0  
      nop.i         0
};;
{ .mfi
      setf.exp      f9 = r8
      fmerge.s      FR_X = f8,f8
      mov           GR_TAG = 258 // overflow
};;
.pred.rel "mutex",p14,p15
{ .mfi
      nop.m         0 
(p15) fma.d.s0      f8 = f9,f9,f0 // Set I,O and +INF result
      nop.i         0 
}
{ .mfb
      nop.m         0 
(p14) fnma.d.s0     f8 = f9,f9,f0 // Set I,O and -INF result
      br.cond.sptk  tgamma_libm_err
};;
// overflow or absolute value of x is too big
//--------------------------------------------------------------------
.align 32
tgamma_spec_res:
{ .mfi
      mov           GR_0x30033 = 0x30033
(p14) fcmp.eq.unc.s1 p10,p11 = f8,FR_Xt
(p15) mov           r8 = 0x1FFFE
};;
{ .mfi
(p15) setf.exp      f9 = r8
      nop.f         0
      nop.i         0
};;
{ .mfb
(p11) cmp.ltu.unc   p7,p8 = GR_0x30033,GR_Sign_Exp
      nop.f         0 
(p10) br.cond.spnt  tgamma_singularity
};;
.pred.rel "mutex",p7,p8
{ .mbb
      nop.m         0
(p7)  br.cond.spnt  tgamma_singularity
(p8)  br.cond.spnt  tgamma_underflow
};;
{ .mfi
      nop.m         0
      fmerge.s      FR_X = f8,f8
      mov           GR_TAG = 258 // overflow
}
{ .mfb
      nop.m         0 
(p15) fma.d.s0      f8 = f9,f9,f0 // Set I,O and +INF result
      br.cond.sptk  tgamma_libm_err
};;

// x is negative integer or +/-0
//--------------------------------------------------------------------
.align 32
tgamma_singularity:
{ .mfi
      nop.m         0
      fmerge.s      FR_X = f8,f8
      mov           GR_TAG = 259 // negative
}
{ .mfb
      nop.m         0
      frcpa.s0      f8,p0 = f0,f0
      br.cond.sptk  tgamma_libm_err
};;
// x is negative noninteger with big absolute value
//--------------------------------------------------------------------
.align 32
tgamma_underflow:
{ .mmi
      getf.sig      GR_Sig = FR_iXt
      mov           r11 = 0x00001
      nop.i         0
};;
{ .mfi
      setf.exp      f9 = r11
      nop.f         0
      nop.i         0
};;
{ .mfi
      nop.m         0
      nop.f         0
      tbit.z        p6,p7 = GR_Sig,0
};;
.pred.rel "mutex",p6,p7
{ .mfi
      nop.m         0
(p6)  fms.d.s0      f8 = f9,f9,f9
      nop.i         0
}
{ .mfb
      nop.m         0
(p7)  fma.d.s0      f8 = f9,f9,f9
      br.ret.sptk   b0
};;

//  x for natval, nan, +/-inf or +/-0
//--------------------------------------------------------------------
.align 32
tgamma_spec:
{ .mfi
      nop.m         0
      fclass.m      p6,p0 =  f8,0x1E1 // Test x for natval, nan, +inf
      nop.i         0
};;
{ .mfi
      nop.m         0
      fclass.m      p7,p8 =  f8,0x7 // +/-0
      nop.i         0
};;
{ .mfi
      nop.m         0
      fmerge.s      FR_X = f8,f8
      nop.i         0
}
{ .mfb
      nop.m         0
(p6)  fma.d.s0      f8 = f8,f1,f8
(p6)  br.ret.spnt   b0
};;
.pred.rel "mutex",p7,p8
{ .mfi
(p7)  mov           GR_TAG = 259 // negative
(p7)  frcpa.s0      f8,p0 = f1,f8
      nop.i         0 
}
{ .mib
      nop.m         0
      nop.i         0
(p8)  br.cond.spnt  tgamma_singularity
};;

.align 32
tgamma_libm_err:
{ .mfi
       alloc        r32 = ar.pfs,1,4,4,0
       nop.f        0
       mov          GR_Parameter_TAG = GR_TAG
};;

GLOBAL_LIBM_END(tgamma)

LOCAL_LIBM_ENTRY(__libm_error_region)
.prologue
{ .mfi
        add   GR_Parameter_Y=-32,sp             // Parameter 2 value
        nop.f 0
.save   ar.pfs,GR_SAVE_PFS
        mov  GR_SAVE_PFS=ar.pfs                 // Save ar.pfs 
}
{ .mfi
.fframe 64 
        add sp=-64,sp                           // Create new stack
        nop.f 0
        mov GR_SAVE_GP=gp                       // Save gp
};;
{ .mmi
        stfd [GR_Parameter_Y] = FR_Y,16         // STORE Parameter 2 on stack
        add GR_Parameter_X = 16,sp              // Parameter 1 address
.save   b0, GR_SAVE_B0                      
        mov GR_SAVE_B0=b0                       // Save b0 
};;
.body
{ .mib
        stfd [GR_Parameter_X] = FR_X                  // STORE Parameter 1 on stack 
        add   GR_Parameter_RESULT = 0,GR_Parameter_Y  // Parameter 3 address 
        nop.b 0
}
{ .mib
        stfd [GR_Parameter_Y] = FR_RESULT             // STORE Parameter 3 on stack
        add   GR_Parameter_Y = -16,GR_Parameter_Y  
        br.call.sptk b0=__libm_error_support#         // Call error handling function
};;
{ .mmi
        nop.m 0
        nop.m 0
        add   GR_Parameter_RESULT = 48,sp
};;
{ .mmi
        ldfd  f8 = [GR_Parameter_RESULT]       // Get return result off stack
.restore sp
        add   sp = 64,sp                       // Restore stack pointer
        mov   b0 = GR_SAVE_B0                  // Restore return address
};;
{ .mib
        mov   gp = GR_SAVE_GP                  // Restore gp 
        mov   ar.pfs = GR_SAVE_PFS             // Restore ar.pfs
        br.ret.sptk     b0                     // Return
};; 

LOCAL_LIBM_END(__libm_error_region)
.type   __libm_error_support#,@function
.global __libm_error_support#

