Cache-related built-ins

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*); Touch a memory location by using an explicit load.
void __prefetch_by_stream(const int, const void*); Touch 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.

(POWER5 processors only)

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

(POWER5 processors only)

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.

(POWER5 processors only)

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.

(PowerPC 970 and POWER5 processors only)

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

(POWER5 processors only)

void __protected_stream_stop_all(); Stops prefetching all protected steams.

(POWER5 processors only)