# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID bbfbb9e09b551fed30ff657948ebe0d1f3f4a37f
# Parent cd15ba9aa1ccfce053b2c9fb245ce55cdc7f9404
[IA64] remaining privified insns removed
Privified insns replaced by hyperprivops.
Signed-off-by: Tristan Gingold <tristan.gingold@xxxxxxxx>
diff -r cd15ba9aa1cc -r bbfbb9e09b55
linux-2.6-xen-sparse/arch/ia64/xen/hypercall.S
--- a/linux-2.6-xen-sparse/arch/ia64/xen/hypercall.S Thu Mar 16 19:19:08 2006
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/hypercall.S Thu Mar 16 19:20:59 2006
@@ -254,7 +254,6 @@
st8 [r11]=r10
;;
br.ret.sptk.many rp
- ;;
END(xen_set_rr)
GLOBAL_ENTRY(xen_fc)
@@ -264,7 +263,16 @@
(p7) fc r32;;
(p7) br.ret.sptk.many rp
;;
- ptc.e r96 // this is a "privified" fc r32
+ movl r9=XSI_PSR_IC
+ mov r8=r32
+ ;;
+ ld8 r10=[r9]
+ ;;
+ st8 [r9]=r0
+ ;;
+ XEN_HYPER_FC
+ ;;
+ st8 [r9]=r10
;;
br.ret.sptk.many rp
END(xen_fc)
@@ -276,7 +284,16 @@
(p7) mov r8=cpuid[r32];;
(p7) br.ret.sptk.many rp
;;
- mov r72=rr[r32] // this is a "privified" mov r8=cpuid[r32]
+ movl r9=XSI_PSR_IC
+ mov r8=r32
+ ;;
+ ld8 r10=[r9]
+ ;;
+ st8 [r9]=r0
+ ;;
+ XEN_HYPER_GET_CPUID
+ ;;
+ st8 [r9]=r10
;;
br.ret.sptk.many rp
END(xen_get_cpuid)
@@ -288,7 +305,16 @@
(p7) mov r8=pmd[r32];;
(p7) br.ret.sptk.many rp
;;
- mov r72=pmc[r32] // this is a "privified" mov r8=pmd[r32]
+ movl r9=XSI_PSR_IC
+ mov r8=r32
+ ;;
+ ld8 r10=[r9]
+ ;;
+ st8 [r9]=r0
+ ;;
+ XEN_HYPER_GET_PMD
+ ;;
+ st8 [r9]=r10
;;
br.ret.sptk.many rp
END(xen_get_pmd)
@@ -301,10 +327,20 @@
(p7) mov r8=ar24;;
(p7) br.ret.sptk.many rp
;;
- mov ar24=r72 // this is a "privified" mov r8=ar.eflg
+ movl r9=XSI_PSR_IC
+ mov r8=r32
+ ;;
+ ld8 r10=[r9]
+ ;;
+ st8 [r9]=r0
+ ;;
+ XEN_HYPER_GET_EFLAG
+ ;;
+ st8 [r9]=r10
;;
br.ret.sptk.many rp
END(xen_get_eflag)
+
// some bits aren't set if pl!=0, see SDM vol1 3.1.8
GLOBAL_ENTRY(xen_set_eflag)
movl r8=running_on_xen;;
@@ -313,11 +349,17 @@
(p7) mov ar24=r32
(p7) br.ret.sptk.many rp
;;
- // FIXME: this remains no-op'd because it generates
- // a privileged register (general exception) trap rather than
- // a privileged operation fault
- //mov ar24=r32
- ;;
- br.ret.sptk.many rp
-END(xen_get_eflag)
+ movl r9=XSI_PSR_IC
+ mov r8=r32
+ ;;
+ ld8 r10=[r9]
+ ;;
+ st8 [r9]=r0
+ ;;
+ XEN_HYPER_SET_EFLAG
+ ;;
+ st8 [r9]=r10
+ ;;
+ br.ret.sptk.many rp
+END(xen_set_eflag)
#endif
diff -r cd15ba9aa1cc -r bbfbb9e09b55 linux-2.6-xen-sparse/arch/ia64/xen/xenivt.S
--- a/linux-2.6-xen-sparse/arch/ia64/xen/xenivt.S Thu Mar 16 19:19:08 2006
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/xenivt.S Thu Mar 16 19:20:59 2006
@@ -723,16 +723,12 @@
movl r30=1f // load continuation point in
case of nested fault
;;
#ifdef CONFIG_XEN
-#if 1
mov r18=r8;
mov r8=r16;
XEN_HYPER_THASH;;
mov r17=r8;
mov r8=r18;;
#else
- tak r17=r80 // "privified" thash
-#endif
-#else
thash r17=r16 // compute virtual address of
L3 PTE
#endif
mov r29=b0 // save b0 in case of nested
fault
@@ -812,16 +808,12 @@
#endif /* CONFIG_ITANIUM */
;;
#ifdef CONFIG_XEN
-#if 1
mov r18=r8;
mov r8=r16;
XEN_HYPER_THASH;;
mov r17=r8;
mov r8=r18;;
#else
- tak r17=r80 // "privified" thash
-#endif
-#else
thash r17=r16 // compute virtual address of
L3 PTE
#endif
mov r29=b0 // save b0 in case of nested
fault)
@@ -898,15 +890,11 @@
movl r30=1f // load continuation point in
case of nested fault
;;
#ifdef CONFIG_XEN
-#if 1
mov r18=r8;
mov r8=r16;
XEN_HYPER_THASH;;
mov r17=r8;
mov r8=r18;;
-#else
- tak r17=r80 // "privified" thash
-#endif
#else
thash r17=r16 // compute virtual address of
L3 PTE
#endif
diff -r cd15ba9aa1cc -r bbfbb9e09b55
linux-2.6-xen-sparse/include/asm-ia64/xen/privop.h
--- a/linux-2.6-xen-sparse/include/asm-ia64/xen/privop.h Thu Mar 16
19:19:08 2006
+++ b/linux-2.6-xen-sparse/include/asm-ia64/xen/privop.h Thu Mar 16
19:20:59 2006
@@ -33,6 +33,11 @@
#define XEN_HYPER_GET_RR break 0x10
#define XEN_HYPER_SET_RR break 0x11
#define XEN_HYPER_SET_KR break 0x12
+#define XEN_HYPER_FC break 0x13
+#define XEN_HYPER_GET_CPUID break 0x14
+#define XEN_HYPER_GET_PMD break 0x15
+#define XEN_HYPER_GET_EFLAG break 0x16
+#define XEN_HYPER_SET_EFLAG break 0x17
#endif
#ifndef __ASSEMBLY__
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|