cpu.cc (5647:b06b49498c79) | cpu.cc (5702:bf84e2fa05f7) |
---|---|
1/* 2 * Copyright (c) 2004-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; --- 39 unchanged lines hidden (view full) --- 48#else 49#include "sim/process.hh" 50#endif 51 52#if USE_CHECKER 53#include "cpu/checker/cpu.hh" 54#endif 55 | 1/* 2 * Copyright (c) 2004-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; --- 39 unchanged lines hidden (view full) --- 48#else 49#include "sim/process.hh" 50#endif 51 52#if USE_CHECKER 53#include "cpu/checker/cpu.hh" 54#endif 55 |
56#if THE_ISA == ALPHA_ISA 57#include "arch/alpha/osfpal.hh" 58#endif 59 |
|
56class BaseCPUParams; 57 58using namespace TheISA; 59 60BaseO3CPU::BaseO3CPU(BaseCPUParams *params) 61 : BaseCPU(params), cpu_id(0) 62{ 63} --- 834 unchanged lines hidden (view full) --- 898 if (this->thread[0]->status() == ThreadContext::Suspended) { 899 DPRINTF(IPI,"Suspended Processor awoke\n"); 900 this->threadContexts[0]->activate(); 901 } 902} 903 904template <class Impl> 905Fault | 60class BaseCPUParams; 61 62using namespace TheISA; 63 64BaseO3CPU::BaseO3CPU(BaseCPUParams *params) 65 : BaseCPU(params), cpu_id(0) 66{ 67} --- 834 unchanged lines hidden (view full) --- 902 if (this->thread[0]->status() == ThreadContext::Suspended) { 903 DPRINTF(IPI,"Suspended Processor awoke\n"); 904 this->threadContexts[0]->activate(); 905 } 906} 907 908template <class Impl> 909Fault |
910FullO3CPU<Impl>::hwrei(unsigned tid) 911{ 912#if THE_ISA == ALPHA_ISA 913 // Need to clear the lock flag upon returning from an interrupt. 914 this->setMiscRegNoEffect(AlphaISA::MISCREG_LOCKFLAG, false, tid); 915 916 this->thread[tid]->kernelStats->hwrei(); 917 918 // FIXME: XXX check for interrupts? XXX 919#endif 920 return NoFault; 921} 922 923template <class Impl> 924bool 925FullO3CPU<Impl>::simPalCheck(int palFunc, unsigned tid) 926{ 927#if THE_ISA == ALPHA_ISA 928 if (this->thread[tid]->kernelStats) 929 this->thread[tid]->kernelStats->callpal(palFunc, 930 this->threadContexts[tid]); 931 932 switch (palFunc) { 933 case PAL::halt: 934 halt(); 935 if (--System::numSystemsRunning == 0) 936 exitSimLoop("all cpus halted"); 937 break; 938 939 case PAL::bpt: 940 case PAL::bugchk: 941 if (this->system->breakpoint()) 942 return false; 943 break; 944 } 945#endif 946 return true; 947} 948 949template <class Impl> 950Fault |
|
906FullO3CPU<Impl>::getInterrupts() 907{ 908 // Check if there are any outstanding interrupts 909 return this->interrupts->getInterrupt(this->threadContexts[0]); 910} 911 912template <class Impl> 913void --- 785 unchanged lines hidden --- | 951FullO3CPU<Impl>::getInterrupts() 952{ 953 // Check if there are any outstanding interrupts 954 return this->interrupts->getInterrupt(this->threadContexts[0]); 955} 956 957template <class Impl> 958void --- 785 unchanged lines hidden --- |