summaryrefslogtreecommitdiff
path: root/usr/src/uts/intel/asm/cpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/intel/asm/cpu.h')
-rw-r--r--usr/src/uts/intel/asm/cpu.h34
1 files changed, 21 insertions, 13 deletions
diff --git a/usr/src/uts/intel/asm/cpu.h b/usr/src/uts/intel/asm/cpu.h
index 63d346da74..0f285f82b1 100644
--- a/usr/src/uts/intel/asm/cpu.h
+++ b/usr/src/uts/intel/asm/cpu.h
@@ -42,6 +42,8 @@ extern __inline__ void ht_pause(void)
"pause");
}
+#if !defined(__xpv)
+
extern __inline__ void cli(void)
{
__asm__ __volatile__(
@@ -60,6 +62,8 @@ extern __inline__ void i86_halt(void)
"sti; hlt");
}
+#endif /* !__xpv */
+
#endif /* __i386 || defined(__amd64) */
#if defined(__amd64)
@@ -67,41 +71,45 @@ extern __inline__ void i86_halt(void)
extern __inline__ void __set_ds(selector_t value)
{
__asm__ __volatile__(
- "movw %0, %%ds"
- : /* no output */
- : "r" (value));
+ "movw %0, %%ds"
+ : /* no output */
+ : "r" (value));
}
extern __inline__ void __set_es(selector_t value)
{
__asm__ __volatile__(
- "movw %0, %%es"
- : /* no output */
- : "r" (value));
+ "movw %0, %%es"
+ : /* no output */
+ : "r" (value));
}
extern __inline__ void __set_fs(selector_t value)
{
__asm__ __volatile__(
- "movw %0, %%fs"
- : /* no output */
- : "r" (value));
+ "movw %0, %%fs"
+ : /* no output */
+ : "r" (value));
}
extern __inline__ void __set_gs(selector_t value)
{
__asm__ __volatile__(
- "movw %0, %%gs"
- : /* no output */
- : "r" (value));
+ "movw %0, %%gs"
+ : /* no output */
+ : "r" (value));
}
+#if !defined(__xpv)
+
extern __inline__ void __swapgs(void)
{
__asm__ __volatile__(
- "mfence; swapgs");
+ "mfence; swapgs");
}
+#endif /* !__xpv */
+
#endif /* __amd64 */
#endif /* !__lint && __GNUC__ */