For ia64_ptc_{e,g,ga,l}(), use instruction serialization. We

typically don't know what the TLB described and need to assume
that it affects the fetching of instructions.
This commit is contained in:
Marcel Moolenaar 2005-08-06 19:54:31 +00:00
parent 3c8f793fba
commit cbef4d0edc

View File

@ -226,7 +226,7 @@ ia64_tpa(u_int64_t va)
static __inline void
ia64_ptc_e(u_int64_t v)
{
__asm __volatile("ptc.e %0;; srlz.d;;" :: "r"(v));
__asm __volatile("ptc.e %0;; srlz.i;;" :: "r"(v));
}
/*
@ -235,7 +235,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;; srlz.d;;" :: "r"(va), "r"(log2size));
__asm __volatile("ptc.g %0,%1;; srlz.i;;" :: "r"(va), "r"(log2size));
}
/*
@ -244,7 +244,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;; srlz.d;;" :: "r"(va), "r"(log2size));
__asm __volatile("ptc.ga %0,%1;; srlz.i;;" :: "r"(va), "r"(log2size));
}
/*
@ -253,7 +253,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;; srlz.d;;" :: "r"(va), "r"(log2size));
__asm __volatile("ptc.l %0,%1;; srlz.i;;" :: "r"(va), "r"(log2size));
}
/*