You copied the Doc URL to your clipboard.

__pld intrinsic

This intrinsic inserts a data prefetch, for example PLD, into the instruction stream generated by the compiler. It enables you to signal to the memory system from your C or C++ program that a data load from an address is likely in the near future.


void __pld(...)



denotes any number of pointer or integer arguments specifying addresses of memory to prefetch.


If the target architecture does not support data prefetching, the compiler generates neither a PLD instruction nor a NOP instruction, but ignores the intrinsic.


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;

See also