aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/powerpc
diff options
context:
space:
mode:
authorEdjunior Machado <emachado@linux.vnet.ibm.com>2013-05-23 10:06:24 -0500
committerRyan S. Arnold <rsa@linux.vnet.ibm.com>2013-05-23 10:32:47 -0500
commit9323d39baea2fb0cca3735136abe263eff405133 (patch)
tree2e0dbe5bd8e69d0e9193c13230b26924e294866d /sysdeps/powerpc
parent7b2991daea4fc20945a48c2d5c7fa200218cfd4e (diff)
downloadglibc-9323d39baea2fb0cca3735136abe263eff405133.tar
glibc-9323d39baea2fb0cca3735136abe263eff405133.tar.gz
glibc-9323d39baea2fb0cca3735136abe263eff405133.tar.bz2
glibc-9323d39baea2fb0cca3735136abe263eff405133.zip
PowerPC: Add functions for shared resources hints.
Diffstat (limited to 'sysdeps/powerpc')
-rw-r--r--sysdeps/powerpc/sys/platform/ppc.h32
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 */