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

Create successful ePaper yourself

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

32 encoded as size = 0b10.<br />

The list of registers to store. It must be one of:<br />

{, } encoded as D:Vd = , type = 0b1000<br />

{, } encoded as D:Vd = , type = 0b1001<br />

{, , , }<br />

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

The alignment. It can be one of:<br />

encoded as D:Vd = , type = 0b0011.<br />

64 8-byte alignment, encoded as align = 0b01.<br />

128 16-byte alignment, encoded as align = 0b10.<br />

Instruction Details<br />

256 32-byte alignment, available only if contains four registers, encoded as<br />

align = 0b11<br />

omitted St<strong>and</strong>ard alignment, see Unaligned data access on page A3-5. Encoded as align<br />

= 0b00.<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 />

Operation<br />

if ConditionPassed() then<br />

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

address = R[n]; if (address MOD alignment) != 0 then GenerateAlignmentException();<br />

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

for r = 0 to regs-1<br />

for e = 0 to elements-1<br />

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

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

address = address + 2*ebytes;<br />

Exceptions<br />

Undefined Instruction, Data Abort.<br />

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

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

Saved successfully!

Ooh no, something went wrong!