VectorCall — 벡터 레지스터 기반 호출 규약

VectorCall — 벡터 레지스터 기반 호출 규약

함수를 호출할 때 실수 파라미터를 스택에 넘기지 않고 CPU의 벡터 레지스터에 실어 보내면 속도를 끌어올릴 수 있어요. 그런 방식을 쓰고 싶을 때 지정하는 게 VectorCall이에요.

출처: VectorCall - Free Pascal Reference

본문

VectorCall 한정자는 컴파일러가 vector call 호출 규약을 쓰도록 지시해요. 이 규약은 MS_ABI_Default 호출 규약의 변형인데, 특정 부동소수점 파라미터를 벡터 레지스터에 넣어 전달해요.

이 한정자는 x86-64 CPU에서만 지원돼요. 32비트나 그 외 아키텍처에서는 쓸 수 없다는 점을 기억해 두세요.

더 알아보기