RENESAS TOOL NEWS 2006年06月01日 : RSO-H8C_1-060601D
H8, H8S, およびH8SXファミリ C/C++コンパイラパッケージ
V.6.01 Release 02へのリビジョンアップのお知らせ |
H8, H8S, およびH8SXファミリ用C/C++コンパイラパッケージを V.6.01 Release 01からV.6.01 Release 02にリビジョンアップしました。
- リビジョンアップ対象製品
H8, H8S, およびH8SXファミリC/C++コンパイラパッケージ V.6
製品型名:
| Windows版 |
R0C40008XSW06R |
| Solaris版 |
R0C40008XSS06R |
| HP-UX版 |
R0C40008XSH06R |
- リビジョンアップ内容
| 2.1 |
|
新機能
最適化リンケージエディタ(リンカ)
| 2.1.1 |
|
| (1) |
|
SEction_forbidオプションを新規に追加しました。
本オプションにより、セクション単位で最適化を抑止することができます。 |
| (2) |
|
STARtオプションの機能を拡張して"()"の記法を新たに導入しました。 |
上記(1)および(2)のオプション機能の詳細は、コンパイラパッケージに 添付されている以下の資料を参照ください。
"最適化リンケージエディタ V.9.01 仕様追加オプションについて"
|
|
| 2.2 |
|
改修内容
| 2.2.1 |
|
統合開発環境High-performance Embedded Workshop (Windows版のみ)
同梱のHigh-performance Embedded WorkshopをV.4.00.03に更新しました。
詳細は、2005年10月1日発行 RENESAS TOOL NEWS "統合開発環境 High-performance Embedded Workshop V.4.00.03へのリビジョン アップのお知らせ" 資料番号: RSO-HEW-051001D を参照ください。
|
| 2.2.2 |
|
コンパイラ
| (1) |
|
2006年5月22日発行RENESAS TOOL NEWS
「H8SX, H8S およびH8ファミリ C/C++コンパイラパッケージ ご使用上のお願い」(RSO-H8C-060522D)で報告した16件の問題を改修しました。
|
| (2) |
|
以下の3点の内部エラーが発生する問題を改修しました。
| (a) |
|
ネットワーク上にあるソースファイルをコンパイルすると、内部エラー (エラー番号C5000) が発生する場合がある。 |
| (b) |
|
structregオプションを使用してソースファイルをコンパイルすると内部エラー (エラー番号C4974) が発生する場合がある。 |
| (c) |
|
ASCIIコード制御文字 0x20-0x7Fのみを用いた80文字を超える文字列があるファイルをコンパイルすると、
内部エラー (エラー番号C4709) が発生する場合がある。 |
|
| (3) |
|
以下の式をANSI規格に適合させました。
| (a) |
|
voidを返却型として定義された関数を呼び出す式がある場合、本呼び出し式をキャストしてvoid式に型変換している式。
例: (void)fun(); |
|
|
| 2.2.3 |
|
最適化リンケージエディタ
| (1) |
|
レジスタ退避/回復の最適化(optimize=register) によって、誤ったオブジェクトコードを生成する問題を改修しました。
問題の発生条件:
以下の条件をすべて満たす場合に発生することがあります。
| (a) |
|
コンパイル時のマイコン種別に、H8SXN, H8SXM, H8SXAおよびH8SXXのいずれかを選択している。 |
| (b) |
|
コンパイル時にgoptimizeオプションを使用している。 |
| (c) |
|
リンク時に、レジスタ退避/回復の最適化 (optimize=register) を使用している。 |
| (d) |
|
コンパイルにより、以下のいずれかのアドレッシングを持つMOV命令が生成される。*
・ @(<value>:2,SP)
・ @(<value>:16,SP)
・ @(<value>:32,SP)
注: SP(スタックポインタ)はER7と同じレジスタ |
| (e) |
|
(d)のMOV命令が、同時に変数名を参照するアドレッシングを持っている。
例:MOV.L @(<value>:2,SP),@_<変数名>:32 |
| * |
|
コンパイルによって生成された命令は、コンパイルリスト(.lstファ イル)で確認できます。
コンパイル時にshow=objectオプションを使用してコンパイルリストを出力してください。
|
|
| (2) |
|
レジスタ退避/回復の最適化(optimize=register)によって、goto文の分岐先ラベルが誤った位置へ移動してしまう問題を改修しました。
問題の発生条件:
以下の条件をすべて満たす場合に発生することがあります。
| (a) |
|
コンパイル時のマイコン種別に、H8SXN, H8SXM, H8SXAおよびH8SXXのいずれかを選択している。 |
| (b) |
|
コンパイル時にgoptimizeオプションを使用している。 |
| (c) |
|
リンク時に、レジスタ退避/回復の最適化(optimize=register)を使用している。 |
| (d) |
|
goto文の分岐先ラベルを記述している関数がある。 |
| (e) |
|
コンパイルにより、(d)の分岐先ラベルが関数の先頭位置に出力される。
|
|
| (3) |
|
レジスタ退避/回復の最適化 (optimize=register)で、誤った実行時 ルーチンを作成してしまう問題を改修しました。
問題の発生条件:
以下の条件をすべて満たす場合に発生することがあります。
| (a) |
|
コンパイル時のマイコン種別に、300, 300L, 300reg, 300HNおよび300HAのいずれかを選択している。 |
| (b) |
|
コンパイル時にgoptimizeオプションを使用している。 |
| (c) |
|
リンク時に、レジスタ退避/回復の最適化 (optimize=register)を使用している。 |
| (d) |
|
リンク時に、共通コードをサブルーチン化する最適化(optimize=same_code)を使用している。 |
| (e) |
|
(c)の最適化により、以下の名前の実行時ルーチンが生成される。*
・ "_opt_regsvpat<数字>"
・ "_opt_regldpat<数字>"
|
| * |
実行ルーチンが生成された場合は、リンカにメッセージ(メッセージ番号L0002)を表示させることができます。
リンカのmessageオプションを使用して、このメッセージを表示させてください。 |
|
| (4) |
|
リンク時に1byteサイズのconst修飾付き変数の設定値が誤って0に なる問題を改修しました。
問題の発生条件:
以下の条件をすべて満たす場合に発生することがあります。
| (a) |
|
使用しているリンカのバージョンが、V.9.00.00以降である。
(リンカのバージョンの確認方法は3項「ツールのバージョン確認方法」を参照ください。) |
| (b) |
|
コンパイル時にgoptimizeオプションを選択している。 |
| (c) |
|
リンク時に未参照シンボル削除の最適化(optimize=symbol_delete) を使用している。 |
| (d) |
|
リンク時に、定数/文字列の統合の最適化(optimize=string_unify) を使用している。 |
| (e) |
|
(c)の最適化により、削除される関数がある。 |
| (f) |
|
(e)の削除される関数からのみ参照される、1byteサイズのconst修飾付き変数がある。*
|
| * |
|
変数および関数が削除された場合は、リンカにメッセージ(メッセー ジ番号L0004)を表示させることができます。
リンカのmessageオプ ションを使用して、このメッセージを表示させてください。 |
|
| (5) |
|
スタック解析ツールCall Walkerで、.stack制御命令で記述したスタック使用量が正しく表示されない場合がある問題を改修しました。
問題の発生条件:
以下の条件をすべて満たす場合に発生することがあります。
| (a) |
|
アセンブリソースで、シンボル (関数やデータ) を定義している。 |
| (b) |
|
(a)のシンボルを、別のアセンブリソースから参照している。 |
| (c) |
|
(a)のアセンブリソースでは、シンボルに対して.stack制御命令を記述しておらず、
(b)のアセンブリソースでは、シンボルに対して.stack制御命令を記述している。
|
|
| (6) |
|
リンケージリストファイル (.map) の関数アクセス最適化対象シンボル情報(シンボルの参照回数)の表示で、
誤ったシンボル名 (_$ind_opt<数字>)を表示する問題を改修しました。
|
| (7) |
|
以下の2点の、エラーが発生する問題を改修しました。
| (a) |
|
リンク時に、定数/文字列の統合の最適化(optimize=string_unify)と未参照シンボルの削除の最適化(optimize=symbol_delete)を同時に使用し、
ELF/DWARFフォーマットコンバータ(HELFCNV)を使用した場合、エラーが発生して以下のメッセージが表示される。
G2003 (E)Illegal file format "ファイル名"
|
| (b) |
|
CPUオプションSBRで任意のアドレスを設定し、
かつリンク時に短絶対アドレッシングモード活用の最適化(optimize=variable_access)を使用した場合、
エラーが発生して以下のメッセージが表示される。
L2330 (E)Relocation size overflow
|
|
| (8) |
|
以下の3点の、内部エラーが発生する問題を改修しました。
| (a) |
|
.EQUラベルをアセンブリソース内で記述し、リンク時に最適化を使用すると、内部エラー(エラー番号L4001)が発生する場合がある。 |
| (b) |
|
outputオプションで、アドレス範囲を記述して出力ファイルを分割すると、内部エラー (エラー番号L4000-5560) が発生する場合がある。 |
| (c) |
|
バージョンV.9.00.03のリンカを使用していて、マイコン種別に300, 300L, 300reg, 300HNおよび300HAのいずれかを選択すると、
内部エラー (エラー番号 L4001) が発生する場合がある。
(リンカのバージョンの確認方法は3項「ツールのバージョン 確認方法」を参照ください。) |
| (d) |
|
stackオプションを使用すると、内部エラー (エラー番号 L4000) が発生する場合がある。 |
|
|
|
- ツールのバージョン確認方法
以下の手順で確認してください。
| (1) |
|
High-performance Embedded Workshopのメニュー「ツール」-> 「アドミニストレーション」を選択する。 |
| (2) |
|
開いたツールアドミニストレーションダイアログボックスの 「登録済コンポーネント」リストの「Toolchains」の中から 使用中のコンパイラパッケージを選択し、プロパティボタンを クリックする。 |
| (3) |
|
表示されたプロパティダイアログボックスの情報タブに ツールのバージョンが表示される。
リンカの表示例: Optimizing Linkage Editor (V.9.00.02) |
- リビジョンアップと購入方法
| 4.1 |
|
リビジョンアップ(無償)
対象製品をお持ちの場合、無償でリビジョンアップできます。
| (1) |
|
R0C40008XSW06R (Windows版)の場合
オンラインでリビジョンアップできます。
以下のダウンロードサイトからアップデートプログラムをダウンロードして実行してください。
日本語版
英語版
|
| (2) |
|
R0C40008XSS06R (Solaris版) および R0C40008XSH06R (HP-UX版)の場合
以下の情報を最寄りのルネサス販売または特約店までご連絡ください。
| 製品型名 |
Solaris版: R0C40008XSS06R
HP-UX版: R0C40008XSH06R |
| バージョン番号 |
V.6.01 |
| リリース番号 |
Release 02 |
|
|
| 4.2 |
|
新規購入
ご注文の際には、以下の情報を最寄りのルネサス販売または特約店まで ご連絡ください。
価格については最寄りのルネサス営業または特約店にお問い合わせください。
| 製品名 |
| Windows版: |
R0C40008XSW06R |
| Solaris版: |
R0C40008XSS06R |
| HP-UX版: |
R0C40008XSH06R |
|
| バージョン番号 |
V.6.01 |
| リリース番号 |
Release 02 |
| 製品の使用環境 |
Windows版: Windows XP、Windows Me、Windows 98、Windows 2000、Windows NT 4.0
Solaris版: Solaris 2.5、Solaris 8
HP-UX版: HP-UX 10.2 |
|