Lines Matching refs:this
8 * Version 2.0 (the 'License'). You may not use this file except in
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
77 ; |00000000|00000002|22222222|11111111|111111BB|BBBBBBBB|BBBB////| - SID Hash - this is all
108 * Make mapping - not block or I/O - note: this is low-level, upper should remove duplicates
123 * Make mapping - block or I/O - note: this is low-level, upper should remove duplicates
220 bne-- hamOverlay ; We found a mapping, this is no good, can not double map...
282 hamSkipMax: andi. r0,r24,mpType ; Is this a normal mapping?
391 rlwinm. r0,r22,0,mpRIPb,mpRIPb ; Are we in the process of removing this one?
443 * Note that this is designed to be called from 32-bit mode with a stack.
449 * Note that this must be done with both interruptions off and VM off
652 ; Invalidate any PTEs associated with this
664 cmplwi cr5,r0,mpBlock ; Remember whether this is a block mapping
669 cmpwi cr1,r0,0 ; Have we made a PTE for this yet?
674 li r22,0 ; Clear this on out (also sets RC to 0 if we bail)
710 rlwinm. r0,r19,0,pfSMPcapb,pfSMPcapb ; Can this processor do SMP?
720 hrmNTlbs: li r0,0 ; Clear this
728 or r6,r6,r0 ; Show that this slot is free
736 ; But first, we need to make sure no one else is using this
799 li r3,mapRtRemove ; Say we are still removing this
824 cmplw r9,r31 ; Is this us?
897 ; We should rethink this and see if we think it will be faster to check PTE and
927 and r4,r4,r2 ; If more than a chunk, bring this back to 0
935 stw r10,mpBlkRemCur(r31) ; Set next chunk to do (note: this may indicate after end)
961 beq+ hrmBNone32 ; No block map PTEs in this PTEG...
1002 bl mapDrainBusy ; Go wait until we are sure all other removers are done with this one
1027 rlwinm. r0,r19,0,pfSMPcapb,pfSMPcapb ; Can this processor do SMP?
1047 mr r29,r4 ; Save this in case we need it (only promote fails)
1048 mr r30,r5 ; Save this in case we need it (only promote fails)
1140 li r0,0 ; Clear this
1209 cmpld r9,r31 ; Is this us?
1260 and r4,r4,r2 ; If more than a chunk, bring this back to 0
1268 stw r10,mpBlkRemCur(r31) ; Set next chunk to do (note: this may indicate after end)
1296 rlwinm. r4,r6,16,0,7 ; Extract the block mappings in this here PTEG and see if there are any
1299 beq++ hrmBNone64 ; No block map PTEs in this PTEG...
1341 bl mapDrainBusy ; Go wait until we are sure all other removers are done with this one
1390 mr r29,r4 ; Save this in case we need it (only promote fails)
1391 mr r30,r5 ; Save this in case we need it (only promote fails)
1499 mtctr r0 ; in this group
1585 rlwinm. r0,r6,0,mpgDormant ; Is this entry dormant?
1608 lis r0,0x8000 ; Prepare free bit for this slot
1619 bl mapFindLockPN ; Find 'n' lock this page's physent
1629 beq- hrmGPEMissMiss ; End of chain, this is not good
1630 cmplw r9,r31 ; Is this the mapping to remove?
1656 beq-- hrmGPEMissMiss ; End of chain, this is not good
1657 cmpld r9,r31 ; Is this the mapping to remove?
1722 * Note that this is designed to be called from 32-bit mode with a stack.
1728 * Note that this must be done with both interruptions off and VM off
1821 ; NOTE: we have not used any registers other than the volatiles to this point
1840 * Note that this is designed to be called from 32-bit mode with a stack.
1846 * Note that this must be done with both interruptions off and VM off
1952 * Note that this is designed to be called from 32-bit mode with a stack.
1958 * Note that this must be done with both interruptions off and VM off
2031 cmplw r10,r8 ; Is this one of ours?
2048 cmplw r10,r8 ; Is this one of ours?
2077 ; NOTE: we have not used any registers other than the volatiles to this point
2094 * on this physent chain
2097 * specified host pmap. If this succeeds, the mapping is removed by joining the general
2098 * remove path; otherwise, we return NULL. The caller is expected to invoke this entry
2101 * Because this entry point exits through hw_rem_map, our prolog pushes its frame.
2242 * Note that this is designed to be called from 32-bit mode with a stack.
2272 cmplw r10,r8 ; Is this one of ours?
2289 cmplw r10,r8 ; Is this one of ours?
2324 ; NOTE: we have not used any registers other than the volatiles to this point
2574 * postop is operation to perform in the phsyent after walk. this would be
2581 * Note that this is designed to be called from 32-bit mode with a stack.
3201 rlwinm. r0,r7,0,mpType ; Is this a normal mapping?
3202 crmove cr1_eq,cr0_eq ; cr1_eq <- this is a normal mapping
3307 cmplwi r0,mpBlock ; Is this a block mapping?
3380 rlwinm. r0,r7,0,mpType ; Is this a normal mapping?
3381 crmove cr1_eq,cr0_eq ; cr1_eq <- this is a normal mapping
3509 cmplw r2,r5 ; See if we are in this table
3513 cror cr0_lt,cr0_lt,cr1_gt ; Set CR0_LT if it is NOT this entry
3540 lwz r3,mrPhysTab(r3) ; Get the start of the entries for this bank
3675 ; Also, the mapping can not be on any lists when we do this
3742 cmplwi r11,T_INSTRUCTION_ACCESS ; See if this is for the instruction
3754 b ckIfProt ; Go check if this is a protection fault...
3756 gotIfetch: andis. r27,r8,hi16(dsiValid) ; Clean this up to construct a DSISR value
3761 ckIfProt: and. r4,r27,r0 ; Is this a non-handlable exception?
3790 rlwinm. r18,r18,0,SAVredriveb,SAVredriveb ; Was this a redrive?
3795 cmplwi r4,invalSpace ; Is this a simulated segment fault?
3829 rlwinm r0,r7,0,mpRIPb,mpRIPb ; Are we removing this one?
3840 mr r26,r7 ; Get the flags for this mapping (passed back from search call)
3904 ; Error condition - lock failed - this is fatal
3938 hpfExit: ; We need this because we can not do a relative branch
3980 ; Important non-volatile registers at this point ('home' means the final pmap/mapping found
3994 hpfFoundIt: lwz r12,pmapFlags(r28) ; Get the pmap flags so we can find the keys for this segment
4025 ; into a segment in the pmap cache. If it is already there, this is
4045 ; Remember, this cache entry goes in the ORIGINAL pmap (saved in R25), not
4049 ; od, this will break some other stuff.
4052 bne-- cr5,hpfNoCacheEnt2 ; Skip the cache entry if this is a "special nest" fault....
4057 bl pmapCacheLookup ; Go see if this is in the cache already
4060 mr r4,r11 ; Copy this to a different register
4192 beq++ cr5,hpfNoBlow ; Skip blowing away the SLBE if this is not a special nest...
4207 ; succeed with this translation anyway. I do not think we need to worry
4208 ; about this (famous last words) because nobody should be unnesting anything
4210 ; higher level VM system to put the kibosh on this.
4236 beq-- hpfAbandon ; Yes, other processor is or already has handled this...
4238 cmplwi r0,mpBlock ; Is this a block mapping?
4246 ; At this point we are about to do the 32-bit PTE generation.
4314 bne- cr7,hpfNoPte32 ; Skip this for a block mapping...
4316 bne- hpfBailOut ; Someone already did this for us...
4344 bl mapFindPhyTry ; Go find and try to lock physent (note: if R3 is 0, there is no physent for this page)
4345 cmplwi cr1,r3,0 ; Check if this is in RAM
4348 crmove cr5_gt,cr1_eq ; If we did not find a physent, pretend that this is a block map
4378 rlwinm. r0,r2,0,pfSMPcapb,pfSMPcapb ; Can this be an MP box?
4384 beq- hpfNoTS32 ; Can not have MP on this machine...
4412 cmplw cr1,r10,r8 ; Is this one of ours?
4428 eieio ; Make sure this gets there first
4436 ; At this point we are about to do the 64-bit PTE generation.
4476 add r24,r24,r11 ; Get actual physical address of this page
4503 bne-- cr7,hpfNoPte64 ; Skip this for a block mapping...
4505 bne-- hpfBailOut ; Someone already did this for us...
4534 bl mapFindPhyTry ; Go find and try to lock physent (note: if R3 is 0, there is no physent for this page)
4535 cmplwi cr1,r3,0 ; Check if this is in RAM
4538 crmove cr5_gt,cr1_eq ; If we did not find a physent, pretend that this is a block map
4549 sldi r11,r11,5 ; Move this to the page position
4602 cmplw cr1,r10,r8 ; Is this one of ours?
4629 eieio ; Make sure this gets there first
4741 mtctr r0 ; in this group
4803 mtctr r0 ; in this group
4847 * register usage here. The VMM switch code in vmachmon.s that calls this
5019 li r3,31 ; get index of this field
5214 ; Note that there is no reason to apply the key modifier here because this is only
5229 ; but I just wanted to see if I could write this to work on both 32- and 64-bit
5314 slbie r4 ; Since this ESID may still be in an SLBE, kill it
5365 isync ; Need to make sure this is done
5421 and. r0,r4,r2 ; See if this is even valid
5426 isync ; Need to make sure this is done
5428 hbsrupt: andc r4,r4,r2 ; Clear the valid bit for this segment
5524 bne-- ssgLock0 ; Yup, this is in use...
5548 beq++ ssgLock ; Yup, this is in use...
5661 ; mapSetUp - this function sets initial state for all mapping functions.
5779 b graLoop ; Examine all slots in this page
5781 b graLoop ; Examine all slots in this page
5795 rlwinm. r0,r3,0,mpgDormant ; Is this entry dormant?
5816 lis r0,0x8000 ; Prepare free bit for this slot
5827 bl mapFindLockPN ; Find 'n' lock this page's physent
5837 graRemLoop: beq- graRemoveMiss ; End of chain, this is not good
5838 cmplw r9,r31 ; Is this the mapping to remove?
5862 graRem64Lp: beq-- graRemoveMiss ; End of chain, this is not good
5863 cmpld r9,r31 ; Is this the mapping to remove?
6020 b grlLoop ; Examine all slots in this page
6022 b grlLoop ; Examine all slots in this page
6026 cmplwi r11,32 ; Any active mappings left in this word?
6043 andc r22,r22,r12 ; Reset active bit corresponding to this mapping
6060 beq- grlLoop ; No valid PTE, we're done with this mapping
6061 lis r0,0x8000 ; Prepare free bit for this slot
6069 b grlLoop ; On to next active mapping in this map word
6194 mtctr r0 ; in this group
6281 lis r0,0x8000 ; Prepare free bit for this slot
6305 bl mapFindLockPN ; Find 'n' lock this page's physent
6369 grsRemLoop: beq- grsPEMissMiss ; End of chain, this is not good
6370 cmplw r9,r31 ; Is this the mapping to remove?
6395 grsRem64Lp: beq-- grsPEMissMiss ; End of chain, this is not good
6396 cmpld r9,r31 ; Is this the mapping to remove?
6560 mr r31,r22 ; Prepare to search this group
6562 mtctr r0 ; in this group
6638 mtctr r0 ; in this group
6659 mr r11,r31 ; We'll use this dormant entry if we don't find a free one first
6669 mr r11,r31 ; We'll use this dormant entry if we don't find a free one first
6695 lis r0,0x8000 ; Prepare free bit for this slot
6712 bl mapFindLockPN ; Find 'n' lock this page's physent
6721 gadRemLoop: beq- gadPEMissMiss ; End of chain, this is not good
6722 cmplw r9,r31 ; Is this the mapping to remove?
6746 gadRem64Lp: beq-- gadPEMissMiss ; End of chain, this is not good
6747 cmpld r9,r31 ; Is this the mapping to remove?
6784 bl mapFindLockPN ; Find 'n' lock this page's physent
6926 mtctr r0 ; in this group
7010 lis r0,0x8000 ; Prepare free bit for this slot
7138 mtctr r0 ; in this group
7301 ; Note that if there are multiple mappings belonging to this host
7303 ; host virtual aliases exist for this physical address. If host aliases
7390 mtctr r0 ; in this group
7460 bl mapFindLockPN ; Find 'n' lock this page's physent
7642 mtctr r0 ; in this group
7854 mtctr r0 ; in this group
7938 lis r0,0x8000 ; Prepare free bit for this slot
7984 ; Note that this table always has an entry that with a 0 table pointer at the end
8005 cmplw r2,r5 ; See if we are in this table
8009 cror cr0_lt,cr0_lt,cr1_gt ; Set CR0_LT if it is NOT this entry
8034 mapFindNo: crset cr0_eq ; Make sure that we set this
8247 ; PTEG and return. In this case we will have undefined in R4
8302 rlwinm. r0,r2,0,pfSMPcapb,pfSMPcapb ; Can this be an MP box?
8307 beq- mINoTS32 ; Can not have MP on this machine...
8491 beq cr7,mSSnotblk ; Skip if this is not a block mapping
8525 ; We will want to add a timeout to this eventually.
8660 li r0,0 ; Clear this