fetch.hh (9020:14321ce30881) fetch.hh (9023:e9201a7bce59)
1/*
2 * Copyright (c) 2010-2011 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

40 * Authors: Kevin Lim
41 * Korey Sewell
42 */
43
44#ifndef __CPU_O3_FETCH_HH__
45#define __CPU_O3_FETCH_HH__
46
47#include "arch/decoder.hh"
1/*
2 * Copyright (c) 2010-2011 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

40 * Authors: Kevin Lim
41 * Korey Sewell
42 */
43
44#ifndef __CPU_O3_FETCH_HH__
45#define __CPU_O3_FETCH_HH__
46
47#include "arch/decoder.hh"
48#include "arch/predecoder.hh"
49#include "arch/utility.hh"
50#include "base/statistics.hh"
51#include "config/the_isa.hh"
52#include "cpu/pc_event.hh"
53#include "cpu/timebuf.hh"
54#include "cpu/translation.hh"
55#include "mem/packet.hh"
56#include "mem/port.hh"

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

335
336 /** Align a PC to the start of an I-cache block. */
337 Addr icacheBlockAlignPC(Addr addr)
338 {
339 return (addr & ~(cacheBlkMask));
340 }
341
342 /** The decoder. */
48#include "arch/utility.hh"
49#include "base/statistics.hh"
50#include "config/the_isa.hh"
51#include "cpu/pc_event.hh"
52#include "cpu/timebuf.hh"
53#include "cpu/translation.hh"
54#include "mem/packet.hh"
55#include "mem/port.hh"

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

334
335 /** Align a PC to the start of an I-cache block. */
336 Addr icacheBlockAlignPC(Addr addr)
337 {
338 return (addr & ~(cacheBlkMask));
339 }
340
341 /** The decoder. */
343 TheISA::Decoder decoder;
342 TheISA::Decoder *decoder[Impl::MaxThreads];
344
345 private:
346 DynInstPtr buildInst(ThreadID tid, StaticInstPtr staticInst,
347 StaticInstPtr curMacroop, TheISA::PCState thisPC,
348 TheISA::PCState nextPC, bool trace);
349
350 /** Returns the appropriate thread to fetch, given the fetch policy. */
351 ThreadID getFetchingThread(FetchPriority &fetch_priority);

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

393
394 //Might be annoying how this name is different than the queue.
395 /** Wire used to write any information heading to decode. */
396 typename TimeBuffer<FetchStruct>::wire toDecode;
397
398 /** BPredUnit. */
399 BPredUnit branchPred;
400
343
344 private:
345 DynInstPtr buildInst(ThreadID tid, StaticInstPtr staticInst,
346 StaticInstPtr curMacroop, TheISA::PCState thisPC,
347 TheISA::PCState nextPC, bool trace);
348
349 /** Returns the appropriate thread to fetch, given the fetch policy. */
350 ThreadID getFetchingThread(FetchPriority &fetch_priority);

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

392
393 //Might be annoying how this name is different than the queue.
394 /** Wire used to write any information heading to decode. */
395 typename TimeBuffer<FetchStruct>::wire toDecode;
396
397 /** BPredUnit. */
398 BPredUnit branchPred;
399
401 /** Predecoder. */
402 TheISA::Predecoder predecoder;
403
404 TheISA::PCState pc[Impl::MaxThreads];
405
406 Addr fetchOffset[Impl::MaxThreads];
407
408 StaticInstPtr macroop[Impl::MaxThreads];
409
410 /** Can the fetch stage redirect from an interrupt on this instruction? */
411 bool delayedCommit[Impl::MaxThreads];

--- 151 unchanged lines hidden ---
400 TheISA::PCState pc[Impl::MaxThreads];
401
402 Addr fetchOffset[Impl::MaxThreads];
403
404 StaticInstPtr macroop[Impl::MaxThreads];
405
406 /** Can the fetch stage redirect from an interrupt on this instruction? */
407 bool delayedCommit[Impl::MaxThreads];

--- 151 unchanged lines hidden ---