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 ---