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 --- |