system_events.cc (2683:d6b72bb2ed97) | system_events.cc (2716:b9114064d77a) |
---|---|
1/* 2 * Copyright (c) 2004-2005 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; --- 41 unchanged lines hidden (view full) --- 50/* 51 BranchPred *bp = tc->getCpuPtr()->getBranchPred(); 52 if (bp != NULL) { 53 bp->popRAS(tc->getThreadNum()); 54 } 55*/ 56} 57 | 1/* 2 * Copyright (c) 2004-2005 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; --- 41 unchanged lines hidden (view full) --- 50/* 51 BranchPred *bp = tc->getCpuPtr()->getBranchPred(); 52 if (bp != NULL) { 53 bp->popRAS(tc->getThreadNum()); 54 } 55*/ 56} 57 |
58 59FnEvent::FnEvent(PCEventQueue *q, const std::string &desc, Addr addr, 60 Stats::MainBin *bin) 61 : PCEvent(q, desc, addr), _name(desc), mybin(bin) 62{ 63} 64 | |
65void | 58void |
66FnEvent::process(ThreadContext *tc) 67{ 68 if (tc->misspeculating()) 69 return; 70 71 tc->getSystemPtr()->kernelBinning->call(tc, mybin); 72} 73 74void | |
75IdleStartEvent::process(ThreadContext *tc) 76{ 77 if (tc->getKernelStats()) 78 tc->getKernelStats()->setIdleProcess( 79 tc->readMiscReg(AlphaISA::IPR_PALtemp23), tc); 80 remove(); 81} | 59IdleStartEvent::process(ThreadContext *tc) 60{ 61 if (tc->getKernelStats()) 62 tc->getKernelStats()->setIdleProcess( 63 tc->readMiscReg(AlphaISA::IPR_PALtemp23), tc); 64 remove(); 65} |
82 83void 84InterruptStartEvent::process(ThreadContext *tc) 85{ 86 if (tc->getKernelStats()) 87 tc->getKernelStats()->mode(Kernel::interrupt, tc); 88} 89 90void 91InterruptEndEvent::process(ThreadContext *tc) 92{ 93 // We go back to kernel, if we are user, inside the rti 94 // pal code we will get switched to user because of the ICM write 95 if (tc->getKernelStats()) 96 tc->getKernelStats()->mode(Kernel::kernel, tc); 97} | |