10.128 __pld コンパイラ組み込み関数

このコンパイラ組み込み関数を使用して、コンパイラによって生成される命令ストリームに PLD などのデータプリフェッチを挿入します。これにより、アドレスからのデータのロードが実行されることを、C または C++ プログラムからメモリシステムに事前に通知することができます。

構文

void __pld(...)
各項目には以下の意味があります。
...
プリフェッチするメモリのアドレスを指定する、任意の数のポインタまたは整数引数を示します。

制約条件

ターゲットアーキテクチャがデータのプリフェッチをサポートしない場合、コンパイラからは PLD 命令も NOP 命令も生成されず、このコンパイラ組み込み関数は無視されます。

extern int data1;
extern int data2;
volatile int *interrupt = (volatile int *)0x8000;
volatile int *uart = (volatile int *)0x9000;
void get(void)
{
    __pld(data1, data2);
    while (!*interrupt);
    *uart = data1;        // trigger uart as soon as interrupt occurs
    *(uart+1) = data2;
}
関連する参考文書
10.130  __pli コンパイラ組み込み関数
10.129 __pldw コンパイラ組み込み関数
関連情報
PLD、PLDW、PLI
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.