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

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

Note

この組み込み関数は、専門的な知識を持つ上級ユーザを対象としたものです。

Show/hide構文

__cdp(unsigned int coproc, unsigned int ops, unsigned int regs)

各パラメータには以下の意味があります。

coproc

命令が実行されるコプロセッサを識別します。

coproc は、0 ~ 15 の範囲内の整数である必要があります。

ops

次の CDP または CDP2 命令の 2 つのオペコードのエンコーディングです。 (opcode1<<3) | opcode2。ここで、

  • 第 1 オペコードの opcode1 には、4 ビットコプロセッサ固有のオペコードを指定します。

  • 第 2 オペコードの opcode2 には、オプションとしての 3 ビットコプロセッサ固有のオペコードを指定します。

0x100ops に追加して、CDP2 命令を生成します。

regs

次のコプロセッサレジスタのエンコーディングです。(CRd<<8) | (CRn<<4) | CRm。ここで、CRdCRn、および CRm は、CDP または CDP2 命令のコプロセッサレジスタです。

Show/hide使用法

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

Show/hide

void copro_example()
{
    const unsigned int ops = 0xA3; // opcode1 = A、opcode2 = 3
    const unsigned int regs = 0xCDE; // reg1 = C、reg2 = D、reg3 = E
    __cdp(4,ops,regs); // コプロセッサ番号 4
    // このコンパイラ組み込み関数によって命令 CDP p4,#0xa,c12,c13,c14,#3 が生成されます。
}

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491EJ
Non-ConfidentialID081711