04.01.2015 Views

RealView Compilation Tools - ARM Information Center

RealView Compilation Tools - ARM Information Center

RealView Compilation Tools - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

Compiler-specific Features<br />

ptr<br />

points to the address of the data to be written to in memory. To specify<br />

the size of the data to be written, cast the parameter to an appropriate<br />

integral type.<br />

Table 4-12 Access widths supported by the __strexd intrinsic<br />

Instruction Size of data stored C cast<br />

STREXD unsigned long long (unsigned long long *)<br />

STREXD signed long long (signed long long *)<br />

Return value<br />

The __strexd intrinsic returns:<br />

0 if the STREXD instruction succeeds<br />

1 if the STREXD instruction is locked out.<br />

Errors<br />

The compiler does not recognize the __strexd intrinsic when compiling for a target that<br />

does not support the STREXD instruction. The compiler generates either a warning or an<br />

error in this case.<br />

The __strexd intrinsic only supports access to doubleword data. The compiler generates<br />

an error if you specify an access width that is not supported.<br />

See also<br />

• __ldrex on page 4-84<br />

• __ldrexd on page 4-86<br />

• __strex on page 4-101<br />

• LDREX and STREX on page 4-36 in the Assembler Guide.<br />

4.7.38 __strt<br />

This intrinsic inserts an assembly language instruction of the form STR{size}T into the<br />

instruction stream generated by the compiler. It enables you to store data to memory in<br />

your C or C++ code using an STRT instruction.<br />

Syntax<br />

void __strt(unsigned int val, volatile void *ptr)<br />

<strong>ARM</strong> DUI 0348C Copyright © 2007-2010 <strong>ARM</strong>. All rights reserved. 4-103<br />

ID101213<br />

Non-Confidential,

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

Saved successfully!

Ooh no, something went wrong!