EHS/src/HRNG_MSVC.asm
Karutoh bcd71cf2b5
All checks were successful
Build & Release / Windows-AMD64-Build (push) Successful in 1m8s
Build & Release / Linux-AMD64-Build (push) Successful in 1m30s
Build & Release / Linux-AARCH64-Build (push) Successful in 3m21s
Adjusted workflow.
2024-02-05 22:25:30 -08:00

169 lines
3.4 KiB
NASM

global ?GenerateSeed_u64@HRNG@ehs@@SA_KXZ
global ?Generate_u64@HRNG@ehs@@SA_K_K0@Z
global ?Generate_u64@HRNG@ehs@@SA_KXZ
global ?GenerateSeed_s64@HRNG@ehs@@SA_JXZ
global ?Generate_s64@HRNG@ehs@@SA_J_J0@Z
global ?Generate_s64@HRNG@ehs@@SA_JXZ
global ?GenerateSeed_u32@HRNG@ehs@@SAIXZ
global ?Generate_u32@HRNG@ehs@@SAIII@Z
global ?Generate_u32@HRNG@ehs@@SAIXZ
global ?GenerateSeed_s32@HRNG@ehs@@SAHXZ
global ?Generate_s32@HRNG@ehs@@SAHHH@Z
global ?Generate_s32@HRNG@ehs@@SAHXZ
global ?GenerateSeed_u16@HRNG@ehs@@SAIXZ
global ?Generate_u16@HRNG@ehs@@SAGGG@Z
global ?Generate_u16@HRNG@ehs@@SAGXZ
global ?GenerateSeed_s16@HRNG@ehs@@SAFXZ
global ?Generate_s16@HRNG@ehs@@SAFFF@Z
global ?Generate_s16@HRNG@ehs@@SAFXZ
global ?GenerateSeed_u8@HRNG@ehs@@SAEXZ
global ?Generate_u8@HRNG@ehs@@SAEEE@Z
global ?Generate_u8@HRNG@ehs@@SAEXZ
global ?GenerateSeed_s8@HRNG@ehs@@SACXZ
global ?Generate_s8@HRNG@ehs@@SACCC@Z
global ?Generate_s8@HRNG@ehs@@SACXZ
section .text
?GenerateSeed_u64@HRNG@ehs@@SA_KXZ:
RDSEED RAX
RET
?Generate_u64@HRNG@ehs@@SA_K_K0@Z:
RDRAND RAX
MOV R8, RDX
SUB R8, RCX
XOR RDX, RDX
DIV R8
MOV RAX, RDX
ADD RAX, RCX
RET
?Generate_u64@HRNG@ehs@@SA_KXZ:
RDRAND RAX
RET
?GenerateSeed_s64@HRNG@ehs@@SA_JXZ:
RDSEED RAX
RET
?Generate_s64@HRNG@ehs@@SA_J_J0@Z:
RDRAND RAX
MOV R8, RDX
SUB R8, RCX
XOR RDX, RDX
DIV R8
MOV RAX, RDX
ADD RAX, RCX
RET
?Generate_s64@HRNG@ehs@@SA_JXZ:
RDRAND RAX
RET
?GenerateSeed_u32@HRNG@ehs@@SAIXZ:
RDSEED EAX
RET
?Generate_u32@HRNG@ehs@@SAIII@Z:
RDRAND EAX
MOV R8D, EDX
SUB R8D, ECX
XOR EDX, EDX
DIV R8D
MOV EAX, EDX
ADD EAX, ECX
RET
?Generate_u32@HRNG@ehs@@SAIXZ:
RDRAND EAX
RET
?GenerateSeed_s32@HRNG@ehs@@SAHXZ:
RDSEED EAX
RET
?Generate_s32@HRNG@ehs@@SAHHH@Z:
RDRAND EAX
MOV R8D, EDX
SUB R8D, ECX
XOR EDX, EDX
DIV R8D
MOV EAX, EDX
ADD EAX, ECX
RET
?Generate_s32@HRNG@ehs@@SAHXZ:
RDRAND EAX
RET
?GenerateSeed_u16@HRNG@ehs@@SAIXZ:
RDSEED AX
RET
?Generate_u16@HRNG@ehs@@SAGGG@Z:
RDRAND AX
MOV R8W, DX
SUB R8W, CX
XOR DX, DX
DIV R8W
MOV AX, DX
ADD AX, CX
RET
?Generate_u16@HRNG@ehs@@SAGXZ:
RDRAND AX
RET
?GenerateSeed_s16@HRNG@ehs@@SAFXZ:
RDSEED AX
RET
?Generate_s16@HRNG@ehs@@SAFFF@Z:
RDRAND AX
MOV R8W, DX
SUB R8W, CX
XOR DX, DX
DIV R8W
MOV AX, DX
ADD AX, CX
RET
?Generate_s16@HRNG@ehs@@SAFXZ:
RDRAND AX
RET
?GenerateSeed_u8@HRNG@ehs@@SAEXZ:
RDSEED AX
RET
?Generate_u8@HRNG@ehs@@SAEEE@Z:
RDRAND AX
MOV R8W, DX
SUB R8W, CX
XOR DX, DX
DIV R8W
MOV AX, DX
ADD AX, CX
RET
?Generate_u8@HRNG@ehs@@SAEXZ:
RDRAND AX
RET
?GenerateSeed_s8@HRNG@ehs@@SACXZ:
RDSEED AX
RET
?Generate_s8@HRNG@ehs@@SACCC@Z:
RDRAND AX
MOV R8W, DX
SUB R8W, CX
XOR DX, DX
DIV R8W
MOV AX, DX
ADD AX, CX
RET
?Generate_s8@HRNG@ehs@@SACXZ:
RDRAND AX
RET