DCC64

提供: RAD Studio
移動先: 案内検索

Delphi ツールチェーン への移動


DCC64 は 64 ビット Windows 向けの RAD Studio Delphi コンパイラです。

出力ファイル

ファイルの種類 ファイル拡張子 ファイル形式
実行可能ファイル .exe PE32+
共有ライブラリ .dll PE32+
静的ライブラリ .lib OMF
オブジェクト .obj OMF

機能

  • ネイティブ整数型は 64 ビットです。
  • ポインタは 64 ビットです。
  • 動的配列のインデックスは 64 ビットです。
  • 浮動小数点演算は単精度または倍精度で実行することができます。拡張精度浮動小数点演算はサポートされていません。
  • SHL/SHR の動作: 32 ビット整数は 32 ビット空間でシフトされ、64 ビット整数は 64 ビット空間でシフトされます。
  • Pascal/アセンブリ コードの混在はサポートされていません。

64 ビット インライン アセンブラ

DCC64 では 64 ビット アセンブリ コードをサポートしていますが、いくつか制限事項があります。ルーチンは、すべて Delphi またはすべてアセンブリ言語で記述する必要があります(両者を混在させることはできません)。

スタックを管理するための疑似命令が用意されています。これらを以下の表に示します。

疑似命令 説明

.PARAMS#

この疑似命令は、外部関数を呼び出すときに使用します。この疑似命令では、関数のパラメータを x64 呼び出し規約に従ってマッピングします。この疑似命令が使用された場合は、呼び出された関数にスタック パラメータを渡すのに、疑似変数 @params を使用できます。@params はバイト配列として使用します(最初のスタック パラメータが @params[32] となります)。位置 0 ~ 31 は 4 つのレジスタ パラメータを表します。

.PUSHNV REG

不揮発性の汎用レジスタをプロローグおよびエピローグに保存およびそこから復元するコードを生成します。

.SAVENV XMM#

.PUSHNV REG と同じ機能を果たします。ただし、.SAVENV XMM# は不揮発性の XMM レジスタを対象にしています。

.NOFRAME

宣言されているローカル変数がなく、パラメータ数が 4 未満である限り、スタック フレームの生成を強制的に無効にします。"リーフ" 関数にのみ使用します。

関連項目