linux-2.6.33/barrier(gcc)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#i0635b50]
#backlinks
*説明 [#eb6166fe]
-パス: [[linux-2.6.33/include/linux/compiler-gcc.h]]
-メモリバリアを作成する。
--コンパイラの最適化による命令の移動、省略を防ぎ、
下記の効果をもたらす。
---メモリバリアの前に実行された命令の結果は、
メモリバリアに到達後に全て反映される。
---メモリバリアの後に実行される命令は、
メモリバリアに到達する前に実行した命令の結果を参照できる。
--ただしハードウェアレベルでは保証されない。
すなわちキャッシュコヒーレンシ、バスの内部バッファなどは...
**引数 [#mb263ffc]
-なし
**返り値 [#u5359184]
-なし
**参考 [#je868cee]
*実装 [#l1e3e9c8]
/* Optimization barrier */
/* The "volatile" is due to gcc bugs */
#define barrier() __asm__ __volatile__("": : :"memory")
-メモリバリア
--__volatile__ キーワードにより、
gcc の最適化による命令の移動、省略などを防ぐ。
--memory 指定により、
入出力リストに書かれていないレジスタやメモリが変更された...
予期せぬメモリの破壊があることをコンパイラに伝える。
*コメント [#ca6254d9]
終了行:
*参照元 [#i0635b50]
#backlinks
*説明 [#eb6166fe]
-パス: [[linux-2.6.33/include/linux/compiler-gcc.h]]
-メモリバリアを作成する。
--コンパイラの最適化による命令の移動、省略を防ぎ、
下記の効果をもたらす。
---メモリバリアの前に実行された命令の結果は、
メモリバリアに到達後に全て反映される。
---メモリバリアの後に実行される命令は、
メモリバリアに到達する前に実行した命令の結果を参照できる。
--ただしハードウェアレベルでは保証されない。
すなわちキャッシュコヒーレンシ、バスの内部バッファなどは...
**引数 [#mb263ffc]
-なし
**返り値 [#u5359184]
-なし
**参考 [#je868cee]
*実装 [#l1e3e9c8]
/* Optimization barrier */
/* The "volatile" is due to gcc bugs */
#define barrier() __asm__ __volatile__("": : :"memory")
-メモリバリア
--__volatile__ キーワードにより、
gcc の最適化による命令の移動、省略などを防ぐ。
--memory 指定により、
入出力リストに書かれていないレジスタやメモリが変更された...
予期せぬメモリの破壊があることをコンパイラに伝える。
*コメント [#ca6254d9]
ページ名: