12.07.2015 Views

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

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

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

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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

イ ン ラ イ ンアセン ブ ラ と 組 み 込 みアセン ブ ラの 使 用破 壊 レ ジス タ リ ス ト破 壊 レ ジ ス タ リ ス ト では、 呼 び 出 さ れる 側 の 関 数 に よ り 破 壊 さ れる 物 理 レ ジスタが 指 定 されます。 呼 び 出 される 側 の 関 数 によ り 条 件 フラグが 変 更 される場 合 、 破 壊 レ ジ ス タ リ ス ト に PSR を 指 定 する 必 要 があ り ます。BL 命 令 と SVC 命 令 は、 常 に lr を 壊 し ます。このリ ス トを 省 略 した 場 合 に、BL 命 令 と SVC 命 令 を 使 用 する と 、 レ ジ ス タr0-r3、 pc、 lr、 および PSR が 壊 れます。分 岐 命 令 B は、 C または C++ の 単 一 の 関 数 内 で ラベルにジ ャ ンプする 場 合 にのみ 使 用 し て 下 さ い。7.1.10 ラベルイ ン ラ イ ンアセンブ リ コー ド で 定 義 さ れる ラベルは、 分 岐 の ターゲ ッ ト 、 または C や C++ の goto ステート メン トのターゲッ ト として 使 用 できます。 C および C++ で 定 義 される ラベルは、 以 下 の 形 式 で、 イ ン ラ イ ンアセンブ リ コード 内 の 分 岐 命 令 の ターゲ ッ ト と し て 使 用 で き ます。BL{cond} label7.1.11 旧 バージ ョ ンの <strong>ARM</strong> C/C++ コ ンパイ ラ との 相 違 点<strong>ARM</strong> コンパイラのインラインアセンブラと、 旧 バージョンの <strong>ARM</strong> C/C++ コンパイ ラのインラ インアセンブラ との 間 には、 大 きな 違 いがあ り ます。 このセクションでは、 その 主 な 違 いについて 説 明 します。 インラインアセンブラ用 の 既 存 のアセンブ リ コー ド の 使 用 方 法 については、 <strong>RealView</strong> <strong>Compilation</strong><strong>Tools</strong> の 『デベロ ッ パガ イ ド 』 を 参 照 して 下 さい。<strong>ARM</strong>v6 命 令すべての <strong>ARM</strong>v6 命 令 の う ち、 イ ン ラ イ ンアセンブ ラ でサポー ト さ れるのは<strong>ARM</strong>v6 メディア 命 令 のみです。仮 想 レ ジス タコンパイラのインラインアセンブリ コードでは、 常 に 仮 想 レジスタが 指 定 されます。 コー ド 生 成 時 に、 各 命 令 に 使 用 する 物 理 レ ジ ス タ が 選 択 さ れ、 アセンブ リ コード と 周 辺 の C コード または C++ コー ド が 完 全 に 最 適 化 さ れます。7-16 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!