[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [IA64] remaining privified insns removed



# 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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.