cpu.cc (7678:f19b6a3a8cec) | cpu.cc (7684:ce48527a3edb) |
---|---|
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()); | 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); | 929 this->trap(interrupt, 0, NULL); |
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 | 930} 931 932template <class Impl> 933void 934FullO3CPU<Impl>::updateMemPorts() 935{ 936 // Update all ThreadContext's memory ports (Functional/Virtual 937 // Ports) 938 ThreadID size = thread.size(); 939 for (ThreadID i = 0; i < size; ++i) 940 thread[i]->connectMemPorts(thread[i]->getTC()); 941} 942#endif 943 944template <class Impl> 945void |
947FullO3CPU<Impl>::trap(Fault fault, ThreadID tid, DynInstPtr inst) | 946FullO3CPU<Impl>::trap(Fault fault, ThreadID tid, StaticInstPtr inst) |
948{ 949 // Pass the thread's TC into the invoke method. | 947{ 948 // Pass the thread's TC into the invoke method. |
950 fault->invoke(this->threadContexts[tid], inst->staticInst); | 949 fault->invoke(this->threadContexts[tid], inst); |
951} 952 953#if !FULL_SYSTEM 954 955template <class Impl> 956void 957FullO3CPU<Impl>::syscall(int64_t callnum, ThreadID tid) 958{ --- 707 unchanged lines hidden --- | 950} 951 952#if !FULL_SYSTEM 953 954template <class Impl> 955void 956FullO3CPU<Impl>::syscall(int64_t callnum, ThreadID tid) 957{ --- 707 unchanged lines hidden --- |