summaryrefslogtreecommitdiffstats
path: root/sys/ia64/include
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>2001-10-23 10:20:04 +0000
committerdfr <dfr@FreeBSD.org>2001-10-23 10:20:04 +0000
commit5f34b1282cc2f3da0c7491dd1bbb301e9e7220d0 (patch)
tree7957259d612571c60c8a4057f77c50ba0b34a278 /sys/ia64/include
parentf3a4628bcccee5336ab18f4ce63a3d7867336bf6 (diff)
downloadFreeBSD-src-5f34b1282cc2f3da0c7491dd1bbb301e9e7220d0.zip
FreeBSD-src-5f34b1282cc2f3da0c7491dd1bbb301e9e7220d0.tar.gz
Add data serialisations after ptc and mov to rr[] instructions.
Diffstat (limited to 'sys/ia64/include')
-rw-r--r--sys/ia64/include/ia64_cpu.h11
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");
}
/*
OpenPOWER on IntegriCloud