|
@@ -29,13 +29,17 @@
|
|
|
*/
|
|
|
tsb_miss_dtlb:
|
|
|
mov TLB_TAG_ACCESS, %g4
|
|
|
+ ldxa [%g4] ASI_DMMU, %g4
|
|
|
+ srlx %g4, PAGE_SHIFT, %g4
|
|
|
ba,pt %xcc, tsb_miss_page_table_walk
|
|
|
- ldxa [%g4] ASI_DMMU, %g4
|
|
|
+ sllx %g4, PAGE_SHIFT, %g4
|
|
|
|
|
|
tsb_miss_itlb:
|
|
|
mov TLB_TAG_ACCESS, %g4
|
|
|
+ ldxa [%g4] ASI_IMMU, %g4
|
|
|
+ srlx %g4, PAGE_SHIFT, %g4
|
|
|
ba,pt %xcc, tsb_miss_page_table_walk
|
|
|
- ldxa [%g4] ASI_IMMU, %g4
|
|
|
+ sllx %g4, PAGE_SHIFT, %g4
|
|
|
|
|
|
/* At this point we have:
|
|
|
* %g1 -- PAGE_SIZE TSB entry address
|
|
@@ -284,6 +288,10 @@ tsb_do_dtlb_fault:
|
|
|
nop
|
|
|
.previous
|
|
|
|
|
|
+ /* Clear context ID bits. */
|
|
|
+ srlx %g5, PAGE_SHIFT, %g5
|
|
|
+ sllx %g5, PAGE_SHIFT, %g5
|
|
|
+
|
|
|
be,pt %xcc, sparc64_realfault_common
|
|
|
mov FAULT_CODE_DTLB, %g4
|
|
|
ba,pt %xcc, winfix_trampoline
|