C 인라인 어셈블리의 기본 포인터 레지스터를 사용하여 함수 호출 오버헤드 방지
C 인라인 어셈블리 내에서 기본 포인터 레지스터(%rbp)를 활용하려면 , 이 수정된 코드를 따르세요 snippet:
void Foo(int &x) { int tmp; long tmplong; asm volatile( "lea -16 + %[mem1], %%rbp\n\t" "imul , %%rbp, %q[reg1]\n\t" // Register allocated to tmplong "add %k[reg1], %k[reg1]\n\t" // Register allocated to tmp "movl , %[mem1]\n\t" // Store value in memory pointed to by tmp : [mem1] "=&m"(tmp), [reg1] "=r"(tmplong) : : "%rbp" ); x = 5; }
설명:
추가 참고 사항:
위 내용은 기본 포인터 레지스터를 사용하는 C 인라인 어셈블리는 어떻게 함수 호출 오버헤드를 피할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!