thread_state.hh (3126:756092c6383c) thread_state.hh (3402:db60546818d0)
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;

--- 63 unchanged lines hidden (view full) ---

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

--- 63 unchanged lines hidden (view full) ---

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(-1, _thread_num),
80 : ThreadState(_cpu, -1, _thread_num),
81 cpu(_cpu), inSyscall(0), trapPending(0)
82 {
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
81 cpu(_cpu), inSyscall(0), trapPending(0)
82 {
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, int _asid,
99 MemObject *mem)
100 : ThreadState(-1, _thread_num, _process, _asid, mem),
98 O3ThreadState(O3CPU *_cpu, int _thread_num, Process *_process, int _asid)
99 : ThreadState(_cpu, -1, _thread_num, _process, _asid),
101 cpu(_cpu), inSyscall(0), trapPending(0)
102 { }
103#endif
104
105 /** Pointer to the ThreadContext of this thread. */
106 ThreadContext *tc;
107
108 /** Returns a pointer to the TC of this thread. */

--- 17 unchanged lines hidden ---
100 cpu(_cpu), inSyscall(0), trapPending(0)
101 { }
102#endif
103
104 /** Pointer to the ThreadContext of this thread. */
105 ThreadContext *tc;
106
107 /** Returns a pointer to the TC of this thread. */

--- 17 unchanged lines hidden ---