0
SMLAWy
명령어를 사용하여 하위 32 비트를 대상 레지스터에 저장하려고합니다. 그러나 설명서에 따르면 SMLAWy
명령어는 48 비트 결과의 상위 32 비트를 대상 레지스터에 저장합니다. 어떻게해야합니까?
Here is the link to the ARM documentationSMLAWy 명령어에서 하위 32 비트를 저장하는 방법은 무엇입니까?
SMLAWy
명령어를 사용하여 하위 32 비트를 대상 레지스터에 저장하려고합니다. 그러나 설명서에 따르면 SMLAWy
명령어는 48 비트 결과의 상위 32 비트를 대상 레지스터에 저장합니다. 어떻게해야합니까?
Here is the link to the ARM documentationSMLAWy 명령어에서 하위 32 비트를 저장하는 방법은 무엇입니까?
이 당신이 원하는 것을 단일 명령이 없지만, 산뜻한 솔루션은 아마 당신이 다음을 수행 할 수 있도록 임시 레지스터에 관련 16 비트 피연산자를 추출 즉 sxth
및 mla
의 조합이 될 것입니다 일반 32x32 곱하기 및 하단 32 비트 누적.
가능한 해결 방법 중 하나이지만 전체 작업을 수행하는 데 필요한 지침 수가 늘어납니다. 'MLA' 명령을 사용하는 대신 다른 방법이 있습니까? –
팩형 하프 워드 피연산자로부터 32x16 곱셈을 구현하고 _lower_32 비트를 누적하는 명령어가 없으므로 no. 곱셈 결과의 최하위 부분을 반환하는 유일한 연산은'mul'과'mla'이며, 32x32 연산입니다. 그러나 알고리즘에 _else_가있는 경우 다른 이유로 16 비트 데이터의 압축을 풀어야하는 경우에도 물건의 순서를 변경하여 곱셈에 활용할 가치가 있습니다. – Notlikethat