Cache-related built-in functions

Prototype Description
void __dcbt (void *); Data Cache Block Touch

Loads the block of memory containing the specified address into the data cache.

void __dcbz (void *); Data Cache Block set to Zero

Sets a cache line containing the specified address in the data cache to zero (0).

void __prefetch_by_load(const void*); Touches a memory location by using an explicit load.
void __prefetch_by_stream(const int, const void*); Touches a memory location by using an explicit stream.
void __protected_stream_count(unsigned int unit_cnt, unsigned int ID); Sets unit_cnt number of cache lines for the limited length protected stream with identifier ID. unit_cnt must be an integer with value of 0 to 1023. Stream ID must have integer value 0 to 15.

Supported only when the target architecture is specified for POWER5 processors (-qarch is set to pwr5 or pwr5x).

void __protected_stream_go(); Starts prefetching all limited-length protected streams.

Supported only when the target architecture is specified for POWER5 processors (-qarch is set to pwr5 or pwr5x).

void __protected_stream_set(unsigned int direction, const void* addr, unsigned int ID); Establishes a limited length protected stream using identifier ID, which begins with the cache line at addr and then depending on the value of direction, fetches from either incremental (forward) or decremental (backward) memory addresses. The stream is protected from being replaced by any hardware detected streams.

direction must have value of 1 (forward) or 3 (backward). Stream ID must have integer value 0 to 15.

Supported only when the target architecture is specified for POWER5 processors (-qarch is set to pwr5 or pwr5x).

void __protected_unlimited_stream_set_go (unsigned int direction, const void* addr, unsigned int ID); Establishes an unlimited length protected stream using identifier ID, which begins with the cache line at addr and then depending on the value of direction, fetches from either incremental (forward) or decremental (backward) memory addresses. The stream is protected from being replaced by any hardware detected streams.

Direction must have value of 1 (forward) or 3 (backward). Stream ID must have integer value 0 to 15.

Supported only when the target architecture is specified for POWER5 or PowerPC 970 processors (-qarch is set to pwr5, pwr5x, or ppc970).

void __protected_stream_stop(unsigned int ID); Stops prefetching the protected steam with identifier ID.

Supported only when the target architecture is specified for POWER5 processors (-qarch is set to pwr5 or pwr5x).

void __protected_stream_stop_all(); Stops prefetching all protected steams.

Supported only when the target architecture is specified for POWER5 processors (-qarch is set to pwr5 or pwr5x).