1/* 2 * Copyright (c) 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; --- 33 unchanged lines hidden (view full) --- 42#include "cpu/base_dyn_inst.hh" 43#include "cpu/simple_thread.hh" 44#include "cpu/pc_event.hh" 45#include "cpu/static_inst.hh" 46#include "sim/eventq.hh" 47 48// forward declarations 49#if FULL_SYSTEM |
50namespace TheISA 51{ 52 class ITB; 53 class DTB; 54} |
55class Processor; |
56class PhysicalMemory; 57 58class RemoteGDB; 59class GDBListener; 60 61#else 62 63class Process; --- 30 unchanged lines hidden (view full) --- 94 typedef TheISA::FloatRegBits FloatRegBits; 95 typedef TheISA::MiscReg MiscReg; 96 public: 97 virtual void init(); 98 99 struct Params : public BaseCPU::Params 100 { 101#if FULL_SYSTEM |
102 TheISA::ITB *itb; 103 TheISA::DTB *dtb; |
104#else 105 Process *process; 106#endif 107 bool exitOnError; 108 bool updateOnError; 109 bool warnOnlyOnLoadError; 110 }; 111 --- 26 unchanged lines hidden (view full) --- 138 } 139 140 public: 141 // Primary thread being run. 142 SimpleThread *thread; 143 144 ThreadContext *tc; 145 |
146 TheISA::ITB *itb; 147 TheISA::DTB *dtb; |
148 149#if FULL_SYSTEM 150 Addr dbg_vtophys(Addr addr); 151#endif 152 153 union Result { 154 uint64_t integer; 155// float fp; --- 143 unchanged lines hidden (view full) --- 299 thread->setNextPC(val); 300 } 301 302 MiscReg readMiscReg(int misc_reg) 303 { 304 return thread->readMiscReg(misc_reg); 305 } 306 |
307 MiscReg readMiscRegWithEffect(int misc_reg) |
308 { |
309 return thread->readMiscRegWithEffect(misc_reg); |
310 } 311 |
312 void setMiscReg(int misc_reg, const MiscReg &val) |
313 { 314 result.integer = val; 315 miscRegIdxs.push(misc_reg); 316 return thread->setMiscReg(misc_reg, val); 317 } 318 |
319 void setMiscRegWithEffect(int misc_reg, const MiscReg &val) |
320 { 321 miscRegIdxs.push(misc_reg); 322 return thread->setMiscRegWithEffect(misc_reg, val); 323 } 324 325 void recordPCChange(uint64_t val) { changedPC = true; newPC = val; } 326 void recordNextPCChange(uint64_t val) { changedNextPC = true; } 327 --- 90 unchanged lines hidden --- |