cpu.cc (13831:4fba790d88be) cpu.cc (13905:5cf30883255c)
1/*
2 * Copyright (c) 2011-2012, 2014, 2016, 2017, 2019 ARM Limited
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

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

920template <class Impl>
921Fault
922FullO3CPU<Impl>::hwrei(ThreadID tid)
923{
924#if THE_ISA == ALPHA_ISA
925 // Need to clear the lock flag upon returning from an interrupt.
926 this->setMiscRegNoEffect(AlphaISA::MISCREG_LOCKFLAG, false, tid);
927
1/*
2 * Copyright (c) 2011-2012, 2014, 2016, 2017, 2019 ARM Limited
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

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

920template <class Impl>
921Fault
922FullO3CPU<Impl>::hwrei(ThreadID tid)
923{
924#if THE_ISA == ALPHA_ISA
925 // Need to clear the lock flag upon returning from an interrupt.
926 this->setMiscRegNoEffect(AlphaISA::MISCREG_LOCKFLAG, false, tid);
927
928 this->thread[tid]->kernelStats->hwrei();
928 auto *stats = dynamic_cast<AlphaISA::Kernel::Statistics *>(
929 this->thread[tid]->kernelStats);
930 assert(stats);
931 stats->hwrei();
929
930 // FIXME: XXX check for interrupts? XXX
931#endif
932 return NoFault;
933}
934
935template <class Impl>
936bool
937FullO3CPU<Impl>::simPalCheck(int palFunc, ThreadID tid)
938{
939#if THE_ISA == ALPHA_ISA
932
933 // FIXME: XXX check for interrupts? XXX
934#endif
935 return NoFault;
936}
937
938template <class Impl>
939bool
940FullO3CPU<Impl>::simPalCheck(int palFunc, ThreadID tid)
941{
942#if THE_ISA == ALPHA_ISA
940 if (this->thread[tid]->kernelStats)
941 this->thread[tid]->kernelStats->callpal(palFunc,
942 this->threadContexts[tid]);
943 auto *stats = dynamic_cast<AlphaISA::Kernel::Statistics *>(
944 this->thread[tid]->kernelStats);
945 if (stats)
946 stats->callpal(palFunc, this->threadContexts[tid]);
943
944 switch (palFunc) {
945 case PAL::halt:
946 halt();
947 if (--System::numSystemsRunning == 0)
948 exitSimLoop("all cpus halted");
949 break;
950

--- 981 unchanged lines hidden ---
947
948 switch (palFunc) {
949 case PAL::halt:
950 halt();
951 if (--System::numSystemsRunning == 0)
952 exitSimLoop("all cpus halted");
953 break;
954

--- 981 unchanged lines hidden ---