| |||
| Home > NEON 및 VFP 프로그래밍 > NEON 및 VFP 시스템 레지스터 > FPSCR, 부동 소수점 상태 및 제어 레지스터 | |||
FPSCR에는 모든 사용자 수준 NEON 및 VFP 상태 및 제어 비트가
포함되어 있습니다. NEON은 비트[31:27]만 사용합니다. 이 비트는 다음과 같이 사용됩니다.
N, Z, C 및 V 플래그로, NEON 및 VFP의 상태를 나타냅니다. 이러한 플래그는 CPSR의 상태 플래그에 복사될 때까지 조건부 실행을 제어하는 데 사용할 수 없습니다(조건 코드 참조).
QC, 누적 포화 플래그로, NEON 또는 VFP 포화 명령어에서 포화가 발생할 경우 설정됩니다.
0으로 플러시 모드 제어 비트입니다.
0으로 플러시 모드가 해제됩니다.
0으로 플러시 모드가 설정됩니다.
0으로 플러시 모드에서는 범위를 줄이면 하드웨어와 소프트웨어 성능에 따라 성능이 향상될 수 있습니다(0으로 플러시 모드 참조).
NEON은 이 비트에 관계없이 항상 0으로 플러시 모드를 사용합니다.
IEEE 754와의 호환성이 필요한 경우 0으로 플러시 모드를 사용하면 안 됩니다.
다음과 같이 반올림 모드를 제어합니다.
가장 가까운 수로 반올림(RN) 모드
양의 무한대로 반올림(RP) 모드
음의 무한대로 반올림(RM) 모드
0으로 반올림(RZ) 모드
STRIDE는
벡터에 연속해서 있는 값 간의 거리입니다(벡터 참조). 스트라이드는 다음과 같이 제어됩니다.
STRIDE =
1
STRIDE =
2.
LEN은
각 벡터에서 사용되는 레지스터 수입니다(벡터 참조).
1 + 비트[18:16] 값은 다음과 같습니다.
LEN =
1
LEN =
8.
예외 트랩 활성화 비트입니다.
정확하지 않은 예외 활성화
언더플로 예외 활성화
오버플로 예외 활성화
0으로 나누기 예외 활성화
잘못된 연산 예외 활성화
이 설명서에서는 부동 소수점 예외 트랩의 사용에 대해 설명하지 않습니다. 자세한 내용은 사용 중인 VFP 보조 프로세서의 기술 참조 설명서를 참조하십시오.
누적 예외 비트는 다음과 같습니다.
정확하지 않은 예외
언더플로 예외
오버플로 예외
0으로 나누기 예외
잘못된 연산 예외
해당 예외가 발생하면 누적 예외 비트가 설정됩니다. 누적 예외 비트는 사용자가 FPSCR에
직접 기록하여 지울 때까지 설정된 상태로 있습니다.
기본 NEON 및 VFP 사양에서는 사용되지 않지만 특정 구현에서는 사용될 수 있습니다. 자세한 내용은 사용 중인 VFP 보조 프로세서의 기술 참조 설명서를 참조하십시오. 특정 구현에서 사용될 경우를 제외하고 이러한 비트를 수정하면 안 됩니다.
다른 비트에 영향을 주지 않고 원하는 비트만 변경하려면 읽기-수정-쓰기 프로시저를 사용하십시오(NEON 및 VFP 시스템 레지스터의 개별 비트 수정 참조).
새 코드에서는 벡터 모드를 더 이상 사용할 수 없습니다. LEN 및 STRIDE를
1로 설정하십시오.