thread_state.hh (6331:d947798df4a1) | thread_state.hh (8766:b0773af78423) |
---|---|
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; --- 61 unchanged lines hidden (view full) --- 70 */ 71 bool inSyscall; 72 73 /** Whether or not the thread is currently waiting on a trap, and 74 * thus able to be externally updated without squashing. 75 */ 76 bool trapPending; 77 | 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; --- 61 unchanged lines hidden (view full) --- 70 */ 71 bool inSyscall; 72 73 /** Whether or not the thread is currently waiting on a trap, and 74 * thus able to be externally updated without squashing. 75 */ 76 bool trapPending; 77 |
78#if FULL_SYSTEM 79 O3ThreadState(O3CPU *_cpu, int _thread_num) 80 : ThreadState(_cpu, _thread_num), | 78 O3ThreadState(O3CPU *_cpu, int _thread_num, Process *_process) 79 : ThreadState(_cpu, _thread_num, _process), |
81 cpu(_cpu), inSyscall(0), trapPending(0) 82 { | 80 cpu(_cpu), inSyscall(0), trapPending(0) 81 { |
82#if FULL_SYSTEM |
|
83 if (cpu->params()->profile) { 84 profile = new FunctionProfile(cpu->params()->system->kernelSymtab); 85 Callback *cb = 86 new MakeCallback<O3ThreadState, 87 &O3ThreadState::dumpFuncProfile>(this); 88 registerExitCallback(cb); 89 } 90 91 // let's fill with a dummy node for now so we don't get a segfault 92 // on the first cycle when there's no node available. 93 static ProfileNode dummyNode; 94 profileNode = &dummyNode; 95 profilePC = 3; | 83 if (cpu->params()->profile) { 84 profile = new FunctionProfile(cpu->params()->system->kernelSymtab); 85 Callback *cb = 86 new MakeCallback<O3ThreadState, 87 &O3ThreadState::dumpFuncProfile>(this); 88 registerExitCallback(cb); 89 } 90 91 // let's fill with a dummy node for now so we don't get a segfault 92 // on the first cycle when there's no node available. 93 static ProfileNode dummyNode; 94 profileNode = &dummyNode; 95 profilePC = 3; |
96 } 97#else 98 O3ThreadState(O3CPU *_cpu, int _thread_num, Process *_process) 99 : ThreadState(_cpu, _thread_num, _process), 100 cpu(_cpu), inSyscall(0), trapPending(0) 101 { } | |
102#endif | 96#endif |
97 } |
|
103 104 /** Pointer to the ThreadContext of this thread. */ 105 ThreadContext *tc; 106 107 /** Returns a pointer to the TC of this thread. */ 108 ThreadContext *getTC() { return tc; } 109 110#if !FULL_SYSTEM --- 14 unchanged lines hidden --- | 98 99 /** Pointer to the ThreadContext of this thread. */ 100 ThreadContext *tc; 101 102 /** Returns a pointer to the TC of this thread. */ 103 ThreadContext *getTC() { return tc; } 104 105#if !FULL_SYSTEM --- 14 unchanged lines hidden --- |