Skip to main content

IAR Embedded Workbench for Arm 9.70.x

リソースや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

CFA(Canonical Frame Address)の名前。

cfiexpr

CFI式は次のいずれかになります。

  • オペランド付きのCFI演算子

  • 数値の定数

  • CFA名

  • リソース名

constant

定数値、または定数値を計算するアセンブラ式。

offset

CFAに相対的なオフセット。任意指定の符号が付く整数です。

resource

リソースの名前。

単項演算子

全体的な構文:OPERATOR(operand)

CFI演算子

Operand

説明

COMPLEMENT

cfiexpr

CFI式のビット単位のNOTを実行します。

LITERAL

expr

アセンブラ式の値を取得します。これにより、通常のアセンブラ式の値をCFI式に挿入できます。

NOT

cfiexpr

論理CFI式を否定します。

UMINUS

cfiexpr

CFI式を算術的に論理否定します。

表159 CFI式の単項演算子 


2項演算子

全体的な構文:OPERATOR(operand1,operand2)

CFI演算子

オペランド

説明

ADD

cfiexprcfiexpr

加算

AND

cfiexprcfiexpr

ビット単位のAND

DIV

cfiexprcfiexpr

除算

EQ

cfiexprcfiexpr

等しい

GE

cfiexprcfiexpr

以上

GT

cfiexprcfiexpr

より大きい

LE

cfiexprcfiexpr

以下

LSHIFT

cfiexprcfiexpr

左オペランドの論理左シフト。シフト対象のビット数は、右オペランドで指定します。シフト時に符号ビットは保護されません。

LT

cfiexprcfiexpr

より小さい

MOD

cfiexprcfiexpr

剰余

MUL

cfiexprcfiexpr

乗算

NE

cfiexprcfiexpr

等しくない

OR

cfiexprcfiexpr

ビット単位のOR

RSHIFTA

cfiexprcfiexpr

左オペランドの算術右シフト。シフト対象のビット数は、右オペランドで指定します。RSHIFTLと違い、符号ビットはシフト時に保護されます。

RSHIFTL

cfiexprcfiexpr

左オペランドの論理右シフト。シフト対象のビット数は、右オペランドで指定します。シフト時に符号ビットは保護されません。

SUB

cfiexprcfiexpr

減算

XOR

cfiexprcfiexpr

ビット単位のXOR

表160 CFI式の2項演算子 


3項演算子

全体的な構文:OPERATOR(operand1,operand2,operand3)

演算子

オペランド

説明

FRAME

cfa,size,offset

スタックフレームから値を取得します。オペランドを以下に示します。

cfa以前に宣言されたCFAを指定する識別子。

sizeサイズをバイト単位で指定する定数式。

offsetサイズをバイト単位で指定する定数式。

サイズがsizeのアドレスcfa+offsetから値を取得します。

IF

cond、true、false

条件演算子。オペランドを以下に示します。

cond条件を示すCFI式。

true任意のCFI式

false任意のCFI式

条件式がゼロ以外である場合、結果はtrue式の値となりますが、それ以外の場合はfalse式の値となります。

LOAD

size、type、addr

メモリから値を取得します。オペランドを以下に示します。

sizeサイズをバイト単位で指定する定数式。

typeメモリタイプ。

addrメモリアドレスを示すCFI式。

セグメントメモリタイプtypeのアドレスaddrにおける値(サイズsizeを取得します。

表161 CFI式の3項演算子 


説明

これらのディレクティブを使用して、COMMONブロックやデータブロックのリソースやCFAを追跡します。

ディレクティブ

説明

CFI cfa

CFAの値を宣言します。

CFI resource

リソースの値を宣言します。

表162 リソースやCFAを追跡するためのコールフレーム情報ディレクティブ 


CFI ディレクティブの使用例

関連項目

コールフレームの使用の追跡