TempleOSTS_130707.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:45:45 +02:00
1 parent 17b71f1a2d
commit 1343005a29
617 files changed
+14399 -25130

No files matched your search

+124
View File
@@ -1,10 +1,78 @@
asm {
USE64
// ************************************
_MEMSET::
ENTER 0
PUSH RDI
CLD
MOV RDI,U64 SF_ARG1[RBP]
MOV RAX,U64 SF_ARG2[RBP]
MOV RCX,U64 SF_ARG3[RBP]
REP_STOSB
MOV RAX,RDI
POP RDI
LEAVE
RET1 24
// ************************************
_MEMSET_U16::
ENTER 0
PUSH RDI
CLD
MOV RDI,U64 SF_ARG1[RBP]
MOV RAX,U64 SF_ARG2[RBP]
MOV RCX,U64 SF_ARG3[RBP]
REP_STOSW
MOV RAX,RDI
POP RDI
LEAVE
RET1 24
// ************************************
_MEMSET_U32::
ENTER 0
PUSH RDI
CLD
MOV RDI,U64 SF_ARG1[RBP]
MOV RAX,U64 SF_ARG2[RBP]
MOV RCX,U64 SF_ARG3[RBP]
REP_STOSD
MOV RAX,RDI
POP RDI
LEAVE
RET1 24
// ************************************
_MEMSET_U64::
ENTER 0
PUSH RDI
CLD
MOV RDI,U64 SF_ARG1[RBP]
MOV RAX,U64 SF_ARG2[RBP]
MOV RCX,U64 SF_ARG3[RBP]
REP_STOSQ
MOV RAX,RDI
POP RDI
LEAVE
RET1 24
// ************************************
_MEMCPY::
ENTER 0
PUSH RSI
PUSH RDI
CLD
MOV RDI,U64 SF_ARG1[RBP]
MOV RSI,U64 SF_ARG2[RBP]
MOV RCX,U64 SF_ARG3[RBP]
REP_MOVSB
MOV RAX,RDI
POP RDI
POP RSI
LEAVE
RET1 24
// ************************************
_MEMCMP::
ENTER 0
PUSH RSI
PUSH RDI
CLD
MOV RSI,U64 SF_ARG1[RBP]
MOV RDI,U64 SF_ARG2[RBP]
MOV RCX,U64 SF_ARG3[RBP]
@@ -19,6 +87,62 @@ _MEMCMP::
LEAVE
RET1 24
// ************************************
_BEQU::
ENTER 0
XOR RAX,RAX
MOV RDX,U64 SF_ARG3[RBP]
MOV RBX,U64 SF_ARG1[RBP]
MOV RCX,U64 SF_ARG2[RBP]
OR RDX,RDX
JZ @@5
BTS U64 [RBX],RCX
JMP @@10
@@5: BTR U64 [RBX],RCX
@@10: ADC AL,0
LEAVE
RET1 24
// ************************************
_LBEQU::
ENTER 0
XOR RAX,RAX
MOV RDX,U64 SF_ARG3[RBP]
MOV RBX,U64 SF_ARG1[RBP]
MOV RCX,U64 SF_ARG2[RBP]
OR RDX,RDX
JZ @@5
LOCK
BTS U64 [RBX],RCX
JMP @@10
@@5: LOCK
BTR U64 [RBX],RCX
@@10: ADC AL,0
LEAVE
RET1 24
// ************************************
_LIMIT_I64::
ENTER 0
MOV RAX,U64 SF_ARG1[RBP]
MOV RCX,U64 SF_ARG2[RBP]
MOV RDX,U64 SF_ARG3[RBP]
CMP RAX,RCX
CMOVL RAX,RCX
CMP RAX,RDX
CMOVG RAX,RDX
LEAVE
RET1 24
// ************************************
_LIMIT_U64::
ENTER 0
MOV RAX,U64 SF_ARG1[RBP]
MOV RCX,U64 SF_ARG2[RBP]
MOV RDX,U64 SF_ARG3[RBP]
CMP RAX,RCX
CMOVB RAX,RCX
CMP RAX,RDX
CMOVA RAX,RDX
LEAVE
RET1 24
// ************************************
_CALL::
ENTER 0
MOV RAX,U64 SF_ARG1[RBP]