cpu.hh (2757:58e3a66e72f7) cpu.hh (2817:273f7fb94f83)
1/*
2 * Copyright (c) 2004-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

44#include "config/full_system.hh"
45#include "cpu/activity.hh"
46#include "cpu/base.hh"
47#include "cpu/simple_thread.hh"
48#include "cpu/o3/comm.hh"
49#include "cpu/o3/cpu_policy.hh"
50#include "cpu/o3/scoreboard.hh"
51#include "cpu/o3/thread_state.hh"
1/*
2 * Copyright (c) 2004-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

44#include "config/full_system.hh"
45#include "cpu/activity.hh"
46#include "cpu/base.hh"
47#include "cpu/simple_thread.hh"
48#include "cpu/o3/comm.hh"
49#include "cpu/o3/cpu_policy.hh"
50#include "cpu/o3/scoreboard.hh"
51#include "cpu/o3/thread_state.hh"
52//#include "cpu/o3/thread_context.hh"
52#include "sim/process.hh"
53
54template <class>
55class Checker;
56class ThreadContext;
53#include "sim/process.hh"
54
55template <class>
56class Checker;
57class ThreadContext;
58template <class>
59class O3ThreadContext;
57class MemObject;
58class Process;
59
60class BaseO3CPU : public BaseCPU
61{
62 //Stuff that's pretty ISA independent will go here.
63 public:
64 typedef BaseCPU::Params Params;
65
66 BaseO3CPU(Params *params);
67
68 void regStats();
69
60class MemObject;
61class Process;
62
63class BaseO3CPU : public BaseCPU
64{
65 //Stuff that's pretty ISA independent will go here.
66 public:
67 typedef BaseCPU::Params Params;
68
69 BaseO3CPU(Params *params);
70
71 void regStats();
72
73 /** Sets this CPU's ID. */
74 void setCpuId(int id) { cpu_id = id; }
75
76 /** Reads this CPU's ID. */
70 int readCpuId() { return cpu_id; }
71
72 protected:
73 int cpu_id;
74};
75
76/**
77 * FullO3CPU class, has each of the stages (fetch through commit)

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

89 typedef typename Impl::CPUPol CPUPolicy;
90 typedef typename Impl::Params Params;
91 typedef typename Impl::DynInstPtr DynInstPtr;
92
93 typedef O3ThreadState<Impl> Thread;
94
95 typedef typename std::list<DynInstPtr>::iterator ListIt;
96
77 int readCpuId() { return cpu_id; }
78
79 protected:
80 int cpu_id;
81};
82
83/**
84 * FullO3CPU class, has each of the stages (fetch through commit)

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

96 typedef typename Impl::CPUPol CPUPolicy;
97 typedef typename Impl::Params Params;
98 typedef typename Impl::DynInstPtr DynInstPtr;
99
100 typedef O3ThreadState<Impl> Thread;
101
102 typedef typename std::list<DynInstPtr>::iterator ListIt;
103
104 friend class O3ThreadContext<Impl>;
97 public:
98 enum Status {
99 Running,
100 Idle,
101 Halted,
102 Blocked,
103 SwitchedOut
104 };

--- 440 unchanged lines hidden ---
105 public:
106 enum Status {
107 Running,
108 Idle,
109 Halted,
110 Blocked,
111 SwitchedOut
112 };

--- 440 unchanged lines hidden ---