66,67c66,67
< Addr
< ArmISA::vtophys(ThreadContext *tc, Addr addr)
---
> static std::pair<bool, Addr>
> try_translate(ThreadContext *tc, Addr addr)
85c85
< return req.getPaddr();
---
> return std::make_pair(true, req.getPaddr());
90c90
< return req.getPaddr();
---
> return std::make_pair(true, req.getPaddr());
92c92
< panic("Table walkers support functional accesses. We should never get here\n");
---
> return std::make_pair(false, 0);
94a95,105
> Addr
> ArmISA::vtophys(ThreadContext *tc, Addr addr)
> {
> const std::pair<bool, Addr> translation(try_translate(tc, addr));
>
> if (translation.first)
> return translation.second;
> else
> panic("Table walkers support functional accesses. We should never get here\n");
> }
>
98,100c109,111
< if (vtophys(tc, vaddr) != -1)
< return true;
< return false;
---
> const std::pair<bool, Addr> translation(try_translate(tc, vaddr));
>
> return translation.first;