09.12.2012 Views

Cortex-A8 Technical Reference Manual - ARM Information Center

Cortex-A8 Technical Reference Manual - ARM Information Center

Cortex-A8 Technical Reference Manual - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.1 About unaligned and mixed-endian data<br />

Unaligned Data and Mixed-endian Data Support<br />

The processor has the following features to support unaligned and mixed-endian data access:<br />

• permanently enabled support for unaligned data access<br />

• architecturally defined unaligned word, unaligned halfword, and word-aligned<br />

doubleword access<br />

• byte-reverse instructions that operate on general-purpose register contents to support<br />

signed and unsigned halfword data values<br />

• separate endianness control for data with instructions fixed as little-endian format,<br />

naturally aligned, but with legacy support for 32-bit word-invariant binary images and<br />

ROM<br />

• EE bit in CP15 c1 Control Register 1 that controls load and store endianness during<br />

exceptions<br />

• <strong>ARM</strong> and Thumb instructions to change the endianness and the E flag in the Program<br />

Status Registers (PSRs)<br />

• byte-invariant addressing to support fine-grain big-endian and little-endian shared data<br />

structures, to conform to a shared memory standard.<br />

Note<br />

Instructions are always little-endian and must be aligned according to the size of the instruction:<br />

• 32-bit <strong>ARM</strong> instructions must be word-aligned with address bits [1:0] equal to b00.<br />

• 16-bit or 32-bit Thumb instructions must be halfword-aligned with address bit [0] equal<br />

to 0.<br />

<strong>ARM</strong> DDI 0344K Copyright © 2006-2010 <strong>ARM</strong> Limited. All rights reserved. 4-2<br />

ID060510 Non-Confidential

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!