Moved the UnimpFault to be global
--HG-- extra : convert_revision : a42224c70c475c1559e83b8a2ef71ff3b792a3ab
This commit is contained in:
parent
8db6dd370c
commit
9955ebd03c
8 changed files with 29 additions and 91 deletions
|
@ -105,10 +105,6 @@ FaultName IntegerOverflowFault::_name = "intover";
|
|||
FaultVect IntegerOverflowFault::_vect = 0x0501;
|
||||
FaultStat IntegerOverflowFault::_count;
|
||||
|
||||
FaultName UnimpFault::_name = "Unimplemented Simulator feature";
|
||||
FaultVect UnimpFault::_vect = 0x0001;
|
||||
FaultStat UnimpFault::_count;
|
||||
|
||||
#if FULL_SYSTEM
|
||||
|
||||
void AlphaFault::invoke(ExecContext * xc)
|
||||
|
@ -174,12 +170,6 @@ void ItbFault::invoke(ExecContext * xc)
|
|||
AlphaFault::invoke(xc);
|
||||
}
|
||||
|
||||
void UnimpFault::invoke(ExecContext * xc)
|
||||
{
|
||||
FaultBase::invoke(xc);
|
||||
panic("Unimpfault: %s\n", panicStr.c_str());
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
} // namespace AlphaISA
|
||||
|
|
|
@ -347,26 +347,6 @@ class IntegerOverflowFault : public AlphaFault
|
|||
FaultStat & countStat() {return _count;}
|
||||
};
|
||||
|
||||
class UnimpFault : public AlphaFault
|
||||
{
|
||||
private:
|
||||
std::string panicStr;
|
||||
static FaultName _name;
|
||||
static FaultVect _vect;
|
||||
static FaultStat _count;
|
||||
public:
|
||||
UnimpFault(std::string _str)
|
||||
: panicStr(_str)
|
||||
{ }
|
||||
|
||||
FaultName name() {return _name;}
|
||||
FaultVect vect() {return _vect;}
|
||||
FaultStat & countStat() {return _count;}
|
||||
#if FULL_SYSTEM
|
||||
void invoke(ExecContext * xc);
|
||||
#endif
|
||||
};
|
||||
|
||||
} // AlphaISA namespace
|
||||
|
||||
#endif // __FAULTS_HH__
|
||||
|
|
|
@ -98,10 +98,6 @@ FaultName IntegerOverflowFault::_name = "intover";
|
|||
FaultVect IntegerOverflowFault::_vect = 0x0501;
|
||||
FaultStat IntegerOverflowFault::_count;
|
||||
|
||||
FaultName UnimpFault::_name = "Unimplemented Simulator feature";
|
||||
FaultVect UnimpFault::_vect = 0x0001;
|
||||
FaultStat UnimpFault::_count;
|
||||
|
||||
#if FULL_SYSTEM
|
||||
|
||||
void MipsFault::invoke(ExecContext * xc)
|
||||
|
@ -129,12 +125,6 @@ void ArithmeticFault::invoke(ExecContext * xc)
|
|||
panic("Arithmetic traps are unimplemented!");
|
||||
}
|
||||
|
||||
void UnimpFault::invoke(ExecContext * xc)
|
||||
{
|
||||
FaultBase::invoke(xc);
|
||||
panic("Unimpfault: %s\n", panicStr.c_str());
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
} // namespace MipsISA
|
||||
|
|
|
@ -264,26 +264,6 @@ class IntegerOverflowFault : public MipsFault
|
|||
FaultStat & countStat() {return _count;}
|
||||
};
|
||||
|
||||
class UnimpFault : public MipsFault
|
||||
{
|
||||
private:
|
||||
std::string panicStr;
|
||||
static FaultName _name;
|
||||
static FaultVect _vect;
|
||||
static FaultStat _count;
|
||||
public:
|
||||
UnimpFault(std::string _str)
|
||||
: panicStr(_str)
|
||||
{ }
|
||||
|
||||
FaultName name() {return _name;}
|
||||
FaultVect vect() {return _vect;}
|
||||
FaultStat & countStat() {return _count;}
|
||||
#if FULL_SYSTEM
|
||||
void invoke(ExecContext * xc);
|
||||
#endif
|
||||
};
|
||||
|
||||
} // MipsISA namespace
|
||||
|
||||
#endif // __FAULTS_HH__
|
||||
|
|
|
@ -215,11 +215,6 @@ TrapType TrapInstruction::_baseTrapType = 0x100;
|
|||
FaultPriority TrapInstruction::_priority = 16;
|
||||
FaultStat TrapInstruction::_count;
|
||||
|
||||
FaultName UnimpFault::_name = "Unimplemented Simulator feature";
|
||||
TrapType UnimpFault::_trapType = 0x000;
|
||||
FaultPriority UnimpFault::_priority = 0;
|
||||
FaultStat UnimpFault::_count;
|
||||
|
||||
#if FULL_SYSTEM
|
||||
|
||||
void SparcFault::invoke(ExecContext * xc)
|
||||
|
@ -245,11 +240,14 @@ void SparcFault::invoke(ExecContext * xc)
|
|||
xc->regs.npc = xc->regs.pc + sizeof(MachInst);*/
|
||||
}
|
||||
|
||||
void UnimpFault::invoke(ExecContext * xc)
|
||||
{
|
||||
panic("Unimpfault: %s\n", panicStr.c_str());
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !FULL_SYSTEM
|
||||
|
||||
void TrapInstruction::invoke(ExecContext * xc)
|
||||
{
|
||||
xc->syscall(syscall_num);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -573,37 +573,19 @@ class TrapInstruction : public EnumeratedFault
|
|||
static TrapType _baseTrapType;
|
||||
static FaultPriority _priority;
|
||||
static FaultStat _count;
|
||||
uint64_t syscall_num;
|
||||
TrapType baseTrapType() {return _baseTrapType;}
|
||||
public:
|
||||
TrapInstruction(uint32_t n) : EnumeratedFault(n) {;}
|
||||
TrapInstruction(uint32_t n, uint64_t syscall) :
|
||||
EnumeratedFault(n), syscall_num(syscall) {;}
|
||||
FaultName name() {return _name;}
|
||||
FaultPriority priority() {return _priority;}
|
||||
FaultStat & countStat() {return _count;}
|
||||
};
|
||||
|
||||
class UnimpFault : public SparcFault
|
||||
{
|
||||
private:
|
||||
static FaultName _name;
|
||||
static TrapType _trapType;
|
||||
static FaultPriority _priority;
|
||||
static FaultStat _count;
|
||||
std::string panicStr;
|
||||
public:
|
||||
UnimpFault(std::string _str)
|
||||
: panicStr(_str)
|
||||
{ }
|
||||
|
||||
FaultName name() {return _name;}
|
||||
TrapType trapType() {return _trapType;}
|
||||
FaultPriority priority() {return _priority;}
|
||||
FaultStat & countStat() {return _count;}
|
||||
#if FULL_SYSTEM
|
||||
#if !FULL_SYSTEM
|
||||
void invoke(ExecContext * xc);
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
} // SparcISA namespace
|
||||
|
||||
#endif // __FAULTS_HH__
|
||||
|
|
|
@ -45,3 +45,8 @@ void FaultBase::invoke(ExecContext * xc)
|
|||
assert(!xc->misspeculating());
|
||||
}
|
||||
#endif
|
||||
|
||||
void UnimpFault::invoke(ExecContext * xc)
|
||||
{
|
||||
panic("Unimpfault: %s\n", panicStr.c_str());
|
||||
}
|
||||
|
|
|
@ -64,4 +64,17 @@ class FaultBase : public RefCounted
|
|||
|
||||
FaultBase * const NoFault = 0;
|
||||
|
||||
class UnimpFault : public FaultBase
|
||||
{
|
||||
private:
|
||||
std::string panicStr;
|
||||
public:
|
||||
UnimpFault(std::string _str)
|
||||
: panicStr(_str)
|
||||
{ }
|
||||
|
||||
FaultName name() {return "Unimplemented simulator feature";}
|
||||
void invoke(ExecContext * xc);
|
||||
};
|
||||
|
||||
#endif // __FAULTS_HH__
|
||||
|
|
Loading…
Reference in a new issue