cpu.cc (10331:ed05298e8566) cpu.cc (10379:c00f6d7e2681)
1/*
2 * Copyright (c) 2011-2012, 2014 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

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

1090FullO3CPU<Impl>::getInterrupts()
1091{
1092 // Check if there are any outstanding interrupts
1093 return this->interrupts->getInterrupt(this->threadContexts[0]);
1094}
1095
1096template <class Impl>
1097void
1/*
2 * Copyright (c) 2011-2012, 2014 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

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

1090FullO3CPU<Impl>::getInterrupts()
1091{
1092 // Check if there are any outstanding interrupts
1093 return this->interrupts->getInterrupt(this->threadContexts[0]);
1094}
1095
1096template <class Impl>
1097void
1098FullO3CPU<Impl>::processInterrupts(Fault interrupt)
1098FullO3CPU<Impl>::processInterrupts(const Fault &interrupt)
1099{
1100 // Check for interrupts here. For now can copy the code that
1101 // exists within isa_fullsys_traits.hh. Also assume that thread 0
1102 // is the one that handles the interrupts.
1103 // @todo: Possibly consolidate the interrupt checking code.
1104 // @todo: Allow other threads to handle interrupts.
1105
1106 assert(interrupt != NoFault);
1107 this->interrupts->updateIntrInfo(this->threadContexts[0]);
1108
1109 DPRINTF(O3CPU, "Interrupt %s being handled\n", interrupt->name());
1110 this->trap(interrupt, 0, NULL);
1111}
1112
1113template <class Impl>
1114void
1099{
1100 // Check for interrupts here. For now can copy the code that
1101 // exists within isa_fullsys_traits.hh. Also assume that thread 0
1102 // is the one that handles the interrupts.
1103 // @todo: Possibly consolidate the interrupt checking code.
1104 // @todo: Allow other threads to handle interrupts.
1105
1106 assert(interrupt != NoFault);
1107 this->interrupts->updateIntrInfo(this->threadContexts[0]);
1108
1109 DPRINTF(O3CPU, "Interrupt %s being handled\n", interrupt->name());
1110 this->trap(interrupt, 0, NULL);
1111}
1112
1113template <class Impl>
1114void
1115FullO3CPU<Impl>::trap(Fault fault, ThreadID tid, StaticInstPtr inst)
1115FullO3CPU<Impl>::trap(const Fault &fault, ThreadID tid, StaticInstPtr inst)
1116{
1117 // Pass the thread's TC into the invoke method.
1118 fault->invoke(this->threadContexts[tid], inst);
1119}
1120
1121template <class Impl>
1122void
1123FullO3CPU<Impl>::syscall(int64_t callnum, ThreadID tid)

--- 746 unchanged lines hidden ---
1116{
1117 // Pass the thread's TC into the invoke method.
1118 fault->invoke(this->threadContexts[tid], inst);
1119}
1120
1121template <class Impl>
1122void
1123FullO3CPU<Impl>::syscall(int64_t callnum, ThreadID tid)

--- 746 unchanged lines hidden ---