再コンパイル/再リンクしたVAXソース | トランスレートされたVAXイメージ |
---|---|
データ・アラインメント[1] | |
省略時の設定では, 大部分のコンパイラはデータを自然なアラインメントにする。 VAXアラインメントを保存するための修飾子についての説明は, 第11章を参照。 | アラインされていないデータもサポートされるが, /OPTIMIZE=ALIGNMENT修飾子を使用すれば, データがロングワードにアラインされていることを仮定することにより, 実行速度を向上できる。 |
データ型 | |
H浮動小数点はX浮動小数点に変更する。
D浮動小数点の場合,D53フォーマットの15桁の精度で十分なときは,D浮動小数点を G浮動小数点に変更する。アプリケーションで16桁の精度(D56フォーマット) が必要な場合には,トランスレートしなければならない。 COBOLのパック10進数は操作のために自動的にバイナリ形式に変換される。 詳しくは第7章を参照。 |
D浮動小数点の16桁の精度が必要な場合には, /FLOAT=D56_FLOAT修飾子を使用する。この修飾子を使用した場合,性能は, 省略時の設定である/FLOAT=D53_FLOATを使用した場合より低下する。 |
読み込み/変更/書き込み操作の不可分性 | |
サポートは各コンパイラが準備しているオプションに応じて異なる (詳しくは第6章を参照)。 | /PRESERVE=INSTRUCTION_ATOMICITY修飾子を使用する。 実行速度は半分に低下する。 |
バイト書き込み操作とワード書き込み操作の不可分性と粒度 | |
適切にソース・コードを変更し, コンパイラ・オプションを使用することによりサポートされる(詳しくは 第6章を参照)。 | /PRESERVE=MEMORY_ATOMICITY修飾子を使用する。 実行速度は半分に低下する。 |
ページ・サイズ | |
OpenVMSリンカは省略時の設定により,大きい Alphaスタイルのページを作成する。 | 512バイトのページ・イメージの大部分はサポートされる。しかし, VESTはゆるやかな保護を割り当てるため, アクセス違反を検出するために厳しい保護に依存しているイメージを, トランスレートした場合,Alphaシステムで正しく実行されない。 |
読み込み/書き込みの順序 | |
適切な同期命令(MB) をソース・コードに追加することによりサポートされるが,性能は低下する。 (詳しくは第6章を参照。) | /PRESERVE=READ_WRITE_ORDERING修飾子を使用する。 |
例外報告の即時性 | |
コンパイラ・オプションの使用によって部分的にサポートされる (詳しくは第8章を参照)。 | /PRESERVE=FLOAT_EXCEPTIONS修飾子または /PRESERVE=INTEGER_EXCEPTIONS修飾子を使用する。実行速度は半分に低下する。 |
VAXアーキテクチャおよび呼び出し規則への明示的な依存[2] | |
サポートされない。依存する部分は削除しなければならない。 | サポートされる。 |
[1] アラインされていないデータは主に性能上の問題となります。
アラインされていないデータを参照した場合,
VAXシステムでは性能をある程度低下させるだけですが,
Alphaシステムでアラインされていないデータをメモリからロードしたり,
アラインされていないデータをメモリに格納すると,
アラインされた操作の場合より最高100倍も時間がかかる可能性があります。
[2] VAXアーキテクチャ固有の機能や呼び出し規則への依存としては,VAX呼び出し規則, VAX例外処理,VAX ASTパラメータ・リスト,VAX命令の形式と動作,およびVAX命令の 実行時作成への明示的な依存などがある。 |