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.

Assembler syntax<br />

V.8 , , <br />

where:<br />

Specifies the operation. It must be one of:<br />

TBL encoded as op = 0<br />

TBX encoded as op = 1<br />

Instruction Details<br />

See St<strong>and</strong>ard assembler syntax fields on page A8-7. An <strong>ARM</strong> VTBL or VTBX instruction must<br />

be unconditional.<br />

The destination vector.<br />

The vectors containing the table. It must be one of:<br />

{} encoded as len = 0b00<br />

{,} encoded as len = 0b01<br />

{,,} encoded as len = 0b10<br />

{,,,}<br />

The index vector.<br />

Operation<br />

encoded as len = 0b11<br />

if ConditionPassed() then<br />

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

// Create 256-bit = 32-byte table variable, with zeros in entries that will not be used.<br />

table3 = if length == 4 then D[n+3] else Zeros(64);<br />

table2 = if length >= 3 then D[n+2] else Zeros(64);<br />

table1 = if length >= 2 then D[n+1] else Zeros(64);<br />

table = table3 : table2 : table1 : D[n];<br />

for i = 0 to 7<br />

index = UInt(Elem[D[m],i,8]);<br />

if index < 8*length then<br />

Elem[D[d],i,8] = Elem[table,index,8];<br />

else<br />

if is_vtbl then<br />

Elem[D[d],i,8] = Zeros(8);<br />

// else Elem[D[d],i,8] unchanged<br />

Exceptions<br />

Undefined Instruction.<br />

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

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

Saved successfully!

Ooh no, something went wrong!