commit.hh (8737:770ccf3af571) | commit.hh (8793:5f25086326ac) |
---|---|
1/* 2 * Copyright (c) 2010 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 --- 37 unchanged lines hidden (view full) --- 46 47#include <queue> 48 49#include "base/statistics.hh" 50#include "cpu/exetrace.hh" 51#include "cpu/inst_seq.hh" 52#include "cpu/timebuf.hh" 53 | 1/* 2 * Copyright (c) 2010 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 --- 37 unchanged lines hidden (view full) --- 46 47#include <queue> 48 49#include "base/statistics.hh" 50#include "cpu/exetrace.hh" 51#include "cpu/inst_seq.hh" 52#include "cpu/timebuf.hh" 53 |
54struct DerivO3CPUParams; | 54class DerivO3CPUParams; |
55 56template <class> | 55 56template <class> |
57struct O3ThreadState; | 57class O3ThreadState; |
58 59/** 60 * DefaultCommit handles single threaded and SMT commit. Its width is 61 * specified by the parameters; each cycle it tries to commit that 62 * many instructions. The SMT policy decides which thread it tries to 63 * commit instructions from. Non- speculative instructions must reach 64 * the head of the ROB before they are ready to execute; once they 65 * reach the head, commit will broadcast the instruction's sequence --- 196 unchanged lines hidden (view full) --- 262 /** Handles squashing from instruction with SquashAfter set. 263 * This differs from the other squashes as it squashes following 264 * instructions instead of the current instruction and doesn't 265 * clean up various status bits about traps/tc writes pending. 266 */ 267 void squashAfter(ThreadID tid, DynInstPtr &head_inst, 268 uint64_t squash_after_seq_num); 269 | 58 59/** 60 * DefaultCommit handles single threaded and SMT commit. Its width is 61 * specified by the parameters; each cycle it tries to commit that 62 * many instructions. The SMT policy decides which thread it tries to 63 * commit instructions from. Non- speculative instructions must reach 64 * the head of the ROB before they are ready to execute; once they 65 * reach the head, commit will broadcast the instruction's sequence --- 196 unchanged lines hidden (view full) --- 262 /** Handles squashing from instruction with SquashAfter set. 263 * This differs from the other squashes as it squashes following 264 * instructions instead of the current instruction and doesn't 265 * clean up various status bits about traps/tc writes pending. 266 */ 267 void squashAfter(ThreadID tid, DynInstPtr &head_inst, 268 uint64_t squash_after_seq_num); 269 |
270#if FULL_SYSTEM | |
271 /** Handles processing an interrupt. */ 272 void handleInterrupt(); 273 274 /** Get fetch redirecting so we can handle an interrupt */ 275 void propagateInterrupt(); | 270 /** Handles processing an interrupt. */ 271 void handleInterrupt(); 272 273 /** Get fetch redirecting so we can handle an interrupt */ 274 void propagateInterrupt(); |
276#endif // FULL_SYSTEM | |
277 278 /** Commits as many instructions as possible. */ 279 void commitInsts(); 280 281 /** Tries to commit the head ROB instruction passed in. 282 * @param head_inst The instruction to be committed. 283 */ 284 bool commitHead(DynInstPtr &head_inst, unsigned inst_num); --- 208 unchanged lines hidden --- | 275 276 /** Commits as many instructions as possible. */ 277 void commitInsts(); 278 279 /** Tries to commit the head ROB instruction passed in. 280 * @param head_inst The instruction to be committed. 281 */ 282 bool commitHead(DynInstPtr &head_inst, unsigned inst_num); --- 208 unchanged lines hidden --- |