Fixes for full-system call_pal instruction.
arch/alpha/alpha_memory.cc:
Rename md_mode_type to mode_type.
arch/alpha/ev5.cc:
simPalCheck() only gets called on correct path now, so
there's no need to test misspeculating().
arch/alpha/isa_desc:
Get privileged call_pall detection right this time (I hope).
ExecContext::simPalCheck() and Annotate::Callpal() are now
called only on non-speculative executions... this should fix
the bogus pal-call stats we've been seeing (since these are
incremented in simPalCheck()).
Also check for invalid call_pall function codes.
--HG--
extra : convert_revision : 465d6724884007d3fa066d14cd5e6db0cd3954e1
This commit is contained in:
@@ -436,12 +436,12 @@ AlphaDtb::translate(MemReqPtr req, bool write) const
|
||||
else
|
||||
read_accesses++;
|
||||
|
||||
AlphaISA::md_mode_type mode =
|
||||
(AlphaISA::md_mode_type)DTB_CM_CM(ipr[AlphaISA::IPR_DTB_CM]);
|
||||
AlphaISA::mode_type mode =
|
||||
(AlphaISA::mode_type)DTB_CM_CM(ipr[AlphaISA::IPR_DTB_CM]);
|
||||
|
||||
if (PC_PAL(pc)) {
|
||||
mode = (req->flags & ALTMODE) ? (AlphaISA::md_mode_type)
|
||||
(ALT_MODE_AM(ipr[AlphaISA::IPR_ALT_MODE]))
|
||||
mode = (req->flags & ALTMODE) ?
|
||||
(AlphaISA::mode_type)ALT_MODE_AM(ipr[AlphaISA::IPR_ALT_MODE])
|
||||
: AlphaISA::mode_kernel;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user