88 lines
1.2 KiB
ArmAsm
88 lines
1.2 KiB
ArmAsm
|
#ifdef _NTSDK
|
||
|
#ifdef CRTDLL
|
||
|
.global _HUGE_dll
|
||
|
#else
|
||
|
.global _HUGE
|
||
|
#endif
|
||
|
#else
|
||
|
.global _HUGE
|
||
|
#endif
|
||
|
|
||
|
.sdata
|
||
|
|
||
|
#ifdef _NTSDK
|
||
|
#ifdef CRTDLL
|
||
|
_HUGE_dll:
|
||
|
#else
|
||
|
_HUGE:
|
||
|
#endif
|
||
|
#else
|
||
|
_HUGE:
|
||
|
#endif
|
||
|
|
||
|
data8 0x7ff0000000000000
|
||
|
|
||
|
|
||
|
#include "ksia64.h"
|
||
|
|
||
|
LEAF_ENTRY(_get_fpsr)
|
||
|
|
||
|
mov v0 = ar.fpsr
|
||
|
br.ret.sptk b0
|
||
|
|
||
|
LEAF_EXIT(_get_fpsr)
|
||
|
|
||
|
LEAF_ENTRY(_set_fpsr)
|
||
|
|
||
|
mov ar.fpsr = a0
|
||
|
br.ret.sptk b0
|
||
|
|
||
|
LEAF_EXIT(_get_fpsr)
|
||
|
|
||
|
LEAF_ENTRY(_scale)
|
||
|
|
||
|
ldfe f10 = [a0]
|
||
|
;;
|
||
|
getf.exp r30 = f10
|
||
|
sxt4 a1 = a1
|
||
|
;;
|
||
|
add r30 = a1, r30
|
||
|
;;
|
||
|
setf.exp f10 = r30
|
||
|
;;
|
||
|
stfe [a0] = f10
|
||
|
br.ret.sptk b0
|
||
|
|
||
|
LEAF_EXIT(_scale)
|
||
|
|
||
|
LEAF_ENTRY(_convert_fp80tofp64)
|
||
|
|
||
|
ldfe f10 = [a0]
|
||
|
;;
|
||
|
fnorm.d f10 = f10
|
||
|
;;
|
||
|
stfd [a1] = f10
|
||
|
br.ret.sptk b0
|
||
|
|
||
|
LEAF_EXIT(_convert_fp80tofp64)
|
||
|
|
||
|
LEAF_ENTRY(_convert_fp80tofp32)
|
||
|
|
||
|
ldfe f10 = [a0]
|
||
|
;;
|
||
|
fnorm.s f10 = f10
|
||
|
;;
|
||
|
stfs [a1] = f10
|
||
|
br.ret.sptk b0
|
||
|
|
||
|
LEAF_EXIT(_convert_fp80tofp32)
|
||
|
|
||
|
LEAF_ENTRY(_fclrf)
|
||
|
|
||
|
fclrf.s0
|
||
|
br.ret.sptk b0
|
||
|
|
||
|
LEAF_EXIT(_fclrf)
|
||
|
|
||
|
|