thread_state.cc revision 2683
12683Sktlim@umich.edu#include "base/output.hh" 22683Sktlim@umich.edu#include "cpu/profile.hh" 32683Sktlim@umich.edu#include "cpu/thread_state.hh" 42683Sktlim@umich.edu 52683Sktlim@umich.edu#if FULL_SYSTEM 62683Sktlim@umich.eduThreadState::ThreadState(int _cpuId, int _tid) 72683Sktlim@umich.edu : cpuId(_cpuId), tid(_tid), lastActivate(0), lastSuspend(0), 82683Sktlim@umich.edu profile(NULL), profileNode(NULL), profilePC(0), quiesceEvent(NULL), 92683Sktlim@umich.edu funcExeInst(0), storeCondFailures(0) 102683Sktlim@umich.edu#else 112683Sktlim@umich.eduThreadState::ThreadState(int _cpuId, int _tid, MemObject *mem, 122683Sktlim@umich.edu Process *_process, short _asid) 132683Sktlim@umich.edu : cpuId(_cpuId), tid(_tid), lastActivate(0), lastSuspend(0), 142683Sktlim@umich.edu process(_process), asid(_asid), 152683Sktlim@umich.edu funcExeInst(0), storeCondFailures(0) 162683Sktlim@umich.edu#endif 172683Sktlim@umich.edu{ 182683Sktlim@umich.edu#if !FULL_SYSTEM 192683Sktlim@umich.edu /* Use this port to for syscall emulation writes to memory. */ 202683Sktlim@umich.edu Port *mem_port; 212683Sktlim@umich.edu port = new TranslatingPort(csprintf("%d-funcport", 222683Sktlim@umich.edu tid), 232683Sktlim@umich.edu process->pTable, false); 242683Sktlim@umich.edu mem_port = mem->getPort("functional"); 252683Sktlim@umich.edu mem_port->setPeer(port); 262683Sktlim@umich.edu port->setPeer(mem_port); 272683Sktlim@umich.edu#endif 282683Sktlim@umich.edu} 292683Sktlim@umich.edu 302683Sktlim@umich.edu#if FULL_SYSTEM 312683Sktlim@umich.edu 322683Sktlim@umich.eduvoid 332683Sktlim@umich.eduThreadState::profileClear() 342683Sktlim@umich.edu{ 352683Sktlim@umich.edu if (profile) 362683Sktlim@umich.edu profile->clear(); 372683Sktlim@umich.edu} 382683Sktlim@umich.edu 392683Sktlim@umich.eduvoid 402683Sktlim@umich.eduThreadState::profileSample() 412683Sktlim@umich.edu{ 422683Sktlim@umich.edu if (profile) 432683Sktlim@umich.edu profile->sample(profileNode, profilePC); 442683Sktlim@umich.edu} 452683Sktlim@umich.edu 462683Sktlim@umich.edu#endif 47