Lines Matching refs:page
104 * Maps a page or block into a pmap
215 addic r23,r9,-4096 ; Get the length to the last page
222 addc r9,r0,r23 ; Add size to get last page in new range
269 rlwinm r11,r24,mpPcfgb+2,mpPcfg>>6 ; Get the index into the page config table
271 lwz r11,lgpPcfg(r11) ; Get the page config
274 lwz r4,pmapResidentCnt(r28) ; Get the mapped page count
276 addi r4,r4,1 ; Bump up the mapped page count
277 stw r4,pmapResidentCnt(r28) ; Set the mapped page count
290 srw r9,r9,r11 ; Isolate just the page index
451 * Remove mapping via pmap, regular page, no pte
466 * Remove mapping via pmap, regular page, with pte
747 lwz r4,pmapResidentCnt(r28) ; Get the mapped page count
751 subi r4,r4,1 ; Drop down the mapped page count
752 stw r4,pmapResidentCnt(r28) ; Set the mapped page count
778 hrmPerm: li r8,-4096 ; Get the value we need to round down to a page
779 and r8,r8,r31 ; Get back to a page
834 hrmRetn32: rlwinm r8,r31,0,0,19 ; Find start of page
853 rlwinm r16,r16,0,0,19 ; Clean to a page boundary
925 slwi r0,r9,12 ; Make cursor into page offset
941 rlwinm r21,r27,26,10,25 ; Shift page index to PTEG offset (and remember VADDR in R27)
947 hrmBInv32: rlwinm r23,r30,0,10,25 ; Isolate just the page index
1006 subi r5,r25,63 ; Subtract TLB size from page count (note we are 0 based here)
1024 addi r27,r27,0x1000 ; Up to the next page
1086 lwz r4,pmapResidentCnt(r28) ; Get the mapped page count
1088 subi r4,r4,1 ; Drop down the mapped page count
1089 stw r4,pmapResidentCnt(r28) ; Set the mapped page count
1114 // **** Need to adjust above shift based on the page size - large pages need to shift a bit more
1116 rldimi r23,r30,0,36 ; Insert the page portion of the VPN
1164 lwz r4,pmapResidentCnt(r28) ; Get the mapped page count
1166 subi r4,r4,1 ; Drop down the mapped page count
1167 stw r4,pmapResidentCnt(r28) ; Set the mapped page count
1220 hrmRetn64: rldicr r8,r31,0,51 ; Find start of page
1261 srdi r27,r27,12 ; Change address into page index
1279 add r22,r4,r30 ; Get end page number
1281 hrmBInv64: srdi r0,r30,2 ; Shift page index over to form ESID
1283 rlwinm r2,r30,0,16,31 ; Get the current page index
1345 subi r5,r25,255 ; Subtract TLB size from page count (note we are 0 based here)
1366 rldimi r2,r27,0,36 ; Insert the page portion of the VPN
1370 addi r27,r27,0x1000 ; Up to the next page
1429 lwz r4,pmapResidentCnt(r28) ; Get the mapped page count
1431 subi r4,r4,1 ; Drop down the mapped page count
1432 stw r4,pmapResidentCnt(r28) ; Set the mapped page count
1492 la r31,VMX_HPIDX_OFFSET(r26) ; r31 <- base of hash page physical index
1496 ; Form index offset from hash page number
1497 add r31,r31,r12 ; r31 <- hash page index entry
1501 lwz r31,4(r31) ; r31 <- hash page paddr
1542 ld r31,0(r31) ; r31 <- hash page paddr
1618 lwz r3,mpPAddr(r31) ; r3 <- physical 4K-page number
1619 bl mapFindLockPN ; Find 'n' lock this page's physent
1731 * Remove mapping via physical page (mapping_purge)
1783 beq-- hppNone ; There are no more mappings on physical page
1961 * Remove mapping via physical page (mapping_purge)
2302 li r7,0xFFF ; Get a page size mask
2305 andc r3,r12,r7 ; Move the mapping back down to a page
2413 li r26,0xFFF ; Get a mask to relocate to start of mapping page
2419 andc r4,r31,r26 ; Get back to the mapping page start
2567 * walks all mapping for a physical page and performs
2850 ; We changed the attributes of a mapped page. Make sure there are no cache paradoxes.
2853 hwpSAM: li r11,4096 ; Get page size
2861 li r11,4096 ; Get page size
3296 li r3,mapRtNotFnd ; Set that we did not find the requested page
3310 li r3,mapRtPerm ; Set that we hit a permanent page
3484 li r3,mapRtNotFnd ; Set that we did not find the requested page
3495 ; mapFindLockPN - find and lock physent for a given page number
3538 lwz r5,mpPAddr(r31) ; Get physical page number
3722 * handlePF - handle a page fault interruption
3731 * NOTE: In order for a page-fault redrive to work, the translation miss
4268 lwz r24,mpPAddr(r31) ; Grab the base physical page number for the mapping
4272 rlwinm r0,r23,0,4,19 ; Isolate just the page index
4280 sub r25,r23,r25 ; Get offset in mapping to page (0 unless block map)
4344 bl mapFindPhyTry ; Go find and try to lock physent (note: if R3 is 0, there is no physent for this page)
4452 lwz r24,mpPAddr(r31) ; Grab the base physical page number for the mapping
4465 rlwinm r0,r11,0,4,19 ; Clear out everything but the page
4470 srdi r19,r19,5 ; Convert page offset to hash table offset
4476 add r24,r24,r11 ; Get actual physical address of this page
4533 srdi r3,r7,12 ; Change page address to a page address
4534 bl mapFindPhyTry ; Go find and try to lock physent (note: if R3 is 0, there is no physent for this page)
4549 sldi r11,r11,5 ; Move this to the page position
4557 rldimi r12,r11,0,41 ; Stick the low part of the page number into the AVPN
4683 ; Guest shadow assist -- page fault handler
4687 ; index over the discontiguous multi-page shadow hash table. The index
4689 ; that page is searched for a valid and active entry that contains
4694 ; physical hash page is located.
4696 ; The VMM pmap extension block occupies a page. Begining at offset 0, we
4703 ; the page fault path at hpfGVfound with the mapping's address in r31;
4718 la r31,VMX_HPIDX_OFFSET(r11) ; r31 <- base of hash page physical index
4719 rlwinm r10,r30,0,0xFFFFF000 ; r10 <- page-aligned guest vaddr
4725 ; Form index offset from hash page number
4726 add r31,r31,r4 ; r31 <- hash page index entry
4727 lwz r31,4(r31) ; r31 <- hash page paddr
4779 la r31,VMX_HPIDX_OFFSET(r11) ; r31 <- base of hash page physical index
4787 ; Form index offset from hash page number
4788 add r31,r31,r4 ; r31 <- hash page index entry
4789 ld r31,0(r31) ; r31 <- hash page paddr
5722 ; r28 : current hash table page index
5770 li r28,0 ; r28 <- first hash page table index to search
5773 la r31,VMX_HPIDX_OFFSET(r25) ; Get base of hash page physical index
5775 ; Convert page index into page physical index offset
5776 add r31,r31,r11 ; Calculate page physical index entry address
5778 lwz r31,4(r31) ; r31 <- first slot in hash table page to examine
5779 b graLoop ; Examine all slots in this page
5780 gra64Page: ld r31,0(r31) ; r31 <- first slot in hash table page to examine
5781 b graLoop ; Examine all slots in this page
5826 lwz r3,mpPAddr(r31) ; r3 <- physical 4K-page number
5827 bl mapFindLockPN ; Find 'n' lock this page's physent
5892 rlwinm. r0,r31,0,GV_PAGE_MASK ; End of hash table page?
5894 addi r28,r28,1 ; Increment hash table page index
5896 bne graPgLoop ; Examine next hash table page
5939 ; r21 : current hash table page address
6013 la r21,VMX_HPIDX_OFFSET(r25) ; Get base of hash page physical index
6015 ; Extract page index from map word index and convert
6016 ; into page physical index offset
6017 add r21,r21,r11 ; Calculate page physical index entry address
6019 lwz r21,4(r21) ; Get selected hash table page's address
6020 b grlLoop ; Examine all slots in this page
6021 grl64Page: ld r21,0(r21) ; Get selected hash table page's address
6022 b grlLoop ; Examine all slots in this page
6035 add r31,r31,r21 ; Add hash page address yielding mapping slot address
6159 la r31,VMX_HPIDX_OFFSET(r11) ; r31 <- base of hash page physical index
6163 ; Form index offset from hash page number
6164 add r31,r31,r10 ; r31 <- hash page index entry
6165 lwz r31,4(r31) ; r31 <- hash page paddr
6175 la r31,VMX_HPIDX_OFFSET(r11) ; r31 <- base of hash page physical index
6179 ; Form index offset from hash page number
6180 add r31,r31,r10 ; r31 <- hash page index entry
6181 ld r31,0(r31) ; r31 <- hash page paddr
6304 lwz r3,mpPAddr(r31) ; r3 <- physical 4K-page number
6305 bl mapFindLockPN ; Find 'n' lock this page's physent
6476 ; r8 : physical address, 32-bit page number
6486 ; r29 : physical address, 32-bit 4k-page number
6528 la r22,VMX_HPIDX_OFFSET(r11) ; r22 <- base of hash page physical index
6532 ; Form index offset from hash page number
6533 add r22,r22,r10 ; r22 <- hash page index entry
6534 lwz r22,4(r22) ; r22 <- hash page paddr
6542 la r22,VMX_HPIDX_OFFSET(r11) ; r22 <- base of hash page physical index
6546 ; Form index offset from hash page number
6547 add r22,r22,r10 ; r22 <- hash page index entry
6548 ld r22,0(r22) ; r22 <- hash page paddr
6711 lwz r3,mpPAddr(r31) ; r3 <- physical 4K-page number
6712 bl mapFindLockPN ; Find 'n' lock this page's physent
6784 bl mapFindLockPN ; Find 'n' lock this page's physent
6893 la r31,VMX_HPIDX_OFFSET(r11) ; r31 <- base of hash page physical index
6897 ; Form index offset from hash page number
6898 add r31,r31,r10 ; r31 <- hash page index entry
6899 lwz r31,4(r31) ; r31 <- hash page paddr
6907 la r31,VMX_HPIDX_OFFSET(r11) ; r31 <- base of hash page physical index
6911 ; Form index offset from hash page number
6912 add r31,r31,r10 ; r31 <- hash page index entry
6913 ld r31,0(r31) ; r31 <- hash page paddr
7103 la r31,VMX_HPIDX_OFFSET(r11) ; r31 <- base of hash page physical index
7107 ; Form index offset from hash page number
7108 add r31,r31,r10 ; r31 <- hash page index entry
7109 lwz r31,4(r31) ; r31 <- hash page paddr
7118 la r31,VMX_HPIDX_OFFSET(r11) ; r31 <- base of hash page physical index
7122 ; Form index offset from hash page number
7123 add r31,r31,r10 ; r31 <- hash page index entry
7124 ld r31,0(r31) ; r31 <- hash page paddr
7357 la r31,VMX_HPIDX_OFFSET(r11) ; r31 <- base of hash page physical index
7361 ; Form index offset from hash page number
7362 add r31,r31,r10 ; r31 <- hash page index entry
7363 lwz r31,4(r31) ; r31 <- hash page paddr
7372 la r31,VMX_HPIDX_OFFSET(r11) ; r31 <- base of hash page physical index
7376 ; Form index offset from hash page number
7377 add r31,r31,r10 ; r31 <- hash page index entry
7378 ld r31,0(r31) ; r31 <- hash page paddr
7459 gthSrchHit: lwz r3,mpPAddr(r31) ; r3 <- physical 4K-page number
7460 bl mapFindLockPN ; Find 'n' lock this page's physent
7609 la r31,VMX_HPIDX_OFFSET(r11) ; r31 <- base of hash page physical index
7613 ; Form index offset from hash page number
7614 add r31,r31,r10 ; r31 <- hash page index entry
7615 lwz r31,4(r31) ; r31 <- hash page paddr
7624 la r31,VMX_HPIDX_OFFSET(r11) ; r31 <- base of hash page physical index
7628 ; Form index offset from hash page number
7629 add r31,r31,r10 ; r31 <- hash page index entry
7630 ld r31,0(r31) ; r31 <- hash page paddr
7770 ; Guest shadow assist -- change guest page protection
7821 la r31,VMX_HPIDX_OFFSET(r11) ; r31 <- base of hash page physical index
7825 ; Form index offset from hash page number
7826 add r31,r31,r10 ; r31 <- hash page index entry
7827 lwz r31,4(r31) ; r31 <- hash page paddr
7836 la r31,VMX_HPIDX_OFFSET(r11) ; r31 <- base of hash page physical index
7840 ; Form index offset from hash page number
7841 add r31,r31,r10 ; r31 <- hash page index entry
7842 ld r31,0(r31) ; r31 <- hash page paddr
7983 ; Find the physent based on a physical page and try to lock it (but not too hard)
8380 rldimi r2,r5,0,36 ; Cram in the page portion of the EA