From 561c33f0824a705cb360ecb4ae3bf8cfd490f007 Mon Sep 17 00:00:00 2001 From: Korey Sewell Date: Sun, 19 Jun 2011 21:43:40 -0400 Subject: inorder: dont handle multiple faults on same cycle if a faulting instruction reaches an execution unit, then ignore it and pass it through the pipeline. Once we recognize the fault in the graduation unit, dont allow a second fault to creep in on the same cycle. --- src/cpu/inorder/inorder_dyn_inst.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/cpu/inorder/inorder_dyn_inst.cc') diff --git a/src/cpu/inorder/inorder_dyn_inst.cc b/src/cpu/inorder/inorder_dyn_inst.cc index 58280bf62..7fbab4c7d 100644 --- a/src/cpu/inorder/inorder_dyn_inst.cc +++ b/src/cpu/inorder/inorder_dyn_inst.cc @@ -87,6 +87,12 @@ InOrderDynInst::InOrderDynInst(InOrderCPU *cpu, int InOrderDynInst::instcount = 0; +int +InOrderDynInst::cpuId() +{ + return cpu->cpuId(); +} + void InOrderDynInst::setMachInst(ExtMachInst machInst) { @@ -330,7 +336,7 @@ InOrderDynInst::setSquashInfo(unsigned stage_num) squashSeqNum = seqNum; #if ISA_HAS_DELAY_SLOT - if (isControl()) { + if (staticInst && isControl()) { TheISA::PCState nextPC = pc; TheISA::advancePC(nextPC, staticInst); -- cgit v1.2.3