summaryrefslogtreecommitdiff
path: root/sysdeps/ia64/fpu/s_expm1l.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ia64/fpu/s_expm1l.S')
-rw-r--r--sysdeps/ia64/fpu/s_expm1l.S19
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