Add an isync to after mtsrin, required by the MPC750 errata

MPC750 User Manual Errata (rev 1) adds a note to C.4.2.2 noting that mtsr,
mtsrin, and mtmsr all require a isync after the instruction and before data
address translation uses any of the segment registers.  This should make FreeBSD
run correctly on the G3 again.

Reported by:	Mark Millard
MFC after:	1 week
This commit is contained in:
Justin Hibbits 2016-11-25 19:36:27 +00:00
parent 9d99bb0a0a
commit 5ccc0779d4

View file

@ -82,7 +82,7 @@ static __inline void
mtsrin(vm_offset_t va, register_t value)
{
__asm __volatile ("mtsrin %0,%1" :: "r"(value), "r"(va));
__asm __volatile ("mtsrin %0,%1; isync" :: "r"(value), "r"(va));
}
static __inline register_t