Fix previously committed call_pal fix... the main problem was in the

makefile, such that decoder.cc was not getting rebuilt.
Also add -fno-strict-aliasing to fix all the bizarre problems
I've been having with g++ 3.3.x.

arch/alpha/isa_desc:
    Fix compilation problems.  AlphaISA is a class now, not a namespace.

--HG--
extra : convert_revision : 1583cebc1258c57cbd286c1955d11648150fa1f4
This commit is contained in:
Steve Reinhardt 2003-12-16 11:46:52 -08:00
parent f47dcadfd8
commit 16021aa436

View file

@ -2367,25 +2367,26 @@ decode OPCODE default Unknown::unknown() {
#ifdef FULL_SYSTEM #ifdef FULL_SYSTEM
0x00: CallPal::call_pal({{ 0x00: CallPal::call_pal({{
using namespace AlphaISA;
if (!palValid || if (!palValid ||
(palPriv && xc->readIpr(IPR_ICM, fault) != mode_kernel)) { (palPriv
&& xc->readIpr(AlphaISA::IPR_ICM, fault) != AlphaISA::mode_kernel)) {
// invalid pal function code, or attempt to do privileged // invalid pal function code, or attempt to do privileged
// PAL call in non-kernel mode // PAL call in non-kernel mode
fault = Unimplemented_Opcode_Fault; fault = Unimplemented_Opcode_Fault;
} }
else { else {
bool dopal = true;
if (!xc->misspeculating()) { if (!xc->misspeculating()) {
// check to see if simulator wants to do something special // check to see if simulator wants to do something special
// on this PAL call (including maybe suppress it) // on this PAL call (including maybe suppress it)
bool dopal = xc->simPalCheck(palFunc); dopal = xc->simPalCheck(palFunc);
Annotate::Callpal(xc, palFunc); Annotate::Callpal(xc, palFunc);
if (dopal) { if (dopal) {
swap_palshadow(&xc->regs, true); AlphaISA::swap_palshadow(&xc->regs, true);
xc->setIpr(IPR_EXC_ADDR, NPC); xc->setIpr(AlphaISA::IPR_EXC_ADDR, NPC);
} }
} }
@ -2393,7 +2394,7 @@ decode OPCODE default Unknown::unknown() {
// unrealistic) to set NPC, as the control-flow change // unrealistic) to set NPC, as the control-flow change
// won't get committed. // won't get committed.
if (dopal) { if (dopal) {
NPC = xc->readIpr(IPR_PAL_BASE, fault) + palOffset; NPC = xc->readIpr(AlphaISA::IPR_PAL_BASE, fault) + palOffset;
} }
} }
}}); }});