[ros-diffs] [arty] 27130: Fix bug in stack restore. Mask old H value in recent PTE map.

arty at svn.reactos.org arty at svn.reactos.org
Mon Jun 11 00:00:05 CEST 2007


Author: arty
Date: Mon Jun 11 02:00:05 2007
New Revision: 27130

URL: http://svn.reactos.org/svn/reactos?rev=27130&view=rev
Log:
Fix bug in stack restore.
Mask old H value in recent PTE map.

Modified:
    branches/powerpc/reactos/lib/mmu/mmuobject.c

Modified: branches/powerpc/reactos/lib/mmu/mmuobject.c
URL: http://svn.reactos.org/svn/reactos/branches/powerpc/reactos/lib/mmu/mmuobject.c?rev=27130&r1=27129&r2=27130&view=diff
==============================================================================
--- branches/powerpc/reactos/lib/mmu/mmuobject.c (original)
+++ branches/powerpc/reactos/lib/mmu/mmuobject.c Mon Jun 11 02:00:05 2007
@@ -89,7 +89,7 @@
 	".long 0\n\t");
 
 __asm__(".text\n\t"
-	".globl data_miss_finish_start\n\t"
+	".globl data_miss_finish_start\n"
 	"data_miss_finish_start:\n\t"
 	"lwz 2,8(1)\n\t"
 	"lwz 3,12(1)\n\t"
@@ -127,9 +127,8 @@
 	"mtcr 0\n\t"
 	"lwz 0,136(1)\n\t"
 	"mtctr 0\n\t"
-	"lwz 0,4(1)\n\t"
+	"lwz 0,0(1)\n\t"
 	"mfsprg1 1\n\t"
-	"lwz 0,0(1)\n\t"
 	"rfi\n\t");
 	
 /*
@@ -602,7 +601,7 @@
     int vsid = GetSR((addr >> 28) & 15) & PPC_VSID_MASK;
     ppc_map_t *map = mmuvirtmap(addr, vsid);
     if(!map) return 0;
-    map->pte.pteh |= hfun << 6;
+    map->pte.pteh = (map->pte.pteh & ~64) | (hfun << 6);
     PpcHashedPTE[ptegnum].block[Clock & 7] = map->pte;
 #if 0
     fmtout("Reloading addr %x (phys %x) at %x[%x] (%x:%x)\r\n",




More information about the Ros-diffs mailing list