diff options
author | Edjunior Machado <emachado@linux.vnet.ibm.com> | 2013-05-23 10:06:24 -0500 |
---|---|---|
committer | Ryan S. Arnold <rsa@linux.vnet.ibm.com> | 2013-05-23 10:32:47 -0500 |
commit | 9323d39baea2fb0cca3735136abe263eff405133 (patch) | |
tree | 2e0dbe5bd8e69d0e9193c13230b26924e294866d /sysdeps/powerpc/sys/platform | |
parent | 7b2991daea4fc20945a48c2d5c7fa200218cfd4e (diff) | |
download | glibc-9323d39baea2fb0cca3735136abe263eff405133.tar.gz glibc-9323d39baea2fb0cca3735136abe263eff405133.tar.xz glibc-9323d39baea2fb0cca3735136abe263eff405133.zip |
PowerPC: Add functions for shared resources hints.
Diffstat (limited to 'sysdeps/powerpc/sys/platform')
-rw-r--r-- | sysdeps/powerpc/sys/platform/ppc.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/sysdeps/powerpc/sys/platform/ppc.h b/sysdeps/powerpc/sys/platform/ppc.h index 740831e677..833f3d8480 100644 --- a/sysdeps/powerpc/sys/platform/ppc.h +++ b/sysdeps/powerpc/sys/platform/ppc.h @@ -50,4 +50,36 @@ __ppc_get_timebase (void) #endif } +/* The following functions provide hints about the usage of shared processor + resources, as defined in ISA 2.06 and newer. */ + +/* Provides a hint that performance will probably be improved if shared + resources dedicated to the executing processor are released for use by other + processors. */ +static inline void +__ppc_yield (void) +{ + __asm__ volatile ("or 27,27,27"); +} + +/* Provides a hint that performance will probably be improved if shared + resources dedicated to the executing processor are released until + all outstanding storage accesses to caching-inhibited storage have been + completed. */ +static inline void +__ppc_mdoio (void) +{ + __asm__ volatile ("or 29,29,29"); +} + +/* Provides a hint that performance will probably be improved if shared + resources dedicated to the executing processor are released until all + outstanding storage accesses to cacheable storage for which the data is not + in the cache have been completed. */ +static inline void +__ppc_mdoom (void) +{ + __asm__ volatile ("or 30,30,30"); +} + #endif /* sys/platform/ppc.h */ |