x64
플랫폼에 대한 Microsoft 호출 규칙이 한 곳으로 좁혀 졌음을 몇 군데 보았습니다. 호출자가 스택을 정리하고 (cdecl
) 스택과 레지스터의 조합으로 매개 변수가 전달됩니다. 정확한 세부 사항은 여기). 필자는 이것이 이것이 OS의 호출 규칙이라면 Windows를 목표로하는 다른 모든 컴파일러 (예 : mingw-w64)도이를 따르는 것으로 가정합니다.x64에서의 전화 규칙
다른 주요 플랫폼 (x64
리눅스 등)에서도이 호출 규칙이 적용됩니까? 아니면 리눅스는 여전히 다중 호출 규칙을 사용하고 있습니까? GCC
또는 Clang
은 x64
리눅스에서 여러 호출 규칙을 허용합니까?
즐거운 날이 막 끝납니다. Microsoft는 __vectorcall 호출 규칙을 추가하고 있습니다. 최대 6 개의 '__m128'값이 SSE2 레지스터를 통해 전달됩니다. –