05.02.2013 Views

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Instruction Details<br />

The registers containing the structure. Encoded with D:Vd = . It must be one of:<br />

{, , }<br />

Single-spaced registers, see Table A8-7.<br />

{, , }<br />

Double-spaced registers, see Table A8-7. This is not available if == 8.<br />

Contains the base address for the access.<br />

! If present, specifies writeback.<br />

Contains an address offset applied after the access.<br />

For more information about , !, <strong>and</strong> , see Advanced SIMD addressing mode on page A7-30.<br />

Alignment<br />

St<strong>and</strong>ard alignment rules apply, see Unaligned data access on page A3-5.<br />

Operation<br />

if ConditionPassed() then<br />

EncodingSpecificOperations(); CheckAdvSIMDEnabled(); NullCheckIfThumbEE(n);<br />

address = R[n];<br />

if wback then R[n] = R[n] + (if register_index then R[m] else 3*ebytes);<br />

Elem[D[d],index,esize] = MemU[address,ebytes];<br />

Elem[D[d2],index,esize] = MemU[address+ebytes,ebytes];<br />

Elem[D[d3],index,esize] = MemU[address+2*ebytes,ebytes];<br />

Exceptions<br />

Undefined Instruction, Data Abort.<br />

Table A8-7 Encoding of index <strong>and</strong> register spacing<br />

== 8 == 16 == 32<br />

Index index_align[3:1] = x index_align[3:2] = x index_align[3] = x<br />

Single-spacing index_align[0] = 0 index_align[1:0] = '00' index_align[2:0] = '000'<br />

Double-spacing - index_align[1:0] = '10' index_align[2:0] = '100'<br />

<strong>ARM</strong> DDI 0406B Copyright © 1996-1998, 2000, 2004-2008 <strong>ARM</strong> Limited. All rights reserved. A8-617

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

Saved successfully!

Ooh no, something went wrong!