本文へジャンプ

Hitachi

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

改修内容

以下の問題を改修しました。

  1. 以下のDSPライブラリ関数をCPUコアSH4AL-DSP用のプログラムで使用するとプログラムが正しく動作しない場合がある問題。
    FftComplex, FftReal, IfftComplex, IfftReal, FftInComplex,
    FftInReal, IfftInComplex, IfftInReal, Fir, ConvComplete,
    ConvCyclic, ConvPartial, Correlate, CorrCyclic, MatrixMult,
    MsPower, およびVariance
    注意: 本改修により、コンパイルオプション使用時にリンクするCPUコアSH4AL-DSP用のライブラリファイル名が以下のとおり変更になります。

    ライブラリファイル名変更一覧
    コンパイルオプション ライブラリファイル
    変更後 変更前
    -pic=0 -endian=big sh4aldspnb.lib sstrongdspnb.lib
    -pic=1 -endian=big sh4aldsppb.lib sstrongdsppb.lib
    -pic=0 -endian=little sh4aldspnl.lib sstrongdspnl.lib
    -pic=1 -endian=little sh4aldsppl.lib sstrongdsppl.lib
  2. 2005年3月18日掲載の 「SuperH RISC engine C/C++コンパイラパッケージ Ver.8 使用上の注意(5)」で報告した11点の問題。

減算結果と0の大小比較 (SHC-0004)

1バイトもしくは2バイトの同じ型の変数同士を減算し、減算結果を同じサイズのsignedの型に変換して0と大小比較した時に、型変換でオーバフローが生じた場合に型変換後のビットサイズを常に使用するように変更しました。

[例]
extern void g(void);
    unsigned short a,b;
    f()
    {
        short t = a - b;  
      // a = 0xffff, b = 0x0000 の場合 t = 0xffff if (t > 0) { // 比較結果は偽となる g(); } }

追加オプション

以下のオプションを追加しました。

  • 未初期化変数の出力順指定
    bss_order={declaration|definition}  
  • 変数の配置指定
    stuff[={bss|data|const}[,...]]
    nostuff

詳細については、「SuperH RISC engine C/C++コンパイラV.8.00.03 追加オプション一覧」を参照してください。

制限事項の対策

対策した制限事項につきましては、下のページを参照してください。

オプションダイアログの変更

fixed_const、fixed_max、fixed_noround、repeatの4オプションについて、その指定箇所をCPUタブからコンパイラタブへ変更しました。

制限事項の対策

対策した制限事項につきましては、下のページを参照してください。

標準ライブラリ構築ツール Ver.3.0.01 − ライブラリ構築時のエラー

ライブラリ構築時にfixed_const、fixed_max、fixed_noroundオプションを指定した場合、エラーになる問題を解決しました。

新CPUのサポート

新CPU SH-4A、SH4AL-DSP をサポートしました。

言語仕様拡張

  • DSP-C言語をサポートしました。
  • long long、unsigned long long型をサポートしました。

組み込み向け機能強化

  • 次のDSP向け組み込み関数を追加しました。
    絶対値、MSB検出、算術シフト、丸め演算、ビットパターンコピー、
    モジュロアドレッシング設定、モジュロアドレッシング解除、CSビットの設定
  • 次の#pragma拡張子を追加しました。
    キャプションを入れてください。
    #pragma拡張子 機能
    #pragma ifunc 浮動小数点レジスタの退避/回復抑止
    #pragma bit_order ビットフィールド並び順指定
    #pragma pack 構造体、共用体、クラスメンバの境界調整数指定
  • 次のオプションを追加しました。
    キャプションを入れてください。
    オプション 機能
    auto_enum 列挙型を、列挙型が収まる最小型とする
    pack 構造体、共用体、クラスメンバの境界調整数指定
    bit_order ビットフィールドのメンバの並び順指定

エラーレベルの変更(change_messageオプション)

インフォメーション、ウォーニングレベルメッセージのエラーレベルを個別に変更できるようにしました。

制限値の緩和

switch文の数を256個から2048個に拡張しました。