decode.hh (4329:52057dbec096) | decode.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_DECODE_HH__ 32#define __CPU_O3_DECODE_HH__ 33 34#include <queue> 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_DECODE_HH__ 32#define __CPU_O3_DECODE_HH__ 33 34#include <queue> 35 36#include "base/statistics.hh" 37#include "base/timebuf.hh" 38 |
39class DerivO3CPUParams; 40 |
|
39/** 40 * DefaultDecode class handles both single threaded and SMT 41 * decode. Its width is specified by the parameters; each cycles it 42 * tries to decode that many instructions. Because instructions are 43 * actually decoded when the StaticInst is created, this stage does 44 * not do much other than check any PC-relative branches. 45 */ 46template<class Impl> 47class DefaultDecode 48{ 49 private: 50 // Typedefs from the Impl. 51 typedef typename Impl::O3CPU O3CPU; 52 typedef typename Impl::DynInstPtr DynInstPtr; | 41/** 42 * DefaultDecode class handles both single threaded and SMT 43 * decode. Its width is specified by the parameters; each cycles it 44 * tries to decode that many instructions. Because instructions are 45 * actually decoded when the StaticInst is created, this stage does 46 * not do much other than check any PC-relative branches. 47 */ 48template<class Impl> 49class DefaultDecode 50{ 51 private: 52 // Typedefs from the Impl. 53 typedef typename Impl::O3CPU O3CPU; 54 typedef typename Impl::DynInstPtr DynInstPtr; |
53 typedef typename Impl::Params Params; | |
54 typedef typename Impl::CPUPol CPUPol; 55 56 // Typedefs from the CPU policy. 57 typedef typename CPUPol::FetchStruct FetchStruct; 58 typedef typename CPUPol::DecodeStruct DecodeStruct; 59 typedef typename CPUPol::TimeStruct TimeStruct; 60 61 public: --- 19 unchanged lines hidden (view full) --- 81 /** Decode status. */ 82 DecodeStatus _status; 83 84 /** Per-thread status. */ 85 ThreadStatus decodeStatus[Impl::MaxThreads]; 86 87 public: 88 /** DefaultDecode constructor. */ | 55 typedef typename Impl::CPUPol CPUPol; 56 57 // Typedefs from the CPU policy. 58 typedef typename CPUPol::FetchStruct FetchStruct; 59 typedef typename CPUPol::DecodeStruct DecodeStruct; 60 typedef typename CPUPol::TimeStruct TimeStruct; 61 62 public: --- 19 unchanged lines hidden (view full) --- 82 /** Decode status. */ 83 DecodeStatus _status; 84 85 /** Per-thread status. */ 86 ThreadStatus decodeStatus[Impl::MaxThreads]; 87 88 public: 89 /** DefaultDecode constructor. */ |
89 DefaultDecode(O3CPU *_cpu, Params *params); | 90 DefaultDecode(O3CPU *_cpu, DerivO3CPUParams *params); |
90 91 /** Returns the name of decode. */ 92 std::string name() const; 93 94 /** Registers statistics. */ 95 void regStats(); 96 97 /** Sets the main backwards communication time buffer pointer. */ --- 216 unchanged lines hidden --- | 91 92 /** Returns the name of decode. */ 93 std::string name() const; 94 95 /** Registers statistics. */ 96 void regStats(); 97 98 /** Sets the main backwards communication time buffer pointer. */ --- 216 unchanged lines hidden --- |