summaryrefslogtreecommitdiff
path: root/arch/alpha/vtophys.cc
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2004-06-22 17:20:19 -0400
committerAli Saidi <saidi@eecs.umich.edu>2004-06-22 17:20:19 -0400
commitf37eb6f5c7184acb6df46d14d9e48a22c8ac8134 (patch)
treef4f0fa6237cb65f2b191b54611e58e3562e3ddc9 /arch/alpha/vtophys.cc
parentb3ea4d90cf8d6c01f2a900798bbbeadf31bddac5 (diff)
downloadgem5-f37eb6f5c7184acb6df46d14d9e48a22c8ac8134.tar.xz
ifdefed ev5 vs. ev6 differences so Tlaser can work in the linux tree
arch/alpha/alpha_memory.cc: arch/alpha/ev5.hh: Ifdefed TLASER code arch/alpha/vtophys.cc: added back some code andrew removed and couldn't remember why. --HG-- extra : convert_revision : f00d255f7a8a7bdb6e74f061dd014188e3b39e73
Diffstat (limited to 'arch/alpha/vtophys.cc')
-rw-r--r--arch/alpha/vtophys.cc15
1 files changed, 9 insertions, 6 deletions
diff --git a/arch/alpha/vtophys.cc b/arch/alpha/vtophys.cc
index cf2ebbf80..7a38b296b 100644
--- a/arch/alpha/vtophys.cc
+++ b/arch/alpha/vtophys.cc
@@ -96,20 +96,23 @@ vtophys(ExecContext *xc, Addr vaddr)
{
Addr ptbr = xc->regs.ipr[AlphaISA::IPR_PALtemp20];
Addr paddr = 0;
-// if (PC_PAL(vaddr)) {
-// paddr = vaddr & ~ULL(1);
-// } else {
+ //@todo Andrew couldn't remember why he commented some of this code
+ //so I put it back in. Perhaps something to do with gdb debugging?
+ if (PC_PAL(vaddr)) {
+ paddr = vaddr & ~ULL(1);
+ } else if (!ptbr) {
+ paddr = vaddr;
+ } else {
if (vaddr >= ALPHA_K0SEG_BASE && vaddr <= ALPHA_K0SEG_END) {
paddr = ALPHA_K0SEG_TO_PHYS(vaddr);
- } else if (!ptbr) {
- paddr = vaddr;
} else {
Addr pte = kernel_pte_lookup(xc->physmem, ptbr, vaddr);
uint64_t entry = xc->physmem->phys_read_qword(pte);
if (pte && entry_valid(entry))
paddr = PMAP_PTE_PA(entry) | (vaddr & PGOFSET);
}
-// }
+ }
+
DPRINTF(VtoPhys, "vtophys(%#x) -> %#x\n", vaddr, paddr);