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 ---