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.

F.4 VFP instruction type selection<br />

Destination<br />

register bank<br />

VFP Vector Operation Support<br />

Table F-2 shows how the selection of registers in an instruction controls the operation of the instruction.<br />

1st oper<strong>and</strong><br />

bank<br />

2nd oper<strong>and</strong><br />

bank<br />

If the instruction has two oper<strong>and</strong>s:<br />

Destination<br />

type<br />

1st oper<strong>and</strong><br />

type<br />

Scalar Any Any Scalar Scalar Scalar<br />

Vector Any Scalar Vector Vector Scalar<br />

Vector Any Vector Vector Vector Vector<br />

Scalar Any None Scalar Scalar -<br />

Vector Scalar None Vector Scalar -<br />

Vector Vector None Vector Vector -<br />

Table F-2<br />

2nd oper<strong>and</strong><br />

type<br />

— If the destination register is in a scalar register bank, the oper<strong>and</strong>s <strong>and</strong> result are all scalars.<br />

— If the destination register is in a vector register bank <strong>and</strong> the second oper<strong>and</strong> is in a scalar bank,<br />

the second oper<strong>and</strong> is a scalar, but both the destination <strong>and</strong> the first oper<strong>and</strong> are vectors. Each<br />

element of the result is produced by an operation on the corresponding element of the first<br />

oper<strong>and</strong> <strong>and</strong> the same scalar.<br />

— If the destination register <strong>and</strong> the second oper<strong>and</strong> are both in vector register banks, the<br />

oper<strong>and</strong>s <strong>and</strong> result are all vectors. Each element of the result is produced by an operation on<br />

corresponding elements of both oper<strong>and</strong>s.<br />

If the instruction has one oper<strong>and</strong>:<br />

— If the destination register is in a scalar register bank, the oper<strong>and</strong> <strong>and</strong> result are both scalars.<br />

— If the destination register is in a vector register bank <strong>and</strong> the oper<strong>and</strong> is in a scalar bank, the<br />

result is a vector <strong>and</strong> the oper<strong>and</strong> is a scalar. The result is duplicated to each element of the<br />

destination vector.<br />

— If the destination register <strong>and</strong> the oper<strong>and</strong> are both in vector register banks, the oper<strong>and</strong> <strong>and</strong><br />

result are both vectors. Each element of the result is produced by an operation on the<br />

corresponding element of the oper<strong>and</strong>.<br />

Some VFP instructions have three oper<strong>and</strong>s, but in these cases one of the oper<strong>and</strong> vectors is also the result<br />

vector. They operate in the same way as two oper<strong>and</strong> instructions.<br />

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

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

Saved successfully!

Ooh no, something went wrong!