WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] [IA64] Avoid wild use of registers.

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [IA64] Avoid wild use of registers.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 21 Feb 2008 07:10:43 -0800
Delivery-date: Fri, 22 Feb 2008 07:30:07 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1203438322 25200
# Node ID 6aa10413da5bd6fac5edf526cfa2b46e61fb161c
# Parent  aaf4d6d1d83e8a5ef5b2f644a90950ac7994fcb5
[IA64] Avoid wild use of registers.

This patch avoids wild use of registers (r9,p6,p7) in guest_vhpt_lookup.

Signed-off-by: Tristan Gingold <tgingold@xxxxxxx>
---
 xen/arch/ia64/vmx/vtlb.c |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diff -r aaf4d6d1d83e -r 6aa10413da5b xen/arch/ia64/vmx/vtlb.c
--- a/xen/arch/ia64/vmx/vtlb.c  Tue Feb 19 09:22:25 2008 -0700
+++ b/xen/arch/ia64/vmx/vtlb.c  Tue Feb 19 09:25:22 2008 -0700
@@ -272,9 +272,10 @@ thash_data_t * vhpt_lookup(u64 va)
 
 u64 guest_vhpt_lookup(u64 iha, u64 *pte)
 {
-    u64 ret;
+    u64 ret, tmp;
     thash_data_t * data;
 
+    /* Try to fill mTLB for the gVHPT entry.  */
     data = vhpt_lookup(iha);
     if (data == NULL) {
         data = __vtr_lookup(current, iha, DSIDE_TLB);
@@ -285,17 +286,18 @@ u64 guest_vhpt_lookup(u64 iha, u64 *pte)
 
     asm volatile ("rsm psr.ic|psr.i;;"
                   "srlz.d;;"
-                  "ld8.s r9=[%1];;"
-                  "tnat.nz p6,p7=r9;;"
-                  "(p6) mov %0=1;"
-                  "(p6) mov r9=r0;"
-                  "(p7) extr.u r9=r9,0,53;;"
-                  "(p7) mov %0=r0;"
-                  "(p7) st8 [%2]=r9;;"
+                  "ld8.s %1=[%2];;"            /* Read VHPT entry.  */
+                  "tnat.nz p6,p7=%1;;"         /* Success ?  */
+                  "(p6) mov %0=1;"             /* No -> ret = 1.  */
+                  "(p6) mov %1=r0;"
+                  "(p7) extr.u %1=%1,0,53;;"   /* Yes -> mask ig bits.  */
+                  "(p7) mov %0=r0;"            /*     -> ret = 0.  */
+                  "(p7) st8 [%3]=%1;;"         /*     -> save.  */
                   "ssm psr.ic;;"
                   "srlz.d;;"
                   "ssm psr.i;;"
-                  : "=r"(ret) : "r"(iha), "r"(pte):"memory");
+                  : "=r"(ret), "=r"(tmp)
+                  : "r"(iha), "r"(pte):"memory","p6","p7");
     return ret;
 }
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [IA64] Avoid wild use of registers., Xen patchbot-unstable <=