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.

コーディング 慣 行ハーフワー ド にア ク セスするための 非 境 界 整 列 型 LDR 命 令状 況 に よ っては、 非 境 界 整 列 型 LDR 命 令 がコ ンパ イ ラ に よ って 意 図 的 に 生 成される 場 合 があり ます。 特 に、 ハーフ ワード を ロードする ための 専 用 の 命 令がアーキテクチャでサポー ト されている 場 合 でも、 このよ う にして メモ リ からハーフワードをロードする 場 合 があり ます。例 えば、 __packed 構 造 体 内 の 非 境 界 整 列 型 short にア ク セ スする 場 合 、 コ ンパイ ラ は 必 要 なハーフ ワー ド を レ ジ ス タ の 上 位 半 分 に ロー ド し、 その 後 で 下 位半 分 にシフ ト し ます。 この 処 理 には 1 回 の メ モ リ ア ク セス しか 必 要 と な ら ないのに 対 し、 LDRB 命 令 を 使 用 して 同 じ 処 理 を 行 う 場 合 には、 2 回 の メ モ リ ア ク セスに 加 え、 2 バ イ ト をマージする 命 令 が 必 要 と な り ます。5.5.4 パ ッ ク 構 造 体 と 個 別 パ ッ ク フ ィ ール ドパックされた struct を 最 適 化 する 場 合 、 コ ンパイ ラ は、 各 フ ィ ール ド の 境 界整 列 を 推 測 し て、 ア ク セ ス 効 率 の 向 上 を 図 り ます。 ただし、 コンパイ ラが__packed struct 内 の 各 フ ィ ール ド の 境 界 整 列 をいつも 推 測 で き る と は 限 り ません。 一 方 、 struct 内 の 個 々のフ ィ ール ド が __packed として 宣 言 されている 場 合は、 struct 内 の 自 然 境 界 整 列 型 メ ンバへの 高 速 ア ク セスが 保 証 さ れています。そのため、 パ ッ ク 構 造 体 の 使 用 が 必 要 な 場 合 は、 構 造 体 自 体 をパ ッ クする のではな く 、 必 ず 構 造 体 の 個 々のフ ィ ール ド をパ ッ ク し て 下 さ い。注struct の 個 々の 非 境 界 整 列 フ ィ ール ド を __packed と し て 宣 言 する と 、 struct のどのフ ィ ール ド が 非 境 界 整 列 型 であ る かをプ ロ グ ラ マに 明 示 で き る と い う メリットもあります。表 5-10 (ページ 5-34) は、 struct をパッ ク しなかった 場 合 、 struct 全 体 をパ ック し た 場 合 、 および struct の 個 々のフ ィ ール ド をパッ ク し た 場 合 のそれぞれの 違 いを、 struct の 3 種 類 の 実 装 で 示 し た も のです。<strong>ARM</strong> DUI 0205IJ Copyright © 2002-2010 <strong>ARM</strong> Limited. All rights reserved. 5-33ID 100419Non-Confidential,

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

Saved successfully!

Ooh no, something went wrong!