rename.hh (4329:52057dbec096) rename.hh (5529:9ae69b9cd7fd)
1/*
2 * Copyright (c) 2004-2006 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;

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

31#ifndef __CPU_O3_RENAME_HH__
32#define __CPU_O3_RENAME_HH__
33
34#include <list>
35
36#include "base/statistics.hh"
37#include "base/timebuf.hh"
38
1/*
2 * Copyright (c) 2004-2006 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;

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

31#ifndef __CPU_O3_RENAME_HH__
32#define __CPU_O3_RENAME_HH__
33
34#include <list>
35
36#include "base/statistics.hh"
37#include "base/timebuf.hh"
38
39class DerivO3CPUParams;
40
39/**
40 * DefaultRename handles both single threaded and SMT rename. Its
41 * width is specified by the parameters; each cycle it tries to rename
42 * that many instructions. It holds onto the rename history of all
43 * instructions with destination registers, storing the
44 * arch. register, the new physical register, and the old physical
45 * register, to allow for undoing of mappings if squashing happens, or
46 * freeing up registers upon commit. Rename handles blocking if the

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

51template<class Impl>
52class DefaultRename
53{
54 public:
55 // Typedefs from the Impl.
56 typedef typename Impl::CPUPol CPUPol;
57 typedef typename Impl::DynInstPtr DynInstPtr;
58 typedef typename Impl::O3CPU O3CPU;
41/**
42 * DefaultRename handles both single threaded and SMT rename. Its
43 * width is specified by the parameters; each cycle it tries to rename
44 * that many instructions. It holds onto the rename history of all
45 * instructions with destination registers, storing the
46 * arch. register, the new physical register, and the old physical
47 * register, to allow for undoing of mappings if squashing happens, or
48 * freeing up registers upon commit. Rename handles blocking if the

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

53template<class Impl>
54class DefaultRename
55{
56 public:
57 // Typedefs from the Impl.
58 typedef typename Impl::CPUPol CPUPol;
59 typedef typename Impl::DynInstPtr DynInstPtr;
60 typedef typename Impl::O3CPU O3CPU;
59 typedef typename Impl::Params Params;
60
61 // Typedefs from the CPUPol
62 typedef typename CPUPol::DecodeStruct DecodeStruct;
63 typedef typename CPUPol::RenameStruct RenameStruct;
64 typedef typename CPUPol::TimeStruct TimeStruct;
65 typedef typename CPUPol::FreeList FreeList;
66 typedef typename CPUPol::RenameMap RenameMap;
67 // These are used only for initialization.

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

102 /** Rename status. */
103 RenameStatus _status;
104
105 /** Per-thread status. */
106 ThreadStatus renameStatus[Impl::MaxThreads];
107
108 public:
109 /** DefaultRename constructor. */
61
62 // Typedefs from the CPUPol
63 typedef typename CPUPol::DecodeStruct DecodeStruct;
64 typedef typename CPUPol::RenameStruct RenameStruct;
65 typedef typename CPUPol::TimeStruct TimeStruct;
66 typedef typename CPUPol::FreeList FreeList;
67 typedef typename CPUPol::RenameMap RenameMap;
68 // These are used only for initialization.

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

103 /** Rename status. */
104 RenameStatus _status;
105
106 /** Per-thread status. */
107 ThreadStatus renameStatus[Impl::MaxThreads];
108
109 public:
110 /** DefaultRename constructor. */
110 DefaultRename(O3CPU *_cpu, Params *params);
111 DefaultRename(O3CPU *_cpu, DerivO3CPUParams *params);
111
112 /** Returns the name of rename. */
113 std::string name() const;
114
115 /** Registers statistics. */
116 void regStats();
117
118 /** Sets the main backwards communication time buffer pointer. */

--- 365 unchanged lines hidden ---
112
113 /** Returns the name of rename. */
114 std::string name() const;
115
116 /** Registers statistics. */
117 void regStats();
118
119 /** Sets the main backwards communication time buffer pointer. */

--- 365 unchanged lines hidden ---