29.10.2014 Views

ARM Compiler toolchain v4.1 for µVision Using the Compiler

ARM Compiler toolchain v4.1 for µVision Using the Compiler

ARM Compiler toolchain v4.1 for µVision Using the Compiler

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.

<strong>Using</strong> <strong>the</strong> Inline and Embedded Assemblers of <strong>the</strong> <strong>ARM</strong> <strong>Compiler</strong><br />

7.18 Expansion of inline assembler load and store instructions<br />

The LDM, STM, LDRD, and STRD instructions might be replaced by equivalent <strong>ARM</strong> instructions. In<br />

this case <strong>the</strong> compiler outputs a warning message in<strong>for</strong>ming you that it might expand<br />

instructions. The warning can be suppressed with --diag_suppress.<br />

Inline assembly code must be written in such a way that it does not depend on <strong>the</strong> number of<br />

expected instructions or on <strong>the</strong> expected execution time <strong>for</strong> each specified instruction.<br />

Instructions that normally place constraints on pairs of operand registers, such as LDRD and STRD,<br />

are replaced by a sequence of instructions with equivalent functionality and without <strong>the</strong><br />

constraints. However, <strong>the</strong>se might be recombined into LDRD and STRD instructions.<br />

All LDM and STM instructions are expanded into a sequence of LDR and STR instructions with<br />

equivalent effect. However, <strong>the</strong> compiler might subsequently recombine <strong>the</strong> separate<br />

instructions into an LDM or STM during optimization.<br />

7.18.1 See also<br />

Concepts<br />

• Inline assembler and instruction expansion in C and C++ code on page 7-21<br />

• <strong>Compiler</strong> support <strong>for</strong> inline assembly language on page 7-4.<br />

Reference<br />

<strong>Compiler</strong> Reference:<br />

• --diag_suppress=tag[,tag,...] on page 3-32.<br />

<strong>ARM</strong> DUI 0375C Copyright © 2007-2008, 2011 <strong>ARM</strong>. All rights reserved. 7-23<br />

ID061811<br />

Non-Confidential

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

Saved successfully!

Ooh no, something went wrong!