次の方法で共有


__lwpval32, __lwpval64

更新 : 2011 年 3 月

Visual Studio 2010 SP1 が必要です。

Microsoft 固有の仕様 →

Lightweight Profiling (LWP) 命令 lwpval を生成して、値サンプル レコードをアクティブな LWP リング バッファーに挿入します。

void __lwpval32(
   unsigned int data2,
   unsigned int data1,
   unsigned int flags
);

void __lwpval64(
   unsigned __int64 data2,
   unsigned int data1,
   unsigned int flags
);

パラメーター

  • [入力] data2
    LWP リング バッファー レコードの Data2 フィールドに書き込まれる 32 または 64 ビットのパラメーター。

  • [入力] data1
    LWP リング バッファー レコードの Data1 フィールドに書き込まれる 32 ビットのパラメーター。

  • [入力] flags
    下位 16 ビットが LWP リング バッファー レコードの Flags フィールドに書き込まれる 32 ビットのパラメーター。

戻り値

なし。

必要条件

組み込み

アーキテクチャ

__lwpval32

LWP

__lwpval64

LWP、X64 のみ

ヘッダー ファイル <intrin.h>

解説

これらの組み込みを使用すると、EventID 1 の値サンプルを Lightweight Profiling リング バッファーに記録できます。 lwpins とは異なり、lwpval 命令では、k 回 lwpval を実行しない限り、バッファーへの書き込みは行われません。k-1 は、LWPCB の EventInterval1 フィールドの値です。 詳細については、「__lwpins32」を参照してください。

書き込まれるレコードは、アクティブな LWP リング バッファーの次の空きスロットに入れられます。 リング バッファーがいっぱいの場合、新しいレコードによってバッファー内の最後のレコードが上書きされます。 Lightweight Profiling が有効になっていない場合、または LWP が有効になっていてもプログラムされた値サンプルのイベントが有効になっていない場合、これらの組み込みはリング バッファーに影響しません。

__lwpval32__lwpval64 はどちらも、data2 の値をリング バッファー レコード (バイト 23-16) の Data2 フィールドに書き込み、data1 を Data1 フィールド (バイト 7-4) に書き込み、flags の値を Flags フィールド (バイト 3-2) に書き込みます。 flags は一定である必要があり、16 ビットに切り捨てられます。 __lwpval32 組み込みでは、リング バッファー レコードのバイト 23-20 をゼロに設定します。

lwpval 命令は、LWP ファミリの命令の一部です。LWP 命令を使用するには、ハードウェア サポートとオペレーティング システム サポートの両方が必要です。 LWP に対するハードウェア サポートを確認するには、InfoType を 0x80000001 にして __cpuid 組み込みを呼び出し、CPUInfo[2] (ECX) のビット 15 をチェックします。 このビットは、LWP がサポートされている場合は 1 になり、サポートされていない場合は 0 になります。 LWP がプロセッサでサポートされていることを確認したら、InfoType を 0x8000001C にして __cpuid 組み込みを呼び出し、CPUInfo[0] (EAX) のビット 0 をチェックします。 このビットは、オペレーティング システムでも LWP がサポートされている場合は 1 になり、サポートされていない場合は 0 になります。 オペレーティング システムで LWP がサポートされていない場合は、CPUInfo[0] (EAX) のビット 1 をチェックします。このビットは、LWPVAL 命令が使用可能であれば 1 になります。 この __cpuid テストでは、LWP の実装に関する追加情報も返されます。 詳細については、__llwpcb および AMD の「Lightweight Profiling Specification (Lightweight Profiling の仕様)」(公開番号 43724) を参照してください。

例については、「__llwpcb」を参照してください。

参照

その他の技術情報

__lwpins32, __lwpins64

__llwpcb

__slwpcb

Visual Studio 2010 SP1 用に追加された LWP 組み込み

履歴の変更

日付

履歴

理由

2011 年 3 月

このコンテンツを追加。

SP1 機能変更