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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

• Inline assembler Vector Floating-Point (VFP) coprocessor restrictions in C and C++<br />

code on page 7-15<br />

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

• Miscellaneous inline assembler restrictions in C and C++ code on page 7-17<br />

• Inline assembler and register access in C and C++ code on page 7-18<br />

• Inline assembler and <strong>the</strong> # constant expression specifier in C and C++ code on page 7-20<br />

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

• Expansion of inline assembler instructions that use constants on page 7-22<br />

• Expansion of inline assembler load and store instructions on page 7-23<br />

• Inline assembler effect on processor condition flags in C and C++ code on page 7-24<br />

• Inline assembler operands in C and C++ code on page 7-25<br />

• Inline assembler expression operands in C and C++ code on page 7-26<br />

• Inline assembler register list operands in C and C++ code on page 7-27<br />

• Inline assembler intermediate operands in C and C++ code on page 7-28<br />

• Inline assembler function calls and branches in C and C++ code on page 7-29<br />

• Behavior of BL and SVC without optional lists in C and C++ code on page 7-30<br />

• Inline assembler BL and SVC input parameter list in C and C++ code on page 7-31<br />

• Inline assembler BL and SVC output value list in C and C++ code on page 7-32<br />

• Inline assembler BL and SVC corrupted register list on page 7-33<br />

• Inline assembler branches and labels in C and C++ code on page 7-34<br />

• Inline assembler and virtual registers on page 7-35<br />

• <strong>Compiler</strong> support <strong>for</strong> embedded assembler on page 7-36<br />

• Embedded assembler syntax in C and C++ on page 7-37<br />

• Effect of compiler <strong>ARM</strong> and Thumb states on embedded assembler on page 7-39<br />

• Restrictions on embedded assembly language functions in C and C++ code on page 7-40<br />

• <strong>Compiler</strong> generation of embedded assembly language functions on page 7-41<br />

• Access to C and C++ compile-time constant expressions from embedded assembler on<br />

page 7-43<br />

• Differences between expressions in embedded assembler and C or C++ on page 7-44<br />

• Manual overload resolution in embedded assembler on page 7-45<br />

• __offsetof_base keyword <strong>for</strong> related base classes in embedded assembler on page 7-46<br />

• <strong>Compiler</strong>-supported keywords <strong>for</strong> calling class member functions in embedded assembler<br />

on page 7-47<br />

• __mcall_is_virtual(D, f) on page 7-48<br />

• __mcall_is_in_vbase(D, f) on page 7-49<br />

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

ID061811<br />

Non-Confidential

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

Saved successfully!

Ooh no, something went wrong!