__strexd コンパイラ組み込み関数

このコンパイラ組み込み関数を使用して、コンパイラによって生成される命令ストリームに STREXD 命令を挿入します。C または C++ コードの STREXD 命令を使用して、データをメモリにストアできます。メモリへのダブルワードデータの排他的ストアがサポートされています。

Show/hide構文

int __strexd(unsigned long long val, volatile void *ptr)

各項目には以下の意味があります。

val

メモリに書き込む値を指定します。

ptr

メモリに書き込まれるデータのアドレスを指します。書き込まれるデータのサイズを指定するには、パラメータを適切な整数型にキャストします

Table 19. __strexd コンパイラ組み込み関数によってサポートされるアクセス幅

命令ストアされたデータのサイズC のキャスト
STREXD符号なし long long(unsigned long long *)
STREXD符号付き long long(signed long long *)

Show/hide戻り値

__strexd コンパイラ組み込み関数は、以下を返します。

0

STREXD 命令が正しく実行された場合

1

STREXD 命令がロックアウトされた場合

Show/hideエラー

STREXD 命令をサポートしないターゲット向けにコンパイルされる場合、コンパイラは __strexd コンパイラ組み込み関数を認識しません。この場合、コンパイラによって警告またはエラーが生成されます。

__strexd コンパイラ組み込み関数は、ダブルワードデータへのアクセスのみをサポートします。サポートされないアクセス幅を指定すると、コンパイラによってエラーが生成されます。

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491EJ
Non-ConfidentialID081711