リソースやCFAを追跡するためのコールフレーム情報ディレクティブ
構文
CFI cfa { resource | resource + constant | resource - constant }
CFI cfa cfiexpr
CFI resource { UNDEFINED | SAMEVALUE | CONCAT }
CFI resource { resource | FRAME(cfa, offset) }
CFI resource cfiexpr
パラメータ
| CFA(Canonical Frame Address)の名前。 |
| CFI式は次のいずれかになります。
|
| 定数値、または定数値を計算するアセンブラ式。 |
| CFAに相対的なオフセット。任意指定の符号が付く整数です。 |
| リソースの名前。 |
単項演算子
全体的な構文:OPERATOR(operand)
CFI演算子 | Operand | 説明 |
|---|---|---|
| CFI式のビット単位の | |
| アセンブラ式の値を取得します。これにより、通常のアセンブラ式の値をCFI式に挿入できます。 | |
| 論理CFI式を否定します。 | |
| CFI式を算術的に論理否定します。 |
2項演算子
全体的な構文:OPERATOR(operand1,operand2)
CFI演算子 | オペランド | 説明 |
|---|---|---|
| 加算 | |
| ビット単位の | |
| 除算 | |
| 等しい | |
| 以上 | |
| より大きい | |
| 以下 | |
| 左オペランドの論理左シフト。シフト対象のビット数は、右オペランドで指定します。シフト時に符号ビットは保護されません。 | |
| より小さい | |
| 剰余 | |
| 乗算 | |
| 等しくない | |
| ビット単位のOR | |
| 左オペランドの算術右シフト。シフト対象のビット数は、右オペランドで指定します。 | |
| 左オペランドの論理右シフト。シフト対象のビット数は、右オペランドで指定します。シフト時に符号ビットは保護されません。 | |
| 減算 | |
| ビット単位の |
3項演算子
全体的な構文:OPERATOR(operand1,operand2,operand3)
演算子 | オペランド | 説明 |
|---|---|---|
| スタックフレームから値を取得します。オペランドを以下に示します。
サイズが | |
| 条件演算子。オペランドを以下に示します。
条件式がゼロ以外である場合、結果は | |
| メモリから値を取得します。オペランドを以下に示します。
セグメントメモリタイプ |
説明
これらのディレクティブを使用して、COMMONブロックやデータブロックのリソースやCFAを追跡します。