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.

コーディング 慣 行5.3 関 数通 常 、 コ ンパイ ラ に よ る 最 適 化 の 実 行 を 効 率 化 する には、 関 数 を 小 規 模 かつ単 純 な も のにする こ と が 賢 明 です。 これを 達 成 する 方 法 はいくつかあり ます。以 下 はその 例 です。• 関 数 と の 間 で 受 け 渡 さ れるパ ラ メ ータ の 数 を 最 小 限 に し ます。• __value_in_regs を 使 用 して、 関 数 からレジスタに 複 数 の 値 を 返 します。• 可 能 な 場 合 は、 関 数 を __pure として 修 飾 します。5.3.1 パラ メ ー タ 受 け 渡 し に 伴 う オーバーヘ ッ ド の 最 小 化関 数 のパラ メータ 受 け 渡 しに 伴 うオーバーヘッ ドは、 いくつかの 方 法 で 最 小限 にでき ます。 以 下 に 例 を 示 し ます。• 関 数 の 各 引 数 のサ イ ズが 1 ワー ド 以 下 の 場 合 、 引 数 を 4 個 以 下 に し ます。 C++ では、 通 常 は 暗 黙 の this ポインタ 引 数 が R0 で 渡 されるため、 非ス タ テ ィ ッ ク メ ンバ 関 数 に 使 用 する 引 数 を 3 個 以 下 に し ます。• 関 数 で 5 個 以 上 の 引 数 が 必 要 な 場 合 は、 ス タ ッ ク し た 引 数 の 受 け 渡 し コストをカバーできるように、 その 関 数 で 相 当 な 量 の 処 理 を 行 うようにして 下 さい。• 関 連 性 のあ る 引 数 を 1 つの 構 造 体 にま と め、 その 構 造 体 を 指 すポ イ ン タを 関 数 呼 び 出 し で 受 け 渡 し ます。 こ うすることにより、パラメータ 数 を減 ら し、 読 みやすさ を 高 め る こ と がで き ます。• long long パ ラ メ ータ では、 偶 数 レ ジ ス タ イ ンデク スで 整 列 する 必 要 のある 引 数 ワードが 2 個 使 用 さ れる ため、 こ れ ら のパ ラ メ ータ の 数 を 最 小 限にします。• ソ フ ト ウ ェ ア 浮 動 小 数 点 が 有 効 になってい る 場 合 は、 double パラ メータの 数 を 最 小 限 に し ます。• 可 変 数 のパ ラ メ ータ を 持 つ 関 数 を 使 用 し ない よ う に し ます。 可 変 数 の 引数 を 使 用 する 関 数 では、 事 実 上 すべての 引 数 がス タ ッ ク で 受 け 渡 さ れます。<strong>ARM</strong> DUI 0205IJ Copyright © 2002-2010 <strong>ARM</strong> Limited. All rights reserved. 5-15ID 100419Non-Confidential,

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

Saved successfully!

Ooh no, something went wrong!