summaryrefslogtreecommitdiffstats
path: root/sys/ia64/include/ia64_cpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/ia64/include/ia64_cpu.h')
-rw-r--r--sys/ia64/include/ia64_cpu.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/sys/ia64/include/ia64_cpu.h b/sys/ia64/include/ia64_cpu.h
index 1639e88..186e136 100644
--- a/sys/ia64/include/ia64_cpu.h
+++ b/sys/ia64/include/ia64_cpu.h
@@ -183,6 +183,42 @@ ia64_tpa(u_int64_t va)
}
/*
+ * Generate a ptc.e instruction.
+ */
+static __inline void
+ia64_ptc_e(u_int64_t v)
+{
+ __asm __volatile("ptc.e %0;;" :: "r"(v));
+}
+
+/*
+ * Generate a ptc.g instruction.
+ */
+static __inline void
+ia64_ptc_g(u_int64_t va, u_int64_t log2size)
+{
+ __asm __volatile("ptc.g %0,%1;;" :: "r"(va), "r"(log2size));
+}
+
+/*
+ * Generate a ptc.ga instruction.
+ */
+static __inline void
+ia64_ptc_ga(u_int64_t va, u_int64_t log2size)
+{
+ __asm __volatile("ptc.ga %0,%1;;" :: "r"(va), "r"(log2size));
+}
+
+/*
+ * Generate a ptc.l instruction.
+ */
+static __inline void
+ia64_ptc_l(u_int64_t va, u_int64_t log2size)
+{
+ __asm __volatile("ptc.l %0,%1;;" :: "r"(va), "r"(log2size));
+}
+
+/*
* Read the value of ar.k0.
*/
static __inline u_int64_t
OpenPOWER on IntegriCloud