summaryrefslogtreecommitdiff
path: root/cpu
diff options
context:
space:
mode:
authorKorey Sewell <ksewell@umich.edu>2006-03-09 03:27:51 -0500
committerKorey Sewell <ksewell@umich.edu>2006-03-09 03:27:51 -0500
commita3aae21d031c93ab1b9a90d435d9590dad2482c4 (patch)
treec3a5ac3042cd619a3d284c653bfb795dcb35069e /cpu
parent9e304ed3e6d96e2090981a8aa825dab5b662909a (diff)
downloadgem5-a3aae21d031c93ab1b9a90d435d9590dad2482c4.tar.xz
last changes before big merge
arch/alpha/isa_traits.hh: arch/sparc/isa_traits.hh: add nnpc for compiling purposes in exec_context setNextNPC function cpu/exec_context.hh: set NNPC function cpu/simple/cpu.cc: use NNPC in determining what PC we are using --HG-- extra : convert_revision : e810cfbc5dc31879b20d2cc40bf9871613203532
Diffstat (limited to 'cpu')
-rw-r--r--cpu/exec_context.hh6
-rw-r--r--cpu/simple/cpu.cc8
2 files changed, 14 insertions, 0 deletions
diff --git a/cpu/exec_context.hh b/cpu/exec_context.hh
index bc3551b4f..550a1ca23 100644
--- a/cpu/exec_context.hh
+++ b/cpu/exec_context.hh
@@ -422,6 +422,12 @@ class ExecContext
regs.npc = val;
}
+ void setNextNPC(uint64_t val)
+ {
+ regs.nnpc = val;
+ }
+
+
MiscReg readMiscReg(int misc_reg)
{
return regs.miscRegs.readReg(misc_reg);
diff --git a/cpu/simple/cpu.cc b/cpu/simple/cpu.cc
index 51d679a63..f1a3ebd0b 100644
--- a/cpu/simple/cpu.cc
+++ b/cpu/simple/cpu.cc
@@ -818,9 +818,17 @@ SimpleCPU::tick()
#endif // FULL_SYSTEM
}
else {
+#if THE_ISA != MIPS_ISA
// go to the next instruction
xc->regs.pc = xc->regs.npc;
xc->regs.npc += sizeof(MachInst);
+#else
+ // go to the next instruction
+ xc->regs.pc = xc->regs.npc;
+ xc->regs.npc = xc->regs.nnpc;
+ xc->regs.nnpc += sizeof(MachInst);
+#endif
+
}
#if FULL_SYSTEM