arch-riscv: Correct interrupt order
In Section 3.1.14 of Volume II Riscv Spec., the interrupt order should be MEI, MSI, MTI, SEI, SSI, STI and so on. issues: https://gem5.atlassian.net/browse/GEM5-889 Change-Id: I357c86eecd74e9e65bbfd3d4d31e68bc276f8760 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/67211 Maintainer: Jason Lowe-Power <power.jg@gmail.com> Reviewed-by: Yu-hsin Wang <yuhsingw@google.com> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Jui-min Lee <fcrh@google.com> Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
This commit is contained in:
@@ -125,9 +125,9 @@ class Interrupts : public BaseInterrupts
|
||||
return std::make_shared<NonMaskableInterruptFault>();
|
||||
std::bitset<NumInterruptTypes> mask = globalMask();
|
||||
const std::vector<int> interrupt_order {
|
||||
INT_EXT_MACHINE, INT_TIMER_MACHINE, INT_SOFTWARE_MACHINE,
|
||||
INT_EXT_SUPER, INT_TIMER_SUPER, INT_SOFTWARE_SUPER,
|
||||
INT_EXT_USER, INT_TIMER_USER, INT_SOFTWARE_USER
|
||||
INT_EXT_MACHINE, INT_SOFTWARE_MACHINE, INT_TIMER_MACHINE,
|
||||
INT_EXT_SUPER, INT_SOFTWARE_SUPER, INT_TIMER_SUPER,
|
||||
INT_EXT_USER, INT_SOFTWARE_USER, INT_TIMER_USER
|
||||
};
|
||||
for (const int &id : interrupt_order)
|
||||
if (checkInterrupt(id) && mask[id])
|
||||
|
||||
Reference in New Issue
Block a user