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; --- 912 unchanged lines hidden (view full) --- 921 // is the one that handles the interrupts. 922 // @todo: Possibly consolidate the interrupt checking code. 923 // @todo: Allow other threads to handle interrupts. 924 925 assert(interrupt != NoFault); 926 this->interrupts->updateIntrInfo(this->threadContexts[0]); 927 928 DPRINTF(O3CPU, "Interrupt %s being handled\n", interrupt->name()); |
929 DynInstPtr dummyInst; 930 this->trap(interrupt, 0, dummyInst); |
931} 932 933template <class Impl> 934void 935FullO3CPU<Impl>::updateMemPorts() 936{ 937 // Update all ThreadContext's memory ports (Functional/Virtual 938 // Ports) 939 ThreadID size = thread.size(); 940 for (ThreadID i = 0; i < size; ++i) 941 thread[i]->connectMemPorts(thread[i]->getTC()); 942} 943#endif 944 945template <class Impl> 946void |
947FullO3CPU<Impl>::trap(Fault fault, ThreadID tid, DynInstPtr inst) |
948{ 949 // Pass the thread's TC into the invoke method. |
950 fault->invoke(this->threadContexts[tid], inst->staticInst); |
951} 952 953#if !FULL_SYSTEM 954 955template <class Impl> 956void 957FullO3CPU<Impl>::syscall(int64_t callnum, ThreadID tid) 958{ --- 707 unchanged lines hidden --- |