本文へジャンプ

Hitachi

株式会社 日立超LSIシステムズ

switch数の制限値拡張

1ファイル内のswitch数の上限を256から2048に拡張しました。

制限事項の対策

制限事項の対策

制限事項の対策

制限事項の対策

  1. Defineオプション削除不正
    Windows版 CコンパイラのDefineオプションで、"Value"未設定のマクロ名を設定すると、それが削除不能となる問題を対策しました。
  2. アセンブリソース出力時のオプション引継ぎ不正
    アセンブリソース出力を指定時、出力したアセンブリソースに対するオプション設定が無効となる問題を対策しました。
  3. newライブラリのオプション不正(標準ライブラリ構築ツール Ver.1.0A -> Ver.1.0.02)
    newライブラリを作成する時、ecppオプションの有無によりオブジェクトが変わりますが、それに関わらず常にecppオプションを指定されていた問題点を解決しました。

制限事項の対策

制限事項の対策

テンプレート、例外処理サポート

ISO仕様に準拠し、テンプレート、例外処理をサポートしました。

キーワードをサポート

#pragmaに対応したキーワードをサポートしました。
__interrupt、__indirect、__entry、__abs8/16、__regsave、__inline、__global_register

ベクタテーブル生成機能

#pragma interrupt/indirect/entry(__interrupt/__indirect/__entry)で、ベクタテーブル(vect=番号)自動生成機能をサポートしました。

追加オプション・機能

キャプションを入れてください。
オプション logo/nologo 起動メッセージの出力有無指定
structreg サイズの小さい構造体パラメタ・リターン値のレジスタ渡し
longreg 4byteパラメタ・リターン値のレジスタ渡し(H8/300)
stack=
large/medium/small
スタック領域アドレス計算サイズの指定
align/noalign データを境界調整毎に再配置指定
speed=loop=1 | 2 loop展開最適化(loop内処理のコピー)抑止指定追加
double=float double型データや浮動小数点定数をfloat型として扱う
拡張機能 __regparam=2 | 3 関数単位にレジスタパラメタ数を指定
#pragma option 関数単位にオプションを指定
__near8/__near16
#pragma near8/16
データ毎にアドレス計算サイズを指定
組み込み関数 符号無オーバーフロー演算の組み込み関数を追加

アドレスキャストのエラーチェック緩和

lang=cコンパイル時、アドレスに対するキャスト式のエラー出力を抑止し、DTCレジスタ等の初期設定をCで記述できるようになりました。

環境変数(CH38)の複数指定

インクルードディレクトリ用環境変数(CH38)で、複数のディレクトリを指定できるようになりました。

その他

  • 標準ELF/DWARF2フォーマット対応
  • 制限値の緩和