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.

Advanced SIMD <strong>and</strong> VFP Instruction Encoding<br />

A7.4 Advanced SIMD data-processing instructions<br />

Thumb encoding<br />

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

1 1 1 U 1 1 1 1 A B C<br />

<strong>ARM</strong> encoding<br />

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

1 1 1 1 0 0 1 U A B C<br />

Table A7-8 shows the encoding for Advanced SIMD data-processing instructions. Other encodings in this<br />

space are UNDEFINED.<br />

In these instructions, the U bit is in a different location in <strong>ARM</strong> <strong>and</strong> Thumb instructions. This is bit [12] of<br />

the first halfword in the Thumb encoding, <strong>and</strong> bit [24] in the <strong>ARM</strong> encoding. Other variable bits are in<br />

identical locations in the two encodings, after adjusting for the fact that the <strong>ARM</strong> encoding is held in<br />

memory as a single word <strong>and</strong> the Thumb encoding is held as two consecutive halfwords.<br />

The <strong>ARM</strong> instructions can only be executed unconditionally. The Thumb instructions can be executed<br />

conditionally by using the IT instruction. For details see IT on page A8-104.<br />

U A B C See<br />

Table A7-8 Data-processing instructions<br />

- 0xxxx - - Three registers of the same length on page A7-12<br />

1x000 - 0xx1 One register <strong>and</strong> a modified immediate value on page A7-21<br />

1x001 - 0xx1 Two registers <strong>and</strong> a shift amount on page A7-17<br />

1x01x - 0xx1<br />

1x1xx - 0xx1<br />

1xxxx - 1xx1<br />

1x0xx - x0x0 Three registers of different lengths on page A7-15<br />

1x10x - x0x0<br />

1x0xx - x1x0 Two registers <strong>and</strong> a scalar on page A7-16<br />

1x10x - x1x0<br />

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

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

Saved successfully!

Ooh no, something went wrong!