Deleted Added
sdiff udiff text old ( 12110:c24ee249b8ba ) new ( 12127:4207df055b0d )
full compact
1/*
2 * Copyright 2014 Google, Inc.
3 * Copyright (c) 2010-2014 ARM Limited
4 * All rights reserved
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

--- 57 unchanged lines hidden (view full) ---

66#include "debug/O3PipeView.hh"
67#include "params/DerivO3CPU.hh"
68#include "sim/faults.hh"
69#include "sim/full_system.hh"
70
71using namespace std;
72
73template <class Impl>
74void
75DefaultCommit<Impl>::processTrapEvent(ThreadID tid)
76{
77 // This will get reset by commit if it was switched out at the
78 // time of this event processing.
79 trapSquash[tid] = true;
80}
81
82template <class Impl>
83DefaultCommit<Impl>::DefaultCommit(O3CPU *_cpu, DerivO3CPUParams *params)
84 : cpu(_cpu),
85 iewToCommitDelay(params->iewToCommitDelay),
86 commitToIEWDelay(params->commitToIEWDelay),
87 renameToROBDelay(params->renameToROBDelay),
88 fetchToCommitDelay(params->commitToFetchDelay),
89 renameWidth(params->renameWidth),
90 commitWidth(params->commitWidth),

--- 427 unchanged lines hidden (view full) ---

518}
519
520template <class Impl>
521void
522DefaultCommit<Impl>::generateTrapEvent(ThreadID tid, Fault inst_fault)
523{
524 DPRINTF(Commit, "Generating trap event for [tid:%i]\n", tid);
525
526 EventFunctionWrapper *trap = new EventFunctionWrapper(
527 [this, tid]{ processTrapEvent(tid); },
528 "Trap", true, Event::CPU_Tick_Pri);
529
530 Cycles latency = dynamic_pointer_cast<SyscallRetryFault>(inst_fault) ?
531 cpu->syscallRetryLatency : trapLatency;
532
533 cpu->schedule(trap, cpu->clockEdge(latency));
534 trapInFlight[tid] = true;
535 thread[tid]->trapPending = true;
536}

--- 984 unchanged lines hidden ---