summaryrefslogtreecommitdiffstats
path: root/sys/ia64
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2003-08-15 05:46:33 +0000
committermarcel <marcel@FreeBSD.org>2003-08-15 05:46:33 +0000
commit5fbc98d240f5b39f16a9b3516deb35dfac88f11a (patch)
tree57dd88836d788bfbb26fc2533d0e01c32d1deb77 /sys/ia64
parentb37a3e34cdfb5be8f3c34d2edf399635a319130a (diff)
downloadFreeBSD-src-5fbc98d240f5b39f16a9b3516deb35dfac88f11a.zip
FreeBSD-src-5fbc98d240f5b39f16a9b3516deb35dfac88f11a.tar.gz
Add an instruction group break after the move to application register
and the move to control register to avoid dependency violations when these functions are used. Note that explicit data and instruction serialization also need to be in a subsequent instruction group. This too requires that we have an igrp break here.
Diffstat (limited to 'sys/ia64')
-rw-r--r--sys/ia64/include/ia64_cpu.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/ia64/include/ia64_cpu.h b/sys/ia64/include/ia64_cpu.h
index 35f1f4f..3e9f767 100644
--- a/sys/ia64/include/ia64_cpu.h
+++ b/sys/ia64/include/ia64_cpu.h
@@ -284,7 +284,7 @@ ia64_get_##name(void) \
static __inline void \
ia64_set_##name(u_int64_t v) \
{ \
- __asm __volatile("mov ar." #name "=%0" :: "r" (v)); \
+ __asm __volatile("mov ar." #name "=%0;;" :: "r" (v)); \
}
IA64_AR(k0)
@@ -340,7 +340,7 @@ ia64_get_##name(void) \
static __inline void \
ia64_set_##name(u_int64_t v) \
{ \
- __asm __volatile("mov cr." #name "=%0" :: "r" (v)); \
+ __asm __volatile("mov cr." #name "=%0;;" :: "r" (v)); \
}
IA64_CR(dcr)
OpenPOWER on IntegriCloud