Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/mips/mips On mipsNN use trap instructions when inco...
details: https://anonhg.NetBSD.org/src/rev/cb8df2555a02
branches: trunk
changeset: 808897:cb8df2555a02
user: matt <matt%NetBSD.org@localhost>
date: Sat Jun 06 21:45:40 2015 +0000
description:
On mipsNN use trap instructions when inconsistent status register settings
are found.
diffstat:
sys/arch/mips/mips/locore_mips3.S | 25 ++++++++++++++++++++++++-
1 files changed, 24 insertions(+), 1 deletions(-)
diffs (52 lines):
diff -r 4c4faf0ee0f2 -r cb8df2555a02 sys/arch/mips/mips/locore_mips3.S
--- a/sys/arch/mips/mips/locore_mips3.S Sat Jun 06 21:44:16 2015 +0000
+++ b/sys/arch/mips/mips/locore_mips3.S Sat Jun 06 21:45:40 2015 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: locore_mips3.S,v 1.106 2015/06/04 22:44:43 matt Exp $ */
+/* $NetBSD: locore_mips3.S,v 1.107 2015/06/06 21:45:40 matt Exp $ */
/*
* Copyright (c) 1997 Jonathan Stone (hereinafter referred to as the author)
@@ -174,19 +174,42 @@
LEAF(mips_wait_idle)
mfc0 v0, MIPS_COP_0_STATUS
andi v1, v0, MIPS_SR_INT_IE
+#if __mips >= 32
+ teqi v1, 0
+#else
beqz v1, 1f
nop
+#endif
andi v1, v0, MIPS_INT_MASK
+#if __mips >= 32
+ teqi v1, 0
+#else
bnez v1, 2f
nop
1:
move a1, v0
PANIC("mips_wait_idle: interrupts disabled status=%#x")
+#endif
2: wait
nop
nop
nop
+ mfc0 v0, MIPS_COP_0_STATUS
+ andi v1, v0, MIPS_SR_INT_IE
+#if __mips >= 32
+ teqi v1, 0
+#else
+ beqz v1, 1b
+ nop
+#endif
+ andi v1, v0, MIPS_INT_MASK
+#if __mips >= 32
+ teqi v1, 0
+#else
+ bnez v1, 2b
+ nop
+#endif
jr ra
nop
END(mips_wait_idle)
Home |
Main Index |
Thread Index |
Old Index