diff options
| author | Charles Forsyth <charles.forsyth@gmail.com> | 2015-07-18 15:12:39 +0100 |
|---|---|---|
| committer | Charles Forsyth <charles.forsyth@gmail.com> | 2015-07-18 15:12:39 +0100 |
| commit | affd7f7e42c3e4a2015d3d97250f5d780a5e2b11 (patch) | |
| tree | 5b095296178c5645fe5502844f0d3485f1f97435 /libmath/FPcontrol-Hp.c | |
| parent | 04d2181bc05242c53f5fd4cb782191bafe53ded1 (diff) | |
remove obsolete HP support
Diffstat (limited to 'libmath/FPcontrol-Hp.c')
| -rw-r--r-- | libmath/FPcontrol-Hp.c | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/libmath/FPcontrol-Hp.c b/libmath/FPcontrol-Hp.c deleted file mode 100644 index 34be3dd9..00000000 --- a/libmath/FPcontrol-Hp.c +++ /dev/null @@ -1,103 +0,0 @@ -#include <math.h> -#include "lib9.h" -#include "mathi.h" - -void -FPinit(void) -{ - fpsetdefaults(); -} - -ulong -getFPstatus(void) -{ - ulong fsr = 0; - fp_except fsr9=fpgetsticky(); - if(fsr9&FP_X_IMP) fsr |= INEX; - if(fsr9&FP_X_OFL) fsr |= OVFL; - if(fsr9&FP_X_UFL) fsr |= UNFL; - if(fsr9&FP_X_DZ) fsr |= ZDIV; - if(fsr9&FP_X_INV) fsr |= INVAL; - return fsr; -} - -ulong -FPstatus(ulong fsr, ulong mask) -{ - ulong fsr9 = 0; - ulong old = getFPstatus(); - fsr = (fsr&mask) | (old&~mask); - if(fsr&INEX) fsr9 |= FP_X_IMP; - if(fsr&OVFL) fsr9 |= FP_X_OFL; - if(fsr&UNFL) fsr9 |= FP_X_UFL; - if(fsr&ZDIV) fsr9 |= FP_X_DZ; - if(fsr&INVAL) fsr9 |= FP_X_INV; - fpsetmask(fsr9); - return(old&mask); -} - -ulong -getFPcontrol(void) -{ - ulong fcr = 0; - fp_except fpc = fpgetmask(); - fp_rnd fpround = fpgetround(); - - if(fpc&FP_X_INV) - fcr|=INVAL; - if(fpc&FP_X_DZ) - fcr|=ZDIV; - if(fpc&FP_X_OFL) - fcr|=OVFL; - if(fpc&FP_X_UFL) - fcr|=UNFL; - if(fpc&FP_X_IMP) - fcr|=INEX; - switch(fpround){ - case FP_RZ: - fcr|=RND_Z; - break; - case FP_RN: - fcr|=RND_NINF; - break; - case FP_RP: - fcr|=RND_PINF; - break; - case FP_RM: - fcr|=RND_NR; - } - return fcr; -} -ulong -FPcontrol(ulong fcr, ulong mask) -{ - fp_except fc; - fp_rnd round; - ulong old = getFPcontrol(); - ulong changed = mask&(fcr^old); - fcr = (fcr&mask) | (old&~mask); - - if(fcr&INEX) fc |= FP_X_IMP; - if(fcr&OVFL) fc |= FP_X_OFL; - if(fcr&UNFL) fc |= FP_X_UFL; - if(fcr&ZDIV) fc |= FP_X_DZ; - if(fcr&INVAL) fc |= FP_X_INV; - - switch(fcr&RND_MASK){ - case RND_NR: round |= FP_RM; break; - case RND_NINF: round |= FP_RN; break; - case RND_PINF: round |= FP_RP; break; - case RND_Z: round |= FP_RZ; break; - } - - fpsetround(round); - fpsetmask(fc); - return(old&mask); -} - -FPsave(fp_control *fpu) { - *fpu= fpgetcontrol(); -} -FPrestore(fp_control *fpu) { - fpsetcontrol(*fpu); -} |
