나는 다음과 같은 코드가 작동하는 방법을 이해하기 위해 노력하고있어 :이 코드는 무엇을하려고합니까?
#define M32toX128(x128,m32) __asm__ \
("movddup %1, %0\n\t" \
"movsldup %0, %0" \
: "=&x"(x128) : "m"(m32))
난 단지 기본적인 조립 지식을 가지고. 그것을 사용하고있는 프로그램의 컨텍스트로부터 그리고 주위를 검색하면서, 저는 그것이 32 비트 변수를 복제하고 그 결과를 128 비트 변수에 저장하고 있다는 것을 이해했습니다.
내 질문은 :
%0
및%1
가 무엇을 참조합니까?- 콜론 (
:
)의 기능은 무엇입니까? - 실행되는 실제 어셈블리 코드는 무엇입니까? 교체 후 의미
%n
s,"=&x"(x128)
...