default_tracer = ExeTracer()
-if buildEnv['TARGET_ISA'] == 'alpha':
- from m5.objects.AlphaTLB import AlphaDTB as ArchDTB, AlphaITB as ArchITB
- from m5.objects.AlphaInterrupts import AlphaInterrupts as ArchInterrupts
- from m5.objects.AlphaISA import AlphaISA as ArchISA
-elif buildEnv['TARGET_ISA'] == 'sparc':
+if buildEnv['TARGET_ISA'] == 'sparc':
from m5.objects.SparcTLB import SparcTLB as ArchDTB, SparcTLB as ArchITB
from m5.objects.SparcInterrupts import SparcInterrupts as ArchInterrupts
from m5.objects.SparcISA import SparcISA as ArchISA
// maintain $r0 semantics
thread->setIntReg(ZeroReg, 0);
-#if THE_ISA == ALPHA_ISA
- thread->setFloatReg(ZeroReg, 0);
-#endif
// Check if any recent PC changes match up with anything we
// expect to happen. This is mostly to check if traps or
setPredicate(inst->readPredicate());
setMemAccPredicate(inst->readMemAccPredicate());
thread.setIntReg(TheISA::ZeroReg, 0);
-#if THE_ISA == ALPHA_ISA
- thread.setFloatReg(TheISA::ZeroReg, 0);
-#endif
}
~ExecContext()
/* Step the PC for the next line onto the line aligned next address.
* Note that as instructions can span lines, this PC is only a
* reliable 'new' PC if the next line has a new stream sequence number. */
-#if THE_ISA == ALPHA_ISA
- /* Restore the low bits of the PC used as address space flags */
- Addr pc_low_bits = thread.pc.instAddr() &
- ((Addr) (1 << sizeof(TheISA::MachInst)) - 1);
-
- thread.pc.set(aligned_pc + request_size + pc_low_bits);
-#else
thread.pc.set(aligned_pc + request_size);
-#endif
}
std::ostream &
// Set the doneSeqNum to the youngest committed instruction.
toIEW->commitInfo[tid].doneSeqNum = head_inst->seqNum;
- if (tid == 0) {
- canHandleInterrupts = (!head_inst->isDelayedCommit()) &&
- ((THE_ISA != ALPHA_ISA) ||
- (!(pc[0].instAddr() & 0x3)));
- }
+ if (tid == 0)
+ canHandleInterrupts = !head_inst->isDelayedCommit();
// at this point store conditionals should either have
// been completed or predicated false
#include "sim/stat_control.hh"
#include "sim/system.hh"
-#if THE_ISA == ALPHA_ISA
-#include "arch/alpha/osfpal.hh"
-#include "debug/Activity.hh"
-
-#endif
-
struct BaseCPUParams;
using namespace TheISA;
// use an invalid FP register index to avoid special treatment
// of any valid FP reg.
RegIndex invalidFPReg = TheISA::NumFloatRegs + 1;
- RegIndex fpZeroReg =
- (THE_ISA == ALPHA_ISA) ? TheISA::ZeroReg : invalidFPReg;
- commitRenameMap[tid].init(®File, TheISA::ZeroReg, fpZeroReg,
- &freeList,
- vecMode);
+ commitRenameMap[tid].init(®File, TheISA::ZeroReg, invalidFPReg,
+ &freeList, vecMode);
- renameMap[tid].init(®File, TheISA::ZeroReg, fpZeroReg,
+ renameMap[tid].init(®File, TheISA::ZeroReg, invalidFPReg,
&freeList, vecMode);
}
bool
checkInterrupt(Addr pc)
{
- return (interruptPending && (THE_ISA != ALPHA_ISA || !(pc & 0x3)));
+ return interruptPending;
}
/** Squashes a specific thread and resets the PC. */
inline bool isZeroReg() const
{
- return ((regClass == IntRegClass && regIdx == TheISA::ZeroReg) ||
- (THE_ISA == ALPHA_ISA && regClass == FloatRegClass &&
- regIdx == TheISA::ZeroReg));
+ return regClass == IntRegClass && regIdx == TheISA::ZeroReg;
}
/** @return true if it is an integer physical register. */
// maintain $r0 semantics
thread->setIntReg(ZeroReg, 0);
-#if THE_ISA == ALPHA_ISA
- thread->setFloatReg(ZeroReg, 0);
-#endif // ALPHA_ISA
// resets predicates
t_info.setPredicate(true);