Rev 396 | Rev 399 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 396 | Rev 397 | ||
---|---|---|---|
Line 84... | Line 84... | ||
84 | void tlb_refill(struct exception_regdump *pstate) |
84 | void tlb_refill(struct exception_regdump *pstate) |
85 | { |
85 | { |
86 | entry_lo_t lo; |
86 | entry_lo_t lo; |
87 | __address badvaddr; |
87 | __address badvaddr; |
88 | pte_t *pte; |
88 | pte_t *pte; |
- | 89 | ||
- | 90 | // debug |
|
- | 91 | entry_hi_t hi; |
|
89 | 92 | ||
90 | badvaddr = cp0_badvaddr_read(); |
93 | badvaddr = cp0_badvaddr_read(); |
- | 94 | ||
- | 95 | // debug |
|
- | 96 | hi.value = cp0_entry_hi_read(); |
|
- | 97 | printf("TLB Refill: hi.vnp2=%X\n", hi.vpn2); |
|
91 | 98 | ||
92 | spinlock_lock(&VM->lock); |
99 | spinlock_lock(&VM->lock); |
93 | pte = find_mapping_and_check(badvaddr); |
100 | pte = find_mapping_and_check(badvaddr); |
94 | if (!pte) |
101 | if (!pte) |
95 | goto fail; |
102 | goto fail; |