diff options
author | dfr <dfr@FreeBSD.org> | 2001-10-23 10:20:04 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 2001-10-23 10:20:04 +0000 |
commit | 5f34b1282cc2f3da0c7491dd1bbb301e9e7220d0 (patch) | |
tree | 7957259d612571c60c8a4057f77c50ba0b34a278 | |
parent | f3a4628bcccee5336ab18f4ce63a3d7867336bf6 (diff) | |
download | FreeBSD-src-5f34b1282cc2f3da0c7491dd1bbb301e9e7220d0.zip FreeBSD-src-5f34b1282cc2f3da0c7491dd1bbb301e9e7220d0.tar.gz |
Add data serialisations after ptc and mov to rr[] instructions.
-rw-r--r-- | sys/ia64/include/ia64_cpu.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/sys/ia64/include/ia64_cpu.h b/sys/ia64/include/ia64_cpu.h index 9e0b573..5230ac1 100644 --- a/sys/ia64/include/ia64_cpu.h +++ b/sys/ia64/include/ia64_cpu.h @@ -205,7 +205,7 @@ ia64_tpa(u_int64_t va) static __inline void ia64_ptc_e(u_int64_t v) { - __asm __volatile("ptc.e %0;;" :: "r"(v)); + __asm __volatile("ptc.e %0;; srlz.d;;" :: "r"(v)); } /* @@ -214,7 +214,7 @@ ia64_ptc_e(u_int64_t v) static __inline void ia64_ptc_g(u_int64_t va, u_int64_t log2size) { - __asm __volatile("ptc.g %0,%1;;" :: "r"(va), "r"(log2size)); + __asm __volatile("ptc.g %0,%1;; srlz.d;;" :: "r"(va), "r"(log2size)); } /* @@ -223,7 +223,7 @@ ia64_ptc_g(u_int64_t va, u_int64_t log2size) static __inline void ia64_ptc_ga(u_int64_t va, u_int64_t log2size) { - __asm __volatile("ptc.ga %0,%1;;" :: "r"(va), "r"(log2size)); + __asm __volatile("ptc.ga %0,%1;; srlz.d;;" :: "r"(va), "r"(log2size)); } /* @@ -232,7 +232,7 @@ ia64_ptc_ga(u_int64_t va, u_int64_t log2size) static __inline void ia64_ptc_l(u_int64_t va, u_int64_t log2size) { - __asm __volatile("ptc.l %0,%1;;" :: "r"(va), "r"(log2size)); + __asm __volatile("ptc.l %0,%1;; srlz.d;;" :: "r"(va), "r"(log2size)); } /* @@ -472,7 +472,8 @@ ia64_get_lid(void) static __inline void ia64_set_rr(u_int64_t rrbase, u_int64_t v) { - __asm __volatile("mov rr[%0]=%1" :: "r"(rrbase), "r"(v) : "memory"); + __asm __volatile("mov rr[%0]=%1;; srlz.d;;" + :: "r"(rrbase), "r"(v) : "memory"); } /* |