10.107 __cdp コンパイラ組み込み関数

このコンパイラ組み込み関数を使用して、コンパイラによって生成される命令ストリームに CDP または CDP2 命令を挿入します。組み込み関数を使用すると、C または C++ コードにコプロセッサのデータ演算を含めることができます。

構文

__cdp(unsigned int coproc , unsigned int ops , unsigned int regs )
各項目には以下の意味があります。
coproc
命令が実行されるコプロセッサを識別します。
coproc は、0 ~ 15 の範囲内の整数である必要があります。
ops
CDP または CDP2 命令用の 2 つのオペコード((opcode1<<4) | opcode2 )のエンコーティングです。各項目には以下の意味があります。
  • 第 1 オペコード opcode1 は、命令の 4 ビットコプロセッサ固有のオペコードフィールドを占有します。
  • 第 2 オペコード opcode2 は、命令の 3 ビットコプロセッサ固有のオペコードフィールドを占有します。
0x100 ops に追加して、CDP2 命令を生成します。
regs
コプロセッサレジスタ (CRd<<8) | (CRn<<4) | CRm のエンコーディングです。ここで、 CRd CRn 、および CRm は、 CDP または CDP2 命令用のコプロセッサレジスタです。

使用法

これらの命令の使用方法はコプロセッサによって異なります。詳細については、使用しているコプロセッサのマニュアルを参照して下さい。

void copro_example()
{
    const unsigned int ops = 0xA3; // opcode1 = 0xA, opcode2 = 0x3 
    const unsigned int regs = 0xCDE; // CRd = 0xC (12), CRn = 0xD (13), CRm = 0xE (14)
    __cdp(4,ops,regs); // coprocessor number 4
    // This intrinsic produces the instruction CDP p4,#0xa,c12,c13,c14,#3
}
関連情報
CDP、CDP2
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.