interrupts.cc (5254:c555f8b07345) interrupts.cc (5646:0a488a147fb8)
1/*
2 * Copyright (c) 2006 The Regents of The University of Michigan
3 * Copyright (c) 2007 MIPS Technologies, Inc.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

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

151 {
152 MiscReg compare = tc->readMiscRegNoEffect(MipsISA::Compare);
153 MiscReg count = tc->readMiscRegNoEffect(MipsISA::Count);
154 if (compare == count)
155 return true;
156 return false;
157 }
158
1/*
2 * Copyright (c) 2006 The Regents of The University of Michigan
3 * Copyright (c) 2007 MIPS Technologies, Inc.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

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

151 {
152 MiscReg compare = tc->readMiscRegNoEffect(MipsISA::Compare);
153 MiscReg count = tc->readMiscRegNoEffect(MipsISA::Count);
154 if (compare == count)
155 return true;
156 return false;
157 }
158
159
160 uint64_t Interrupts::get_vec(int int_num)
161 {
162 panic("MipsISA::Interrupts::get_vec() is not implemented. \n");
163 M5_DUMMY_RETURN
164 }
165*/
166void Interrupts::post(int int_num, ThreadContext* tc)
167{
168 DPRINTF(Interrupt, "Interrupt %d posted\n", int_num);
169 if (int_num < 0 || int_num >= NumInterruptLevels)
170 panic("int_num out of bounds\n");
171
172 uint8_t intstatus= getCauseIP_(tc);

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

247 return false;
248}
249void Interrupts::updateIntrInfo(ThreadContext *tc) const
250{
251 //Nothing needs to be done.
252 ;
253}
254
159*/
160void Interrupts::post(int int_num, ThreadContext* tc)
161{
162 DPRINTF(Interrupt, "Interrupt %d posted\n", int_num);
163 if (int_num < 0 || int_num >= NumInterruptLevels)
164 panic("int_num out of bounds\n");
165
166 uint8_t intstatus= getCauseIP_(tc);

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

241 return false;
242}
243void Interrupts::updateIntrInfo(ThreadContext *tc) const
244{
245 //Nothing needs to be done.
246 ;
247}
248
255uint64_t Interrupts::get_vec(int int_num)
256{
257 panic("MipsISA::Interrupts::get_vec() is not implemented. \n");
258 M5_DUMMY_RETURN
259 }
260
261bool Interrupts::interruptsPending(ThreadContext *tc) const
262{
263 //if there is a on cpu timer interrupt (i.e. Compare == Count)
264 //update CauseIP before proceeding to interrupt
265 if (onCpuTimerInterrupt(tc)){
266 DPRINTF(Interrupt, "Interrupts OnCpuTimerINterrupt(tc)==true\n");
267 //determine timer interrupt IP #
268 MiscReg intctl = tc->readMiscRegNoEffect(MipsISA::IntCtl);

--- 17 unchanged lines hidden ---
249bool Interrupts::interruptsPending(ThreadContext *tc) const
250{
251 //if there is a on cpu timer interrupt (i.e. Compare == Count)
252 //update CauseIP before proceeding to interrupt
253 if (onCpuTimerInterrupt(tc)){
254 DPRINTF(Interrupt, "Interrupts OnCpuTimerINterrupt(tc)==true\n");
255 //determine timer interrupt IP #
256 MiscReg intctl = tc->readMiscRegNoEffect(MipsISA::IntCtl);

--- 17 unchanged lines hidden ---