]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/sparc64/kernel/itlb_miss.S
Merge branch 'linus' into x86/gart
[linux-2.6-omap-h63xx.git] / arch / sparc64 / kernel / itlb_miss.S
index 730caa4a1506ce3467a86b004f1a0c3f54fd8037..5a8377b54955b3ff57ff82414575a237b1c0d787 100644 (file)
@@ -2,16 +2,16 @@
        ldxa    [%g0] ASI_IMMU_TSB_8KB_PTR, %g1 ! Get TSB 8K pointer
        ldxa    [%g0] ASI_IMMU, %g6             ! Get TAG TARGET
        srlx    %g6, 48, %g5                    ! Get context
+       sllx    %g6, 22, %g6                    ! Zero out context
        brz,pn  %g5, kvmap_itlb                 ! Context 0 processing
-        nop                                    ! Delay slot (fill me)
+        srlx   %g6, 22, %g6                    ! Delay slot
        TSB_LOAD_QUAD(%g1, %g4)                 ! Load TSB entry
        cmp     %g4, %g6                        ! Compare TAG
-       sethi   %hi(PAGE_EXEC), %g4             ! Setup exec check
 
 /* ITLB ** ICACHE line 2: TSB compare and TLB load     */
-       ldx     [%g4 + %lo(PAGE_EXEC)], %g4
        bne,pn  %xcc, tsb_miss_itlb             ! Miss
         mov    FAULT_CODE_ITLB, %g3
+       sethi   %hi(_PAGE_EXEC_4U), %g4
        andcc   %g5, %g4, %g0                   ! Executable?
        be,pn   %xcc, tsb_do_fault
         nop                                    ! Delay slot, fill me