diff options
Diffstat (limited to 'sysdeps/ia64/fpu/s_expm1l.S')
-rw-r--r-- | sysdeps/ia64/fpu/s_expm1l.S | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/sysdeps/ia64/fpu/s_expm1l.S b/sysdeps/ia64/fpu/s_expm1l.S index 069856d244..5f135faf67 100644 --- a/sysdeps/ia64/fpu/s_expm1l.S +++ b/sysdeps/ia64/fpu/s_expm1l.S @@ -49,6 +49,7 @@ // used data8 for long double table values // 03/11/03 Improved accuracy and performance, corrected missing inexact flags // 04/17/03 Eliminated misplaced and unused data label +// 12/15/03 Eliminated call to error support on expm1l underflow // //********************************************************************* // @@ -677,6 +678,7 @@ GLOBAL_IEEE754_ENTRY(expm1l) GLOBAL_IEEE754_END(expm1l) + GLOBAL_IEEE754_ENTRY(expl) // // Set p7 false for exp, p6 true @@ -1287,28 +1289,14 @@ EXP_POSSIBLE_UNDERFLOW: { .mfi nop.m 999 -(p7) fclass.m.unc p12, p0 = FR_ftz, 0x00F // If expm1, FTZ result denorm, zero? - nop.i 999 -} -;; - -{ .mfi - nop.m 999 (p6) fclass.m.unc p11, p0 = FR_ftz, 0x00F // If exp, FTZ result denorm or zero? nop.i 999 } ;; { .mfb -(p12) mov GR_Parameter_TAG = 40 // expm1 underflow - fmerge.s FR_X = f8,f8 // Save x for error call -(p12) br.cond.spnt __libm_error_region // Branch on expm1 underflow -} -;; - -{ .mib (p11) mov GR_Parameter_TAG = 13 // exp underflow - nop.i 999 + fmerge.s FR_X = f8,f8 // Save x for error call (p11) br.cond.spnt __libm_error_region // Branch on exp underflow } ;; @@ -1389,6 +1377,7 @@ EXP_64_UNSUPPORTED: ;; GLOBAL_IEEE754_END(expl) + LOCAL_LIBM_ENTRY(__libm_error_region) .prologue { .mfi |