/homeparams (レジスタ パラメーターのスタックへのコピー)

関数に入るときに、レジスタで渡されたパラメーターも、スタックの場所に強制的に書き込みます。

構文

/homeparams

解説

このコンパイラ オプションは、x64 を対象とするネイティブ コンパイラとクロス コンパイラでのみ使用できます。

x64 の呼び出し規則では、レジスタで渡されるパラメーターについても、すべてのパラメーター用のスタック領域を割り当てる必要があります。 詳しくは、「パラメーターの引き渡し」をご覧ください。 既定では、レジスタ パラメーターは、リリース ビルドでそれらに割り当てられたスタック領域にコピーされません。 これにより、プログラムの最適化されたリリース ビルドのデバッグが難しくなります。

リリース ビルドでは、/homeparams オプションを使って、コンパイラにレジスタ パラメーターをスタックに強制的にコピーさせて、アプリケーションをデバッグできるようにすることができます。 /homeparams は、レジスタ パラメーターをスタックに読み込むために余分なサイクルが必要になるため、パフォーマンスが低下することを意味します。

デバッグ ビルドでは、レジスタで渡されたパラメーターが常にスタックに設定されます。

Visual Studio 開発環境でこのコンパイラ オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。

  2. [構成プロパティ]>[C/C++]>[コマンド ライン] プロパティ ページを選択します。

  3. [追加のオプション] ボックスにコンパイラ オプションを入力します。

このコンパイラ オプションをコードから設定するには

関連項目

MSVC コンパイラ オプション
MSVC コンパイラ コマンド ラインの構文