\ NewFloatMgr.2 05.2.27 NAB
\ original 01.4.4 JCF
\ Included by NewFloatMgr.

EXECUTE _d_ulltod
( udd -- dr )
r[ 4>R
dfresult >abs 2>R
[ EXECUTE ]
@dfresult ]r
;

EXECUTE _d_lltod
( dd -- dr )
r[ 4>R
dfresult >abs 2>R
[ EXECUTE ]
@dfresult ]r
;

EXECUTE SF>DF
( sr -- dr )
r[ 2>R
dfresult >abs 2>R
[ EXECUTE ]
@dfresult ]r
;

EXECUTE DF>SF
( dr -- sr )
r[ 4>R
[ EXECUTE ]
d0.l ]r
;

EXECUTE _f_ftoq
( sr -- dr )
r[ 2>R
dfresult >abs 2>R
[ EXECUTE ]
@dfresult ]r
;

EXECUTE _f_qtof
( dr -- sr )
r[ 4>R
[ EXECUTE ]
d0.l ]r
;

EXECUTE _d_dtoq
( dr -- dr )
r[ 4>R
dfresult >abs 2>R
[ EXECUTE ]
@dfresult ]r
;

EXECUTE _d_qtod
( dr -- dr )
r[ 4>R
dfresult >abs 2>R
[ EXECUTE ]
@dfresult ]r
;

EXECUTE _f_ftou
( sr -- ud )
r[ 2>R
[ EXECUTE ]
d0.l ]r
;

EXECUTE SF>D
( sr -- d )
r[ 2>R
[ EXECUTE ]
d0.l ]r
;

EXECUTE _f_ftoull
( sr -- udd )
r[ 2>R
dfresult >abs 2>R
[ EXECUTE ]
@dfresult ]r
;

EXECUTE _f_ftoll
( sr -- dd )
r[ 2>R
dfresult >abs 2>R
[ EXECUTE ]
@dfresult ]r
;

EXECUTE _d_dtou
( dr -- ud )
r[ 4>R
[ EXECUTE ]
d0.l ]r
;

EXECUTE DF>D
( dr -- d )
r[ 4>R
[ EXECUTE ]
d0.l ]r
;

EXECUTE _d_dtoull
( dr -- udd )
r[ 4>R
dfresult >abs 2>R
[ EXECUTE ]
@dfresult ]r
;

EXECUTE _d_dtoll
( dr -- dd )
r[ 4>R
dfresult >abs 2>R
[ EXECUTE ]
@dfresult ]r
;

EXECUTE _f_cmp
( sr sr -- d )
r[ 2>r2>r
[ EXECUTE ]
d0.l ]r
;

EXECUTE _f_cmpe
( sr sr -- d )
r[ 2>r2>r
[ EXECUTE ]
d0.l ]r
;

EXECUTE _f_feq
( sr sr -- d )
r[ 2>r2>r
[ EXECUTE ]
d0.l ]r
; : SF= _f_feq OR 0<> ;

EXECUTE _f_fne
( sr sr -- d )
r[ 2>r2>r
[ EXECUTE ]
d0.l ]r
; : SF<> _f_fne OR 0<> ;

EXECUTE _f_flt
( sr sr -- d )
r[ 2>r2>r
[ EXECUTE ]
d0.l ]r
; : SF< _f_flt OR 0<> ;

EXECUTE _f_fle
( sr sr -- d )
r[ 2>r2>r
[ EXECUTE ]
d0.l ]r
; : SF<= _f_fle OR 0<> ;

EXECUTE _f_fgt
( sr sr -- d )
r[ 2>r2>r
[ EXECUTE ]
d0.l ]r
; : SF> _f_fgt OR 0<> ;

EXECUTE _f_fge
( sr sr -- d )
r[ 2>r2>r
[ EXECUTE ]
d0.l ]r
; : SF>= _f_fge OR 0<> ;

EXECUTE _f_fun
( sr sr -- d )
r[ 2>r2>r
[ EXECUTE ]
d0.l ]r
;

EXECUTE _f_for
( sr sr -- d )
r[ 2>r2>r
[ EXECUTE ]
d0.l ]r
;

EXECUTE _d_cmp
( dr dr -- d )
r[ 4>r4>r
[ EXECUTE ]
d0.l ]r
;

EXECUTE _d_cmpe
( dr dr -- d )
r[ 4>r4>r
[ EXECUTE ]
d0.l ]r
;

EXECUTE _d_feq
( dr dr -- d )
r[ 4>r4>r
[ EXECUTE ]
d0.l ]r
; : DF= _d_feq OR 0<> ;

EXECUTE _d_fne
( dr dr -- d )
r[ 4>r4>r
[ EXECUTE ]
d0.l ]r
; : DF<> _d_fne OR 0<> ;

EXECUTE _d_flt
( dr dr -- d )
r[ 4>r4>r
[ EXECUTE ]
d0.l ]r
; : DF< _d_flt OR 0<> ;

EXECUTE _d_fle
( dr dr -- d )
r[ 4>r4>r
[ EXECUTE ]
d0.l ]r
; : DF<= _d_fle OR 0<> ;

EXECUTE _d_fgt
( dr dr -- d )
r[ 4>r4>r
[ EXECUTE ]
d0.l ]r
; : DF> _d_fgt OR 0<> ;

EXECUTE _d_fge
( dr dr -- d )
r[ 4>r4>r
[ EXECUTE ]
d0.l ]r
; : DF>= _d_fge OR 0<> ;

EXECUTE _d_fun
( dr dr -- d )
r[ 4>r4>r
[ EXECUTE ]
d0.l ]r
;

EXECUTE _d_for
( dr dr -- d )
r[ 4>r4>r
[ EXECUTE ]
d0.l ]r
;

EXECUTE _f_neg
( sr -- sr )
r[ 2>R
[ EXECUTE ]
d0.l ]r
; : SFNEGATE (hex) 8000 XOR ;

EXECUTE SF+
( sr sr -- sr )
r[ 2>r2>r
[ EXECUTE ]
d0.l ]r
;

EXECUTE SF*
( sr sr -- sr )
r[ 2>r2>r
[ EXECUTE ]
d0.l ]r
;

EXECUTE SF-
( sr sr -- sr )
r[ 2>r2>r
[ EXECUTE ]
d0.l ]r
;

EXECUTE SF/
( sr sr -- sr )
r[ 2>r2>r
[ EXECUTE ]
d0.l ]r
;

EXECUTE _d_neg
( dr -- dr )
r[ 4>R
dfresult >abs 2>R
[ EXECUTE ]
@dfresult ]r
; : DFNEGATE (hex) 8000 XOR ;

EXECUTE DF+
( dr dr -- dr )
r[ 4>r4>r
dfresult >abs 2>R
[ EXECUTE ]
@dfresult ]r
;

EXECUTE DF*
( dr dr -- dr )
r[ 4>r4>r
dfresult >abs 2>R
[ EXECUTE ]
@dfresult ]r
;

EXECUTE DF-
( dr dr -- dr )
r[ 4>r4>r
dfresult >abs 2>R
[ EXECUTE ]
@dfresult ]r
;

EXECUTE DF/
( dr dr -- dr )
r[ 4>r4>r
dfresult >abs 2>R
[ EXECUTE ]
@dfresult ]r
;
