5.4. 조건 코드

ARM 상태에서는 조건 코드를 사용하여 VFP 명령어 실행을 제어할 수 있습니다. 이 명령어는 APSR의 상태 플래그에 따라 대부분의 다른 ARM 명령어와 마찬가지로 조건부로 실행됩니다.

ARM 상태에서는 VFP와 NEON에 공통적인 명령어를 제외하고 조건 코드를 사용하여 NEON 명령어 실행을 제어할 수 없습니다.

Thumb-2 프로세서의 Thumb® 상태에서는 IT 명령어를 사용하여 다음에 나오는 최대 네 개의 NEON 또는 VFP 명령어에 조건 코드를 설정할 수 있습니다. 자세한 내용은 IT를 참조하십시오.

상태 플래그 업데이트에 사용할 수 있는 유일한 VFP 명령어는 VCMP입니다. 이 명령어는 APSR에서 플래그를 직접 업데이트하지 않지만 FPSCR에서 별도의 플래그 세트를 업데이트합니다 (FPSCR, 부동 소수점 상태 및 제어 레지스터 참조).

Note

이러한 플래그를 사용하여 조건부 VFP 명령어와 같은 조건부 명령어를 제어하려면 먼저 VMRS 명령어를 사용하여 플래그를 APSR에 복사해야 합니다 (VMRS 및 VMSR 참조).

플래그의 정확한 의미는 해당 플래그가 VCMP 명령어 뒤에 나오는지, ARM 데이터 처리 명령어 뒤에 나오는지에 따라 달라집니다. 이것은 다음과 같은 이유 때문입니다.

Table 5.4에는 조건 코드 니모닉의 의미가 나와 있습니다.

Table 5.4. 조건 코드

니모닉ARM 데이터 처리 명령어 다음에 나올 경우의 의미VFP VCMP 명령어 다음에 나올 경우의 의미
EQ같음같음
NE같지 않음같지 않음 또는 순서가 지정되지 않음
CS or HScarry 설정 또는 부호 없는 높거나 같음크거나 같음 또는 순서가 지정되지 않음
CC or LOcarry 지우기 또는 부호 없는 낮음보다 작음
MI음수보다 작음
PL양수 또는 0크거나 같음 또는 순서가 지정되지 않음
VS오버플로순서가 지정되지 않음 (하나 이상의 NaN 피연산자)
VC오버플로 없음순서가 지정됨
HI부호 없는 높음보다 큼 또는 순서가 지정되지 않음
LS부호 없는 낮거나 같음작거나 같음
GE부호 있으면서 크거나 같음크거나 같음
LT부호 있으면서 보다 작음보다 작음 또는 순서가 지정되지 않음
GT부호 있으면서 보다 큼보다 큼
LE부호 있으면서 작거나 같음작거나 같음 또는 순서가 지정되지 않음
AL항상 (대개 생략됨) 항상 (대개 생략됨)

Note

조건 코드의 의미는 APSR에서 플래그를 마지막으로 업데이트한 명령어의 유형에 따라 달라집니다.

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential