interrupts.hh (8285:c38905a6fa32) interrupts.hh (8518:9c87727099ce)
1/*
2 * Copyright (c) 2010 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

129 if (!intStatus)
130 return false;
131
132 CPSR cpsr = tc->readMiscReg(MISCREG_CPSR);
133
134 return ((interrupts[INT_IRQ] && !cpsr.i) ||
135 (interrupts[INT_FIQ] && !cpsr.f) ||
136 (interrupts[INT_ABT] && !cpsr.a) ||
1/*
2 * Copyright (c) 2010 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

129 if (!intStatus)
130 return false;
131
132 CPSR cpsr = tc->readMiscReg(MISCREG_CPSR);
133
134 return ((interrupts[INT_IRQ] && !cpsr.i) ||
135 (interrupts[INT_FIQ] && !cpsr.f) ||
136 (interrupts[INT_ABT] && !cpsr.a) ||
137 (interrupts[INT_RST]));
137 (interrupts[INT_RST]) ||
138 (interrupts[INT_SEV]));
138 }
139
140 /**
141 * Check the raw interrupt state.
142 * This function is used to check if a wfi operation should sleep. If there
143 * is an interrupt pending, even if it's masked, wfi doesn't sleep.
144 * @return any interrupts pending
145 */

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

162 return new Interrupt;
163 if (interrupts[INT_FIQ] && !cpsr.f)
164 return new FastInterrupt;
165 if (interrupts[INT_ABT] && !cpsr.a)
166 return new DataAbort(0, false, 0,
167 ArmFault::AsynchronousExternalAbort);
168 if (interrupts[INT_RST])
169 return new Reset;
139 }
140
141 /**
142 * Check the raw interrupt state.
143 * This function is used to check if a wfi operation should sleep. If there
144 * is an interrupt pending, even if it's masked, wfi doesn't sleep.
145 * @return any interrupts pending
146 */

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

163 return new Interrupt;
164 if (interrupts[INT_FIQ] && !cpsr.f)
165 return new FastInterrupt;
166 if (interrupts[INT_ABT] && !cpsr.a)
167 return new DataAbort(0, false, 0,
168 ArmFault::AsynchronousExternalAbort);
169 if (interrupts[INT_RST])
170 return new Reset;
171 if (interrupts[INT_SEV])
172 return new ArmSev;
170
171 panic("intStatus and interrupts not in sync\n");
172 }
173
174 void
175 updateIntrInfo(ThreadContext *tc)
176 {
177 ; // nothing to do

--- 19 unchanged lines hidden ---
173
174 panic("intStatus and interrupts not in sync\n");
175 }
176
177 void
178 updateIntrInfo(ThreadContext *tc)
179 {
180 ; // nothing to do

--- 19 unchanged lines hidden ---