summaryrefslogtreecommitdiffstats
path: root/sys/ia64/include/ia64_cpu.h
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>2000-10-10 14:57:10 +0000
committerdfr <dfr@FreeBSD.org>2000-10-10 14:57:10 +0000
commitf610b17c8dd279232337eb576658970e589f7a1d (patch)
tree8d0b26ae97d3c2ace12a1e77c2be829d9f59047b /sys/ia64/include/ia64_cpu.h
parent164f1d6866c8c4a001115b258310116282bf08c5 (diff)
downloadFreeBSD-src-f610b17c8dd279232337eb576658970e589f7a1d.zip
FreeBSD-src-f610b17c8dd279232337eb576658970e589f7a1d.tar.gz
* Add rudimentary DDB support (no kgdb, no backtrace, no single step).
* Track recent changes to SWI code. * Allocate RIDs for pmaps (untested). * Implement assembler version of cpu_switch - its cleaner that way.
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