4.8.2. 정렬 지원

기본적으로 컴파일러는 LDRSTR 명령어가 기본 워드 경계에 정렬되지 않은 워드에서 로드하거나 그 워드에 저장하게 하여 패킹된 구조체에 대한 액세스 속도를 빠르게 하기 위해 정렬되지 않은 ARMv6 액세스 지원을 사용합니다.

CP15 레지스터 1에서 UA 비트를 사용하여 프로세서 코어에서 직접 ARMv6의 정렬 지원을 제어할 수 있습니다. 다음과 같은 네 가지 조합을 사용할 수 있습니다.

U=0, A=0CP15 레지스터 1의

정렬되지 않은 로드가 로드된 값을 회전하는 레거시 또는ARMv6 이전의 정렬 모드를 활성화합니다.

--cpu 5TE 명령 행 옵션으로 컴파일할 때 이 연산 모드는 RVCT에서만 지원됩니다.

Note

--cpu 5TE 명령 행 옵션으로 컴파일할 때는 ARMv6 명령어를 사용할 수 없습니다.

U=0, A=1CP15 레지스터 1의

정렬되지 않은 액세스 없이 모듈로 8 정렬 검사를 가능하게 합니다.

이 연산 모드는 RVCT 도구 세트에 의해 지원되지 않습니다.

U=1, A=0CP15 레지스터 1의

ARM 코어에서 정렬되지 않은 지원을 활성화합니다. 또는 UBITINIT 입력을 코어 HIGH에 입력하여 리셋으로부터 정렬되지 않은 액세스를 활성화할 수 있습니다.

Note

ARMv6에 대한 기본 옵션을 사용하여 컴파일된 코드는 ARM 코어에서 정렬되지 않은 지원이 활성화된 경우에만 올바르게 실행됩니다.

U=1, A=1CP15 레지스터 1의

정렬되지 않은 액세스 없이 ARMv6 타겟에 대한 모듈로 4 정렬 검사를 가능하게 합니다.

모듈로 4 정렬 검사가 가능하게 되면 적절한 옵션을 사용하여 코드를 컴파일해야 합니다.

  • RVCT 2.x의 경우 --memaccess -UL41

  • RVCT 3.0 이상의 경우 --no_unaligned_access

Note

--memaccess 옵션은 향후 제공되지 않을 예정이며 이후 릴리스에서 제거됩니다.

자세한 내용은 다음 항목을 참조하십시오.

Copyright © 2002-2007 ARM Limited. All rights reserved.ARM DUI 0205HK
Non-Confidential