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(...)
Where:
...denotes any number of pointer or integer arguments specifying addresses of memory to prefetch.
If the target architecture does not support data prefetching, this intrinsic has no effect.
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;
}