I'm learning how to use masm using MS's official docs, but there's almost nothing written on the option directive (https://learn.microsoft.com/en-us/cpp/assembler/masm/option-masm?view=msvc-170). It was used in the standard library implementation of memcpy where it seems to work properly
my code:
title entry - general purpose testing ground for asm operations
include ksamd64.inc
subttl "entry"
NESTED_ENTRY entry, _TEXT
option PROLOGUE:NONE, EPILOGUE:NONE
; error here: "A2220 Missing .ENDPROLOGUE"
cvtpi2ps xmm0, qword ptr[rcx]
rsqrtps xmm1, xmm0
movaps xmmword ptr[rcx], xmm1
cvtpi2ps xmm0, qword ptr[rcx+8]
rsqrtps xmm1, xmm0
movups xmmword ptr[rcx+8], xmm1
.beginepilog
ret
NESTED_END entry, _TEXT
end
Indeed poorly documented, but is your code not mixing versions/environments?. I have dug up following info from different corners of the web.
About
.ENDPROLOGAbout
NESTED_ENTRYAbout
PROLOG_ENDAbout
ENTRY_ENDYou didn't use
PROLOG_ENDand you wroteNESTED_ENDinstead ofENTRY_END.Why do you use the phrase
option PROLOGUE:NONE, EPILOGUE:NONE? Perhaps simply remove it...