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.

Pseudocode Definition<br />

I.2 Limitations of pseudocode<br />

The pseudocode descriptions of instruction functionality have a number of limitations. These are mainly due<br />

to the fact that, for clarity <strong>and</strong> brevity, the pseudocode is a sequential <strong>and</strong> mostly deterministic language.<br />

These limitations include:<br />

Pseudocode does not describe the ordering requirements when an instruction generates multiple<br />

memory accesses, except in the case of SWP <strong>and</strong> SWPB instructions where the two accesses are to the<br />

same memory location. For a description of the ordering requirements on memory accesses see<br />

Memory access order on page A3-41.<br />

Pseudocode does not describe the exact rules when an UNDEFINED instruction fails its condition<br />

check. In such cases, the UNDEFINED pseudocode statement lies inside the if ConditionPassed()<br />

then ... structure, either directly or in the EncodingSpecificOperations() function call, <strong>and</strong> so the<br />

pseudocode indicates that the instruction executes as a NOP. Conditional execution of undefined<br />

instructions on page B1-51 describes the exact rules.<br />

Pseudocode does not describe the exact ordering requirements when one VFP instruction generates<br />

more than one floating-point exception. The exact rules are described in Combinations of exceptions<br />

on page A2-44.<br />

The pseudocode statements UNDEFINED, UNPREDICTABLE <strong>and</strong> SEE indicate behavior that differs from that<br />

indicated by the pseudocode being executed. If one of them is encountered:<br />

— Earlier behavior indicated by the pseudocode is only specified as occurring to the extent<br />

required to determine that the statement is executed.<br />

— No subsequent behavior indicated by the pseudocode occurs. This means that these statements<br />

terminate pseudocode execution.<br />

For more information, see Simple statements on page AppxI-17.<br />

A processor exception can be taken during execution of the pseudocode for an instruction, either<br />

explicitly as a result of the execution of a pseudocode function such as DataAbort(), or implicitly, for<br />

example if an interrupt is taken during execution of an LDM instruction. If this happens, the pseudocode<br />

does not describe the extent to which the normal behavior of the instruction occurs. To determine that,<br />

see the descriptions of the processor exceptions in Exceptions on page B1-30.<br />

AppxI-4 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!