2017-11-17 3 views
-1

I는 다음처럼 보이는 ARM 엄지 2 명령어 스트림이 경우는ARM Thumb2 "IT"명령어는 중첩되어 있습니까?

itt NZ 
mov r1,r2 
it MI 
mov r3,r4 

제 IT 명령의 IT 블록 mov 및 제 it 포함한다. 이 시퀀스가 ​​허용 가능합니까, 아니면 정의되지 않은 동작입니까?

+3

연구 노력이 부족함 : [ARM의 설명서가 명확 해 보인다] (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/Cjabicci.html) * 다음 지침 IT 블록에서 허용되지 않습니다. * 'IT'가 첫 번째 항목입니다. 이것은 나의 첫번째 google가'팔 itt를 위해 명중하기 때문에 올랐다. –

+0

구현에 대한 약간의 이해. 4 개의 제어 레지스터 비트는 글로벌 리소스가 중첩되지 않을 것이라는 강력한 타격을줍니다. 조건이 같으면 병합 할 수 있습니다. 불행히도, 여러분이'if x> 0 return 1; x == 0이면 0을 반환하고 그렇지 않으면 -1;을 반환합니다. ARM에서는 괜찮지만 Thumb2에서는 유효하지 않은 논리입니다. 그냥'it it nz '를'it nz'로 변환하면 추가 연산 코드를 사용할 수 있습니다. –

답변

5

IT 블록에는 다른 IT 명령어가 없어야합니다. 코드의 결과는 예측할 수 없습니다.

관련 문제