diff options
author | dfr <dfr@FreeBSD.org> | 2000-10-10 14:57:10 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 2000-10-10 14:57:10 +0000 |
commit | f610b17c8dd279232337eb576658970e589f7a1d (patch) | |
tree | 8d0b26ae97d3c2ace12a1e77c2be829d9f59047b /sys/ia64/include/ia64_cpu.h | |
parent | 164f1d6866c8c4a001115b258310116282bf08c5 (diff) | |
download | FreeBSD-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.h | 36 |
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 |