12.07.2015 Views

RealView Compilation Tools コンパイラユーザガイド - ARM ...

RealView Compilation Tools コンパイラユーザガイド - ARM ...

RealView Compilation Tools コンパイラユーザガイド - ARM ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

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

イ ン ラ イ ンアセン ブ ラ と 組 み 込 みアセン ブ ラの 使 用7.1.8 オペラン ドオペラ ン ド にはい く つかの 型 があ り ます。仮 想 レ ジス タインラインアセンブリ 命 令 で 指 定 したレジスタは、 物 理 <strong>ARM</strong> 整 数 レ ジ ス タではな く 、 常 に 仮 想 レジス タ を 表 し ます。 仮 想 レ ジ ス タ に 宣 言 は 必 要 あ り ません。 ま た、 仮 想 レ ジ ス タ のサ イ ズは 物 理 レ ジ ス タ と 同 一 です。 ただし、 アセンブルされるコード 内 で 使 用 される 物 理 レジスタが、 命 令 内 で 指 定 されてい る 物 理 レ ジ ス タ と 異 な る 場 合 があ り ます。 詳 細 については、 「 仮 想 レ ジ スタ」 (ページ 7-9) を 参 照 して 下 さい。式 オペラ ン ドイ ン ラ イ ンアセンブ リ 命 令 のレ ジ ス タ オペラ ン ド と し て、 関 数 の 引 数 、 C または C++ の 変 数 、 およびその 他 C または C++ の 式 を 指 定 でき ます。<strong>ARM</strong> 整 数 レ ジ ス タ の 代 わ り に 使 用 する 式 は、 long long を 除 く 整 数 型 (char、short、 int、 long のいずれか)、 ま たはポ イ ン タ 型 にする 必 要 があ り ます。 char型 または short 型 に 対 する 符 号 拡 張 は 実 行 さ れません。 そのため、 この 2 つの型 には、 明 示 的 に 符 号 拡 張 を 実 行 する 必 要 があ り ます。 これらの 式 を 評 価 してレジスタに 割 り 当 てるため、 コンパイラによってコードが 追 加 される 場 合があ り ます。デステ ィネーシ ョ ン と してオペラン ドが 使 用 されている と き、 レジスタを 修正 する 場 合 にオペラ ン ド と し て 使 用 する 式 は 修 正 可 能 な 左 辺 値 でなければなりません。 例 えば、 デス テ ィ ネーシ ョ ン レ ジ ス タ ま たはベース レ ジ ス タ が 更新 されるベースレジスタがこれに 当 たり ます。複 数 の 式 オペラ ン ド を 含 む 命 令 において、 式 オペラ ン ド が 評 価 さ れる 順 序 は決 まっていません。条 件 付 き 命 令 の 式 オペラ ン ド は、 命 令 の 条 件 が 真 であ る 場 合 に 限 り 評 価 さ れます。インラインアセンブラのオペランドとして C または C++ の 式 を 使 用 する と 、1 つの 命 令 が 複 数 の 命 令 に 展 開 さ れる 場 合 があ り ます。 展 開 は、 式 の 値 が、『<strong>ARM</strong> アーキテクチャ リ フ ァ レンスマニュアル』 に 記 載 されている 命 令 オペラン ドの 制 約 を 満 たしていない 場 合 に 行 われます。オペラ ン ド と し て 使 用 さ れる 式 に よ り 一 時 領 域 が 作 成 さ れ、 そのレ ジ ス タ を破 棄 する 必 要 があ る 場 合 、 イ ン ラ イ ンアセンブ リ 命 令 を 実 行 し た 後 で 破 棄 が行 われます。 こ れは、 一 時 領 域 を 破 棄 する C++ の 規 則 に 似 ています。7-12 Copyright © 2002-2010 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0205IJNon-Confidential, ID 100419

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

Saved successfully!

Ooh no, something went wrong!