TempleOSCDV4.11.ISO
This commit is contained in:
1 parent
9206246147
commit
93ca216483
662 files changed
+6431
-7369
No files matched your search
@@ -0,0 +1,648 @@
|
||||
asm {
|
||||
//************************************
|
||||
_D3_NORM::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
FLD U64 [RDX]
|
||||
FMUL ST0,ST0
|
||||
FLD U64 8[RDX]
|
||||
FMUL ST0,ST0
|
||||
FADDP ST1,ST0
|
||||
FLD U64 16[RDX]
|
||||
FMUL ST0,ST0
|
||||
FADDP ST1,ST0
|
||||
FSQRT
|
||||
FSTP U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
POP RBP
|
||||
RET1 8
|
||||
//************************************
|
||||
_D3_NORM_SQR::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
FLD U64 [RDX]
|
||||
FMUL ST0,ST0
|
||||
FLD U64 8[RDX]
|
||||
FMUL ST0,ST0
|
||||
FADDP ST1,ST0
|
||||
FLD U64 16[RDX]
|
||||
FMUL ST0,ST0
|
||||
FADDP ST1,ST0
|
||||
FSTP U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
POP RBP
|
||||
RET1 8
|
||||
//************************************
|
||||
_D3_DIST::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
MOV RBX,U64 SF_ARG2[RBP]
|
||||
FLD U64 [RDX]
|
||||
FSUB ST0,U64 [RBX]
|
||||
FMUL ST0,ST0
|
||||
FLD U64 8[RDX]
|
||||
FSUB ST0,U64 8[RBX]
|
||||
FMUL ST0,ST0
|
||||
FADDP ST1,ST0
|
||||
FLD U64 16[RDX]
|
||||
FSUB ST0,U64 16[RBX]
|
||||
FMUL ST0,ST0
|
||||
FADDP ST1,ST0
|
||||
FSQRT
|
||||
FSTP U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
POP RBP
|
||||
RET1 16
|
||||
//************************************
|
||||
_D3_DIST_SQR::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
MOV RBX,U64 SF_ARG2[RBP]
|
||||
FLD U64 [RDX]
|
||||
FSUB ST0,U64 [RBX]
|
||||
FMUL ST0,ST0
|
||||
FLD U64 8[RDX]
|
||||
FSUB ST0,U64 8[RBX]
|
||||
FMUL ST0,ST0
|
||||
FADDP ST1,ST0
|
||||
FLD U64 16[RDX]
|
||||
FSUB ST0,U64 16[RBX]
|
||||
FMUL ST0,ST0
|
||||
FADDP ST1,ST0
|
||||
FSTP U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
POP RBP
|
||||
RET1 16
|
||||
//************************************
|
||||
_D3_CROSS::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
MOV RDX,U64 SF_ARG2[RBP]
|
||||
MOV RBX,U64 SF_ARG3[RBP]
|
||||
|
||||
FLD U64 8[RDX]
|
||||
FMUL ST0,U64 16[RBX]
|
||||
FLD U64 16[RDX]
|
||||
FMUL ST0,U64 8[RBX]
|
||||
FSUBP ST1,ST0
|
||||
FSTP U64 [RAX]
|
||||
|
||||
FLD U64 [RDX]
|
||||
FMUL ST0,U64 16[RBX]
|
||||
FLD U64 16[RDX]
|
||||
FMUL ST0,U64 [RBX]
|
||||
FSUBRP ST1,ST0
|
||||
FSTP U64 8[RAX]
|
||||
|
||||
FLD U64 [RDX]
|
||||
FMUL ST0,U64 8[RBX]
|
||||
FLD U64 8[RDX]
|
||||
FMUL ST0,U64 [RBX]
|
||||
FSUBP ST1,ST0
|
||||
FSTP U64 16[RAX]
|
||||
|
||||
POP RBP
|
||||
RET1 24
|
||||
//************************************
|
||||
_D3_DOT::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
MOV RBX,U64 SF_ARG2[RBP]
|
||||
FLD U64 [RDX]
|
||||
FMUL ST0,U64 [RBX]
|
||||
FLD U64 8[RDX]
|
||||
FMUL ST0,U64 8[RBX]
|
||||
FADDP ST1,ST0
|
||||
FLD U64 16[RDX]
|
||||
FMUL ST0,U64 16[RBX]
|
||||
FADDP ST1,ST0
|
||||
FSTP U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
POP RBP
|
||||
RET1 16
|
||||
//************************************
|
||||
_D3_ADD::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
MOV RDX,U64 SF_ARG2[RBP]
|
||||
MOV RBX,U64 SF_ARG3[RBP]
|
||||
FLD U64 [RDX]
|
||||
FADD ST0,U64 [RBX]
|
||||
FSTP U64 [RAX]
|
||||
FLD U64 8[RDX]
|
||||
FADD ST0,U64 8[RBX]
|
||||
FSTP U64 8[RAX]
|
||||
FLD U64 16[RDX]
|
||||
FADD ST0,U64 16[RBX]
|
||||
FSTP U64 16[RAX]
|
||||
POP RBP
|
||||
RET1 24
|
||||
//************************************
|
||||
_D3_SUB::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
MOV RDX,U64 SF_ARG2[RBP]
|
||||
MOV RBX,U64 SF_ARG3[RBP]
|
||||
FLD U64 [RDX]
|
||||
FSUB ST0,U64 [RBX]
|
||||
FSTP U64 [RAX]
|
||||
FLD U64 8[RDX]
|
||||
FSUB ST0,U64 8[RBX]
|
||||
FSTP U64 8[RAX]
|
||||
FLD U64 16[RDX]
|
||||
FSUB ST0,U64 16[RBX]
|
||||
FSTP U64 16[RAX]
|
||||
POP RBP
|
||||
RET1 24
|
||||
//************************************
|
||||
_D3_MUL::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
MOV RBX,U64 SF_ARG3[RBP]
|
||||
FLD U64 SF_ARG2[RBP]
|
||||
FLD ST0
|
||||
FMUL ST0,U64 [RBX]
|
||||
FSTP U64 [RAX]
|
||||
FLD ST0
|
||||
FMUL ST0,U64 8[RBX]
|
||||
FSTP U64 8[RAX]
|
||||
FMUL ST0,U64 16[RBX]
|
||||
FSTP U64 16[RAX]
|
||||
POP RBP
|
||||
RET1 24
|
||||
//************************************
|
||||
_D3_DIV::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
MOV RBX,U64 SF_ARG2[RBP]
|
||||
FLD U64 SF_ARG3[RBP]
|
||||
FLD ST0
|
||||
FDIVR ST0,U64 [RBX]
|
||||
FSTP U64 [RAX]
|
||||
FLD ST0
|
||||
FDIVR ST0,U64 8[RBX]
|
||||
FSTP U64 8[RAX]
|
||||
FDIVR ST0,U64 16[RBX]
|
||||
FSTP U64 16[RAX]
|
||||
POP RBP
|
||||
RET1 24
|
||||
//************************************
|
||||
_D3_ZERO::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
XOR RDX,RDX
|
||||
MOV U64 [RAX],RDX
|
||||
MOV U64 8[RAX],RDX
|
||||
MOV U64 16[RAX],RDX
|
||||
POP RBP
|
||||
RET1 8
|
||||
//************************************
|
||||
_D3_COPY::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
MOV RBX,U64 SF_ARG2[RBP]
|
||||
MOV RDX,U64 [RBX]
|
||||
MOV U64 [RAX],RDX
|
||||
MOV RDX,U64 8[RBX]
|
||||
MOV U64 8[RAX],RDX
|
||||
MOV RDX,U64 16[RBX]
|
||||
MOV U64 16[RAX],RDX
|
||||
POP RBP
|
||||
RET1 16
|
||||
//************************************
|
||||
_D3_EQU::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
MOV RDX,U64 SF_ARG2[RBP]
|
||||
MOV U64 [RAX],RDX
|
||||
MOV RDX,U64 SF_ARG3[RBP]
|
||||
MOV U64 8[RAX],RDX
|
||||
MOV RDX,U64 SF_ARG4[RBP]
|
||||
MOV U64 16[RAX],RDX
|
||||
POP RBP
|
||||
RET1 32
|
||||
//************************************
|
||||
_D3_ADD_EQU::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
MOV RBX,U64 SF_ARG2[RBP]
|
||||
FLD U64 [RAX]
|
||||
FADD ST0,U64 [RBX]
|
||||
FSTP U64 [RAX]
|
||||
FLD U64 8[RAX]
|
||||
FADD ST0,U64 8[RBX]
|
||||
FSTP U64 8[RAX]
|
||||
FLD U64 16[RAX]
|
||||
FADD ST0,U64 16[RBX]
|
||||
FSTP U64 16[RAX]
|
||||
POP RBP
|
||||
RET1 16
|
||||
//************************************
|
||||
_D3_SUB_EQU::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
MOV RBX,U64 SF_ARG2[RBP]
|
||||
FLD U64 [RAX]
|
||||
FSUB ST0,U64 [RBX]
|
||||
FSTP U64 [RAX]
|
||||
FLD U64 8[RAX]
|
||||
FSUB ST0,U64 8[RBX]
|
||||
FSTP U64 8[RAX]
|
||||
FLD U64 16[RAX]
|
||||
FSUB ST0,U64 16[RBX]
|
||||
FSTP U64 16[RAX]
|
||||
POP RBP
|
||||
RET1 16
|
||||
//************************************
|
||||
_D3_MUL_EQU::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
FLD U64 SF_ARG2[RBP]
|
||||
FLD ST0
|
||||
FMUL ST0,U64 [RAX]
|
||||
FSTP U64 [RAX]
|
||||
FLD ST0
|
||||
FMUL ST0,U64 8[RAX]
|
||||
FSTP U64 8[RAX]
|
||||
FMUL ST0,U64 16[RAX]
|
||||
FSTP U64 16[RAX]
|
||||
POP RBP
|
||||
RET1 16
|
||||
//************************************
|
||||
_D3_DIV_EQU::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
FLD U64 SF_ARG2[RBP]
|
||||
FLD ST0
|
||||
FDIVR ST0,U64 [RAX]
|
||||
FSTP U64 [RAX]
|
||||
FLD ST0
|
||||
FDIVR ST0,U64 8[RAX]
|
||||
FSTP U64 8[RAX]
|
||||
FDIVR ST0,U64 16[RAX]
|
||||
FSTP U64 16[RAX]
|
||||
POP RBP
|
||||
RET1 16
|
||||
//************************************
|
||||
_D3_UNIT::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
FLD U64 [RAX]
|
||||
FMUL ST0,ST0
|
||||
FLD U64 8[RAX]
|
||||
FMUL ST0,ST0
|
||||
FADDP ST1,ST0
|
||||
FLD U64 16[RAX]
|
||||
FMUL ST0,ST0
|
||||
FADDP ST1,ST0
|
||||
FSQRT
|
||||
FST U64 SF_ARG1[RBP]
|
||||
MOV RBX,SF_ARG1[RBP]
|
||||
TEST RBX,RBX
|
||||
JZ @@05
|
||||
FLD ST0
|
||||
FDIVR ST0,U64 [RAX]
|
||||
FSTP U64 [RAX]
|
||||
FLD ST0
|
||||
FDIVR ST0,U64 8[RAX]
|
||||
FSTP U64 8[RAX]
|
||||
FDIVR ST0,U64 16[RAX]
|
||||
FSTP U64 16[RAX]
|
||||
POP RBP
|
||||
RET1 8
|
||||
@@05: FFREE ST0
|
||||
FINCSTP
|
||||
POP RBP
|
||||
RET1 8
|
||||
//************************************
|
||||
_SQR::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
FMUL ST0,ST0
|
||||
FSTP U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
POP RBP
|
||||
RET1 8
|
||||
//************************************
|
||||
_SIGN::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
FTST
|
||||
FSTSW
|
||||
FFREE ST0
|
||||
FINCSTP
|
||||
MOV RDX,RAX
|
||||
XOR RAX,RAX
|
||||
BT RDX,14
|
||||
JC @@05
|
||||
MOV RAX,1.0
|
||||
BT RDX,8
|
||||
JNC @@05
|
||||
MOV RAX,-1.0
|
||||
@@05: POP RBP
|
||||
RET1 8
|
||||
//************************************
|
||||
_ARG::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
FLD U64 SF_ARG2[RBP]
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
@@05: FPATAN
|
||||
FSTSW
|
||||
TEST AX,0x400
|
||||
JNZ @@05
|
||||
FSTP U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
POP RBP
|
||||
RET1 16
|
||||
//************************************
|
||||
_ROUND::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
SUB RSP,8
|
||||
FSTCW U16 -8[RBP]
|
||||
MOV AX,U16 -8[RBP]
|
||||
MOV U16 -6[RBP],AX
|
||||
AND AX,~0x0C00
|
||||
MOV U16 -8[RBP],AX
|
||||
FLDCW U16 -8[RBP]
|
||||
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
FRNDINT
|
||||
FSTP U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
|
||||
FLDCW U16 -6[RBP]
|
||||
LEAVE
|
||||
RET1 8
|
||||
//************************************
|
||||
_TRUNC::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
SUB RSP,8
|
||||
FSTCW U16 -8[RBP]
|
||||
MOV AX,U16 -8[RBP]
|
||||
MOV U16 -6[RBP],AX
|
||||
OR AX,0x0C00
|
||||
MOV U16 -8[RBP],AX
|
||||
FLDCW U16 -8[RBP]
|
||||
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
FRNDINT
|
||||
FSTP U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
|
||||
FLDCW U16 -6[RBP]
|
||||
LEAVE
|
||||
RET1 8
|
||||
//************************************
|
||||
_FLOOR::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
SUB RSP,8
|
||||
FSTCW U16 -8[RBP]
|
||||
MOV AX,U16 -8[RBP]
|
||||
MOV U16 -6[RBP],AX
|
||||
AND AX,~0x0C00
|
||||
OR AX,0x0400
|
||||
MOV U16 -8[RBP],AX
|
||||
FLDCW U16 -8[RBP]
|
||||
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
FRNDINT
|
||||
FSTP U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
|
||||
FLDCW U16 -6[RBP]
|
||||
LEAVE
|
||||
RET1 8
|
||||
//************************************
|
||||
_CEIL::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
SUB RSP,8
|
||||
FSTCW U16 -8[RBP]
|
||||
MOV AX,U16 -8[RBP]
|
||||
MOV U16 -6[RBP],AX
|
||||
AND AX,~0x0C00
|
||||
OR AX,0x0800
|
||||
MOV U16 -8[RBP],AX
|
||||
FLDCW U16 -8[RBP]
|
||||
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
FRNDINT
|
||||
FSTP U64 SF_ARG1[RBP]
|
||||
MOV RAX,SF_ARG1[RBP]
|
||||
|
||||
FLDCW U16 -6[RBP]
|
||||
LEAVE
|
||||
RET1 8
|
||||
//************************************
|
||||
SYS_POW::
|
||||
// RAX=RDX`RAX
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
SUB RSP,24
|
||||
TEST RAX,RAX //To power of zero?
|
||||
JNZ @@05
|
||||
MOV RAX,1.0
|
||||
JMP @@20
|
||||
@@05: TEST RDX,RDX //zero to a power?
|
||||
JNZ @@10
|
||||
XOR RAX,RAX
|
||||
JMP @@20
|
||||
@@10: MOV RCX,RAX //RCX=pow
|
||||
MOV U64 -8[RBP],RDX
|
||||
MOV U64 -16[RBP],RAX
|
||||
FSTCW U16 -24[RBP]
|
||||
MOV AX,U16 -24[RBP]
|
||||
MOV U16 -22[RBP],AX
|
||||
OR AX,0x0C00
|
||||
MOV U16 -24[RBP],AX
|
||||
FLDCW U16 -24[RBP]
|
||||
FLD U64 -16[RBP]
|
||||
FLD U64 -8[RBP]
|
||||
FABS //base should be pos
|
||||
FYL2X // y*log2(x)
|
||||
FST U64 -8[RBP]
|
||||
FRNDINT
|
||||
FLD U64 -8[RBP]
|
||||
FSUBRP ST1,ST0
|
||||
F2XM1
|
||||
FLD1
|
||||
FADDP ST1,ST0
|
||||
FSTP U64 -16[RBP]
|
||||
FLD U64 -8[RBP]
|
||||
FLD U64 -16[RBP]
|
||||
FSCALE // ST0<<ST1
|
||||
TEST RDX,RDX //was base neg?
|
||||
JGE @@15
|
||||
MOV U64 -16[RBP],RCX
|
||||
FLD U64 -16[RBP]
|
||||
FISTTP U64 -16[RBP]
|
||||
TEST U64 -16[RBP],1
|
||||
JZ @@15 //was pow odd?
|
||||
FCHS
|
||||
@@15: FSTP U64 -8[RBP]
|
||||
FFREE ST0
|
||||
FINCSTP
|
||||
FLDCW U16 -22[RBP]
|
||||
MOV RAX,U64 -8[RBP]
|
||||
@@20: LEAVE
|
||||
RET
|
||||
//************************************
|
||||
_POW::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
MOV RAX,U64 SF_ARG2[RBP]
|
||||
MOV RDX,U64 SF_ARG1[RBP]
|
||||
CALL SYS_POW
|
||||
POP RBP
|
||||
RET1 16
|
||||
//************************************
|
||||
_POW10::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
SUB RSP,16
|
||||
FSTCW U16 -8[RBP]
|
||||
MOV AX,U16 -8[RBP]
|
||||
MOV U16 -6[RBP],AX
|
||||
OR AX,0x0C00
|
||||
MOV U16 -8[RBP],AX
|
||||
FLDCW U16 -8[RBP]
|
||||
|
||||
FLDL2T
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
FMULP ST1,ST0
|
||||
FST U64 SF_ARG1[RBP]
|
||||
FRNDINT
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
FSUBRP ST1,ST0
|
||||
F2XM1
|
||||
FLD1
|
||||
FADDP ST1,ST0
|
||||
FSTP U64 -16[RBP]
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
FLD U64 -16[RBP]
|
||||
FSCALE // ST0<<ST1
|
||||
FSTP U64 -16[RBP]
|
||||
FFREE ST0
|
||||
FINCSTP
|
||||
|
||||
FLDCW U16 -6[RBP]
|
||||
MOV RAX,U64 -16[RBP]
|
||||
LEAVE
|
||||
RET1 8
|
||||
//************************************
|
||||
_EXP::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
SUB RSP,16
|
||||
FSTCW U16 -8[RBP]
|
||||
MOV AX,U16 -8[RBP]
|
||||
MOV U16 -6[RBP],AX
|
||||
OR AX,0x0C00
|
||||
MOV U16 -8[RBP],AX
|
||||
FLDCW U16 -8[RBP]
|
||||
|
||||
FLDL2E
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
FMULP ST1,ST0
|
||||
FST U64 SF_ARG1[RBP]
|
||||
FRNDINT
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
FSUBRP ST1,ST0
|
||||
F2XM1
|
||||
FLD1
|
||||
FADDP ST1,ST0
|
||||
FSTP U64 -16[RBP]
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
FLD U64 -16[RBP]
|
||||
FSCALE // ST0<<ST1
|
||||
FSTP U64 -16[RBP]
|
||||
FFREE ST0
|
||||
FINCSTP
|
||||
|
||||
FLDCW U16 -6[RBP]
|
||||
MOV RAX,U64 -16[RBP]
|
||||
LEAVE
|
||||
RET1 8
|
||||
//************************************
|
||||
_LOG10::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
FLDLG2
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
FYL2X // y*log2(x)
|
||||
FSTP U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
POP RBP
|
||||
RET1 8
|
||||
//************************************
|
||||
_LOG2::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
FLD1
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
FYL2X // y*log2(x)
|
||||
FSTP U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
POP RBP
|
||||
RET1 8
|
||||
//************************************
|
||||
_LN::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
FLDLN2
|
||||
FLD U64 SF_ARG1[RBP]
|
||||
FYL2X // y*log2(x)
|
||||
FSTP U64 SF_ARG1[RBP]
|
||||
MOV RAX,U64 SF_ARG1[RBP]
|
||||
POP RBP
|
||||
RET1 8
|
||||
//************************************
|
||||
_FLDCW::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
FLDCW U16 SF_ARG1[RBP]
|
||||
POP RBP
|
||||
RET1 8
|
||||
//************************************
|
||||
_FSTCW::
|
||||
PUSH RBP
|
||||
MOV RBP,RSP
|
||||
SUB RSP,8
|
||||
FSTCW U16 -8[RBP]
|
||||
MOVZX RAX,U16 -8[RBP]
|
||||
LEAVE
|
||||
RET
|
||||
//************************************
|
||||
_FSTSW::
|
||||
XOR RAX,RAX
|
||||
FSTSW
|
||||
RET
|
||||
//************************************
|
||||
_FCLEX::
|
||||
FCLEX
|
||||
RET
|
||||
}
|
||||
Reference in new issue
Block a user