cpu.hh (3454:26850ac19a39) | cpu.hh (3468:cf23ad1ceef2) |
---|---|
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 | 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} |
|
50class Processor; | 55class Processor; |
51class AlphaITB; 52class AlphaDTB; | |
53class PhysicalMemory; 54 55class RemoteGDB; 56class GDBListener; 57 58#else 59 60class Process; --- 30 unchanged lines hidden (view full) --- 91 typedef TheISA::FloatRegBits FloatRegBits; 92 typedef TheISA::MiscReg MiscReg; 93 public: 94 virtual void init(); 95 96 struct Params : public BaseCPU::Params 97 { 98#if FULL_SYSTEM | 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 |
99 AlphaITB *itb; 100 AlphaDTB *dtb; | 102 TheISA::ITB *itb; 103 TheISA::DTB *dtb; |
101#else 102 Process *process; 103#endif 104 bool exitOnError; 105 bool updateOnError; 106 bool warnOnlyOnLoadError; 107 }; 108 --- 26 unchanged lines hidden (view full) --- 135 } 136 137 public: 138 // Primary thread being run. 139 SimpleThread *thread; 140 141 ThreadContext *tc; 142 | 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 |
143 AlphaITB *itb; 144 AlphaDTB *dtb; | 146 TheISA::ITB *itb; 147 TheISA::DTB *dtb; |
145 146#if FULL_SYSTEM 147 Addr dbg_vtophys(Addr addr); 148#endif 149 150 union Result { 151 uint64_t integer; 152// float fp; --- 143 unchanged lines hidden (view full) --- 296 thread->setNextPC(val); 297 } 298 299 MiscReg readMiscReg(int misc_reg) 300 { 301 return thread->readMiscReg(misc_reg); 302 } 303 | 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 |
304 MiscReg readMiscRegWithEffect(int misc_reg, Fault &fault) | 307 MiscReg readMiscRegWithEffect(int misc_reg) |
305 { | 308 { |
306 return thread->readMiscRegWithEffect(misc_reg, fault); | 309 return thread->readMiscRegWithEffect(misc_reg); |
307 } 308 | 310 } 311 |
309 Fault setMiscReg(int misc_reg, const MiscReg &val) | 312 void setMiscReg(int misc_reg, const MiscReg &val) |
310 { 311 result.integer = val; 312 miscRegIdxs.push(misc_reg); 313 return thread->setMiscReg(misc_reg, val); 314 } 315 | 313 { 314 result.integer = val; 315 miscRegIdxs.push(misc_reg); 316 return thread->setMiscReg(misc_reg, val); 317 } 318 |
316 Fault setMiscRegWithEffect(int misc_reg, const MiscReg &val) | 319 void setMiscRegWithEffect(int misc_reg, const MiscReg &val) |
317 { 318 miscRegIdxs.push(misc_reg); 319 return thread->setMiscRegWithEffect(misc_reg, val); 320 } 321 322 void recordPCChange(uint64_t val) { changedPC = true; newPC = val; } 323 void recordNextPCChange(uint64_t val) { changedNextPC = true; } 324 --- 90 unchanged lines hidden --- | 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 --- |