2013-01-08 2 views
0

가 나는 GCC가 특정 레지스터 (C 또는 C++) 매개 변수를 특정 기능을 배치 할 수 등록? 일부 기본 코드에서 사용할 함수 프로토 타입을 정의하고 싶습니다.이 기본 코드는이 레지스터를 기본으로 사용합니다. 나는 this과 같은 것을 의미하지만 함수 매개 변수 쪽을 의미합니다.bind 함수 매개 변수는

+0

[인라인 어셈블리] (http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html)를 사용할 수 있습니다. –

+0

하지만 그 기능을 호출하기 위해 래퍼를 사용하고 싶지 않습니다. – Orient

답변

1

특정 함수 매개 변수를 지정된 레지스터에 배치하도록 요청할 수 없습니다. 이는 함수 매개 변수가 함수에 전달되는 방식이 아키텍처에 대한 ABI에 의해 정의되기 때문입니다. 예를 들어, x86-64에서 처음 6 (정수) 매개 변수는 %rdi, %rsi, %rdx, %rcx, %r8%r9 레지스터에 전달됩니다.

표시된대로 local register vars을 사용하여 특정 로컬 변수를 레지스터에 할당 한 다음 해당 매개 변수를 해당 로컬 변수에 복사합니다. 이 매개 변수는 해당 레지스터에 복사해야합니다.

그렇다면 왜 이걸 원하니?

관련 문제