2.1.97. --pointer_alignment=num

이 옵션은 응용 프로그램에 필요한 정렬되지 않은 포인터 지원을 지정합니다.

구문

--pointer_alignment=num

여기서 num은 다음 중 하나입니다.

1

포인터를 통한 액세스를 1바이트 정렬 또는 정렬되지 않은 것으로 처리합니다.

2

포인터를 통한 액세스를 2바이트 정렬(하프워드 정렬)로 처리합니다.

4

포인터를 통한 액세스를 4바이트 정렬(워드 정렬)로 처리합니다

8

포인터를 통한 액세스를 기본 정렬(더블워드 정렬)로 처리합니다.

사용법

이 옵션을 사용하면 정렬할 필요가 없는 아키텍처에 대해 작성된 소스 코드를 이식할 수 있습니다. __packed 한정자를 사용하면 생성된 코드의 품질에 영향을 덜 주면서 정렬되지 않은 데이터에 대한 액세스를 보다 정밀하게 제어할 수 있습니다.

제한

비정렬 포인터는 정렬되지 않은 액세스를 지원하는 CPU에서도 코드 크기를 증가시킬 수 있습니다. 이는 로드 및 저장 명령어의 하위 세트만이 정렬되지 않은 액세스 지원을 활용할 수 있기 때문입니다. 컴파일러에서는 하드웨어 부동 소수점 로드 및 저장을 비롯하여 정렬되지 않은 메모리 개체에 다중 워드 전송이나 보조 프로세서 메모리 전송을 직접 사용할 수 없습니다.

Note

  • 정렬되지 않은 액세스를 지원하는 pre-v6 아키텍처와 같은 하드웨어가 없는 CPU에 대해 컴파일하는 경우 코드 크기가 상당히 증가될 수 있습니다.

  • 이 옵션은 메모리의 개체 배치 또는 구조체의 레이아웃 및 패딩에는 영향을 주지 않습니다.

추가 참고

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0348AK
Non-Confidential