Module Name: src
Committed By: matt
Date: Sat Dec 31 07:53:13 UTC 2011
Modified Files:
src/sys/arch/mips/rmi [matt-nb5-mips64]: rmixl_intr.c
Log Message:
XLP8xx and XLP3xx have different IRT layouts.
To generate a diff of this commit:
cvs rdiff -u -r1.1.2.31 -r1.1.2.32 src/sys/arch/mips/rmi/rmixl_intr.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/mips/rmi/rmixl_intr.c
diff -u src/sys/arch/mips/rmi/rmixl_intr.c:1.1.2.31 src/sys/arch/mips/rmi/rmixl_intr.c:1.1.2.32
--- src/sys/arch/mips/rmi/rmixl_intr.c:1.1.2.31 Sat Dec 24 01:57:54 2011
+++ src/sys/arch/mips/rmi/rmixl_intr.c Sat Dec 31 07:53:12 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: rmixl_intr.c,v 1.1.2.31 2011/12/24 01:57:54 matt Exp $ */
+/* $NetBSD: rmixl_intr.c,v 1.1.2.32 2011/12/31 07:53:12 matt Exp $ */
/*-
* Copyright (c) 2007 Ruslan Ermilov and Vsevolod Lobko.
@@ -64,7 +64,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rmixl_intr.c,v 1.1.2.31 2011/12/24 01:57:54 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rmixl_intr.c,v 1.1.2.32 2011/12/31 07:53:12 matt Exp $");
#include "opt_ddb.h"
#include "opt_multiprocessor.h"
@@ -111,9 +111,9 @@ int iointr_debug = IOINTR_DEBUG;
/* XXX this will need to deal with node */
#define RMIXLP_PICREG_READ(off) \
- rmixlp_read_8(RMIXL_PIC_PCITAG, (off))
+ rmixlp_read_8(RMIXLP_PIC_PCITAG, (off))
#define RMIXLP_PICREG_WRITE(off, val) \
- rmixlp_write_8(RMIXL_PIC_PCITAG, (off), (val));
+ rmixlp_write_8(RMIXLP_PIC_PCITAG, (off), (val));
/*
* do not clear these when acking EIRR
@@ -128,6 +128,7 @@ int iointr_debug = IOINTR_DEBUG;
* use the right display string table for the CPU that's running.
*/
+#ifdef MIPS64_XLR
/*
* rmixl_irtnames_xlrxxx
* - use for XLRxxx
@@ -156,7 +157,7 @@ static const char * const rmixl_irtnames
"pic int 20 (gmac3)", /* 20 */
"pic int 21 (xgs0)", /* 21 */
"pic int 22 (xgs1)", /* 22 */
- "pic int 23 (irq23)", /* 23 */
+ "pic int 23 (?)", /* 23 */
"pic int 24 (hyper_fatal)", /* 24 */
"pic int 25 (bridge_aerr)", /* 25 */
"pic int 26 (bridge_berr)", /* 26 */
@@ -166,7 +167,9 @@ static const char * const rmixl_irtnames
"pic int 30 (gpio_fatal)", /* 30 */
"pic int 31 (reserved)", /* 31 */
};
+#endif /* MIPS64_XLR */
+#ifdef MIPS64_XLS
/*
* rmixl_irtnames_xls2xx
* - use for XLS2xx
@@ -187,20 +190,20 @@ static const char * const rmixl_irtnames
"pic int 12 (i2c1)", /* 12 */
"pic int 13 (pcmcia)", /* 13 */
"pic int 14 (gpio_a)", /* 14 */
- "pic int 15 (irq15)", /* 15 */
+ "pic int 15 (?)", /* 15 */
"pic int 16 (bridge_tb)", /* 16 */
"pic int 17 (gmac0)", /* 17 */
"pic int 18 (gmac1)", /* 18 */
"pic int 19 (gmac2)", /* 19 */
"pic int 20 (gmac3)", /* 20 */
- "pic int 21 (irq21)", /* 21 */
- "pic int 22 (irq22)", /* 22 */
+ "pic int 21 (?)", /* 21 */
+ "pic int 22 (?)", /* 22 */
"pic int 23 (pcie_link2)", /* 23 */
"pic int 24 (pcie_link3)", /* 24 */
"pic int 25 (bridge_err)", /* 25 */
"pic int 26 (pcie_link0)", /* 26 */
"pic int 27 (pcie_link1)", /* 27 */
- "pic int 28 (irq28)", /* 28 */
+ "pic int 28 (?)", /* 28 */
"pic int 29 (pcie_err)", /* 29 */
"pic int 30 (gpio_b)", /* 30 */
"pic int 31 (usb)", /* 31 */
@@ -226,20 +229,20 @@ static const char * const rmixl_irtnames
"pic int 12 (i2c1)", /* 12 */
"pic int 13 (pcmcia)", /* 13 */
"pic int 14 (gpio_a)", /* 14 */
- "pic int 15 (irq15)", /* 15 */
+ "pic int 15 (?)", /* 15 */
"pic int 16 (bridge_tb)", /* 16 */
"pic int 17 (gmac0)", /* 17 */
"pic int 18 (gmac1)", /* 18 */
"pic int 19 (gmac2)", /* 19 */
"pic int 20 (gmac3)", /* 20 */
- "pic int 21 (irq21)", /* 21 */
- "pic int 22 (irq22)", /* 22 */
- "pic int 23 (irq23)", /* 23 */
- "pic int 24 (irq24)", /* 24 */
+ "pic int 21 (?)", /* 21 */
+ "pic int 22 (?)", /* 22 */
+ "pic int 23 (?)", /* 23 */
+ "pic int 24 (?)", /* 24 */
"pic int 25 (bridge_err)", /* 25 */
"pic int 26 (pcie_link0)", /* 26 */
"pic int 27 (pcie_link1)", /* 27 */
- "pic int 28 (irq28)", /* 28 */
+ "pic int 28 (?)", /* 28 */
"pic int 29 (pcie_err)", /* 29 */
"pic int 30 (gpio_b)", /* 30 */
"pic int 31 (usb)", /* 31 */
@@ -265,16 +268,16 @@ static const char * const rmixl_irtnames
"pic int 12 (i2c1)", /* 12 */
"pic int 13 (pcmcia)", /* 13 */
"pic int 14 (gpio_a)", /* 14 */
- "pic int 15 (irq15)", /* 15 */
+ "pic int 15 (?)", /* 15 */
"pic int 16 (bridge_tb)", /* 16 */
"pic int 17 (gmac0)", /* 17 */
"pic int 18 (gmac1)", /* 18 */
"pic int 19 (gmac2)", /* 19 */
"pic int 20 (gmac3)", /* 20 */
- "pic int 21 (irq21)", /* 21 */
- "pic int 22 (irq22)", /* 22 */
- "pic int 23 (irq23)", /* 23 */
- "pic int 24 (irq24)", /* 24 */
+ "pic int 21 (?)", /* 21 */
+ "pic int 22 (?)", /* 22 */
+ "pic int 23 (?)", /* 23 */
+ "pic int 24 (?)", /* 24 */
"pic int 25 (bridge_err)", /* 25 */
"pic int 26 (pcie_link0)", /* 26 */
"pic int 27 (pcie_link1)", /* 27 */
@@ -283,12 +286,14 @@ static const char * const rmixl_irtnames
"pic int 30 (gpio_b)", /* 30 */
"pic int 31 (usb)", /* 31 */
};
+#endif /* MIPS64_XLS */
+#ifdef MIPS64_XLP
/*
* rmixl_irtnames_xlp:
* - use for XLP
*/
-static const char * const rmixl_irtnames_xlpxxx[RMIXLP_NIRTS] = {
+static const char * const rmixl_irtnames_xlp8xx[RMIXLP_NIRTS] = {
[ 0] = "pic int 0 (watchdog0)",
[ 1] = "pic int 1 (watchdog1)",
[ 2] = "pic int 2 (watchdogNMI0)",
@@ -333,8 +338,8 @@ static const char * const rmixl_irtnames
[ 41] = "pic int 31 (fmn29)",
[ 42] = "pic int 42 (fmn30)",
[ 43] = "pic int 43 (fmn31)",
- [ 44] = "pic int 44 (message0)",
- [ 45] = "pic int 45 (message1)",
+ [ 44] = "pic int 44 (fmnerr0)",
+ [ 45] = "pic int 45 (fmnerr1)",
[ 46] = "pic int 46 (pcie_msix0)",
[ 47] = "pic int 47 (pcie_msix1)",
[ 48] = "pic int 48 (pcie_msix2)",
@@ -371,38 +376,38 @@ static const char * const rmixl_irtnames
[ 79] = "pic int 79 (pcie_link1)",
[ 80] = "pic int 80 (pcie_link2)",
[ 81] = "pic int 81 (pcie_link3)",
- [ 82] = "pic int 82 (na0)",
- [ 83] = "pic int 83 (na1)",
- [ 84] = "pic int 84 (na2)",
- [ 85] = "pic int 85 (na3)",
- [ 86] = "pic int 86 (na4)",
- [ 87] = "pic int 87 (na5)",
- [ 88] = "pic int 88 (na6)",
- [ 89] = "pic int 89 (na7)",
- [ 90] = "pic int 90 (na8)",
- [ 91] = "pic int 91 (na9)",
- [ 92] = "pic int 92 (na10)",
- [ 93] = "pic int 93 (na11)",
- [ 94] = "pic int 94 (na12)",
- [ 95] = "pic int 95 (na13)",
- [ 96] = "pic int 96 (na14)",
- [ 97] = "pic int 97 (na15)",
- [ 98] = "pic int 98 (na16)",
- [ 99] = "pic int 99 (na17)",
- [100] = "pic int 100 (na18)",
- [101] = "pic int 101 (na19)",
- [102] = "pic int 102 (na20)",
- [103] = "pic int 103 (na21)",
- [104] = "pic int 104 (na22)",
- [105] = "pic int 105 (na23)",
- [106] = "pic int 106 (na24)",
- [107] = "pic int 107 (na25)",
- [108] = "pic int 108 (na26)",
- [109] = "pic int 109 (na27)",
- [110] = "pic int 100 (na28)",
- [111] = "pic int 111 (na29)",
- [112] = "pic int 112 (na30)",
- [113] = "pic int 113 (na31)",
+ [ 82] = "pic int 82 (nae0)",
+ [ 83] = "pic int 83 (nae1)",
+ [ 84] = "pic int 84 (nae2)",
+ [ 85] = "pic int 85 (nae3)",
+ [ 86] = "pic int 86 (nae4)",
+ [ 87] = "pic int 87 (nae5)",
+ [ 88] = "pic int 88 (nae6)",
+ [ 89] = "pic int 89 (nae7)",
+ [ 90] = "pic int 90 (nae8)",
+ [ 91] = "pic int 91 (nae9)",
+ [ 92] = "pic int 92 (nae10)",
+ [ 93] = "pic int 93 (nae11)",
+ [ 94] = "pic int 94 (nae12)",
+ [ 95] = "pic int 95 (nae13)",
+ [ 96] = "pic int 96 (nae14)",
+ [ 97] = "pic int 97 (nae15)",
+ [ 98] = "pic int 98 (nae16)",
+ [ 99] = "pic int 99 (nae17)",
+ [100] = "pic int 100 (nae18)",
+ [101] = "pic int 101 (?)",
+ [102] = "pic int 102 (naecom0)",
+ [103] = "pic int 103 (naecom1)",
+ [104] = "pic int 104 (?)",
+ [105] = "pic int 105 (?)",
+ [106] = "pic int 106 (?)",
+ [107] = "pic int 107 (?)",
+ [108] = "pic int 108 (?)",
+ [109] = "pic int 109 (?)",
+ [110] = "pic int 100 (?)",
+ [111] = "pic int 111 (?)",
+ [112] = "pic int 112 (?)",
+ [113] = "pic int 113 (?)",
[114] = "pic int 114 (poe)",
[115] = "pic int 115 (ehci0)",
[116] = "pic int 116 (ohci0)",
@@ -410,17 +415,17 @@ static const char * const rmixl_irtnames
[118] = "pic int 118 (ehci1)",
[119] = "pic int 119 (ohci2)",
[120] = "pic int 120 (ohci3)",
- [121] = "pic int 121 (data/raid)",
- [122] = "pic int 122 (security)",
- [123] = "pic int 123 (rsa/ecc)",
- [124] = "pic int 124 (compression0)",
- [125] = "pic int 125 (compression1)",
- [126] = "pic int 126 (compression2)",
- [127] = "pic int 127 (compression3)",
- [128] = "pic int 128 (irq128)",
- [129] = "pic int 129 (icici0)",
- [130] = "pic int 130 (icici1)",
- [131] = "pic int 131 (icici2)",
+ [121] = "pic int 121 (dma)",
+ [122] = "pic int 122 (sae)",
+ [123] = "pic int 123 (pke)",
+ [124] = "pic int 124 (cde0)",
+ [125] = "pic int 125 (cde1)",
+ [126] = "pic int 126 (cde2)",
+ [127] = "pic int 127 (cde3)",
+ [128] = "pic int 128 (?)",
+ [129] = "pic int 129 (ici0)",
+ [130] = "pic int 130 (ici1)",
+ [131] = "pic int 131 (ici2)",
[132] = "pic int 132 (kbp)",
[133] = "pic int 133 (uart0)",
[134] = "pic int 134 (uart1)",
@@ -430,11 +435,11 @@ static const char * const rmixl_irtnames
[138] = "pic int 138 (sysmgt1)",
[139] = "pic int 139 (jtag)",
[140] = "pic int 140 (pic)",
- [141] = "pic int 141 (irq141)",
- [142] = "pic int 142 (irq142)",
- [143] = "pic int 143 (irq143)",
- [144] = "pic int 144 (irq144)",
- [145] = "pic int 145 (irq145)",
+ [141] = "pic int 141 (?)",
+ [142] = "pic int 142 (?)",
+ [143] = "pic int 143 (?)",
+ [144] = "pic int 144 (?)",
+ [145] = "pic int 145 (?)",
[146] = "pic int 146 (gpio0)",
[147] = "pic int 147 (gpio1)",
[148] = "pic int 148 (gpio2)",
@@ -450,6 +455,175 @@ static const char * const rmixl_irtnames
[158] = "pic int 158 (dram3_1)",
[159] = "pic int 159 (tracebuf)",
};
+
+/*
+ * rmixl_irtnames_xlp:
+ * - use for XLP
+ */
+static const char * const rmixl_irtnames_xlp3xx[RMIXLP_NIRTS] = {
+ [ 0] = "pic int 0 (watchdog0)",
+ [ 1] = "pic int 1 (watchdog1)",
+ [ 2] = "pic int 2 (watchdogNMI0)",
+ [ 3] = "pic int 3 (watchdogNMI1)",
+ [ 4] = "pic int 4 (timer0)",
+ [ 5] = "pic int 5 (timer1)",
+ [ 6] = "pic int 6 (timer2)",
+ [ 7] = "pic int 7 (timer3)",
+ [ 8] = "pic int 8 (timer4)",
+ [ 9] = "pic int 9 (timer5)",
+ [ 10] = "pic int 10 (timer6)",
+ [ 11] = "pic int 11 (timer7)",
+ [ 12] = "pic int 12 (gpio0)",
+ [ 13] = "pic int 13 (gpio1)",
+ [ 14] = "pic int 14 (gpio2)",
+ [ 15] = "pic int 15 (gpio3)",
+ [ 16] = "pic int 16 (gpio4)",
+ [ 17] = "pic int 17 (gpio5)",
+ [ 18] = "pic int 18 (gpio6)",
+ [ 19] = "pic int 19 (gpio7)",
+ [ 20] = "pic int 20 (gpio8)",
+ [ 21] = "pic int 21 (gpio0)",
+ [ 22] = "pic int 22 (gpio10)",
+ [ 23] = "pic int 23 (gpio11)",
+ [ 24] = "pic int 24 (?)",
+ [ 25] = "pic int 25 (?)",
+ [ 26] = "pic int 26 (?)",
+ [ 27] = "pic int 27 (?)",
+ [ 28] = "pic int 28 (fmn0)",
+ [ 29] = "pic int 29 (fmn1)",
+ [ 30] = "pic int 30 (fmn2)",
+ [ 31] = "pic int 31 (fmn3)",
+ [ 32] = "pic int 22 (fmn4)",
+ [ 33] = "pic int 23 (fmn5)",
+ [ 34] = "pic int 24 (fmn6)",
+ [ 35] = "pic int 25 (fmn7)",
+ [ 36] = "pic int 26 (fmn8)",
+ [ 37] = "pic int 27 (fmn9)",
+ [ 38] = "pic int 28 (fmn10)",
+ [ 39] = "pic int 29 (fmn11)",
+ [ 40] = "pic int 30 (fmn12)",
+ [ 41] = "pic int 31 (fmn13)",
+ [ 42] = "pic int 42 (fmn14)",
+ [ 43] = "pic int 43 (fmn15)",
+ [ 44] = "pic int 44 (fmnerr0)",
+ [ 45] = "pic int 45 (fmnerr1)",
+ [ 46] = "pic int 46 (pcie_msix0)",
+ [ 47] = "pic int 47 (pcie_msix1)",
+ [ 48] = "pic int 48 (pcie_msix2)",
+ [ 49] = "pic int 49 (pcie_msix3)",
+ [ 50] = "pic int 50 (pcie_msix4)",
+ [ 51] = "pic int 51 (pcie_msix5)",
+ [ 52] = "pic int 52 (pcie_msix6)",
+ [ 53] = "pic int 53 (pcie_msix7)",
+ [ 54] = "pic int 54 (pcie_msix8)",
+ [ 55] = "pic int 55 (pcie_msix9)",
+ [ 56] = "pic int 56 (pcie_msix10)",
+ [ 57] = "pic int 57 (pcie_msix11)",
+ [ 58] = "pic int 58 (pcie_msix12)",
+ [ 59] = "pic int 59 (pcie_msix13)",
+ [ 60] = "pic int 60 (pcie_msix14)",
+ [ 61] = "pic int 61 (pcie_msix15)",
+ [ 62] = "pic int 62 (pcie_msix16)",
+ [ 63] = "pic int 63 (pcie_msix17)",
+ [ 64] = "pic int 64 (pcie_msix18)",
+ [ 65] = "pic int 65 (pcie_msix19)",
+ [ 66] = "pic int 66 (pcie_msix20)",
+ [ 67] = "pic int 67 (pcie_msix21)",
+ [ 68] = "pic int 68 (pcie_msix22)",
+ [ 69] = "pic int 69 (pcie_msix23)",
+ [ 70] = "pic int 70 (pcie_msix24)",
+ [ 71] = "pic int 71 (pcie_msix25)",
+ [ 72] = "pic int 72 (pcie_msix26)",
+ [ 73] = "pic int 73 (pcie_msix27)",
+ [ 74] = "pic int 74 (pcie_msix28)",
+ [ 75] = "pic int 75 (pcie_msix29)",
+ [ 76] = "pic int 76 (pcie_msix30)",
+ [ 77] = "pic int 77 (pcie_msix31)",
+ [ 78] = "pic int 78 (pcie_link0)",
+ [ 79] = "pic int 79 (pcie_link1)",
+ [ 80] = "pic int 80 (pcie_link2)",
+ [ 81] = "pic int 81 (pcie_link3)",
+ [ 82] = "pic int 82 (?)",
+ [ 83] = "pic int 83 (?)",
+ [ 84] = "pic int 84 (?)",
+ [ 85] = "pic int 85 (?)",
+ [ 86] = "pic int 86 (?)",
+ [ 87] = "pic int 87 (?)",
+ [ 88] = "pic int 88 (?)",
+ [ 89] = "pic int 89 (?)",
+ [ 90] = "pic int 90 (?)",
+ [ 91] = "pic int 91 (?)",
+ [ 92] = "pic int 92 (?)",
+ [ 93] = "pic int 93 (?)",
+ [ 94] = "pic int 94 (?)",
+ [ 95] = "pic int 95 (?)",
+ [ 96] = "pic int 96 (?)",
+ [ 97] = "pic int 97 (?)",
+ [ 98] = "pic int 98 (nae0)",
+ [ 99] = "pic int 99 (nae1)",
+ [100] = "pic int 100 (nae2)",
+ [101] = "pic int 101 (nae3)",
+ [102] = "pic int 102 (nae4)",
+ [103] = "pic int 103 (nae5)",
+ [104] = "pic int 104 (nae6)",
+ [105] = "pic int 105 (nae7)",
+ [106] = "pic int 106 (nae8)",
+ [107] = "pic int 107 (?)",
+ [108] = "pic int 108 (?)",
+ [109] = "pic int 109 (?)",
+ [110] = "pic int 100 (naecom0)",
+ [111] = "pic int 111 (naecom1)",
+ [112] = "pic int 112 (?)",
+ [113] = "pic int 113 (?)",
+ [114] = "pic int 114 (poe)",
+ [115] = "pic int 115 (ehci0)",
+ [116] = "pic int 116 (ohci0)",
+ [117] = "pic int 117 (ohci1)",
+ [118] = "pic int 118 (ehci1)",
+ [119] = "pic int 119 (ohci2)",
+ [120] = "pic int 120 (ohci3)",
+ [121] = "pic int 121 (dma)",
+ [122] = "pic int 122 (sae)",
+ [123] = "pic int 123 (pke)",
+ [124] = "pic int 124 (?)",
+ [125] = "pic int 125 (?)",
+ [126] = "pic int 126 (?)",
+ [127] = "pic int 127 (?)",
+ [128] = "pic int 128 (?)",
+ [129] = "pic int 129 (?)",
+ [130] = "pic int 130 (?)",
+ [131] = "pic int 131 (?)",
+ [132] = "pic int 132 (?)",
+ [133] = "pic int 133 (uart0)",
+ [134] = "pic int 134 (uart1)",
+ [135] = "pic int 135 (i2c0)",
+ [136] = "pic int 136 (i2c1)",
+ [137] = "pic int 137 (sysmgt0)",
+ [138] = "pic int 138 (sysmgt1)",
+ [139] = "pic int 139 (jtag)",
+ [140] = "pic int 140 (pic)",
+ [141] = "pic int 141 (rxe0)",
+ [142] = "pic int 142 (rxe1)",
+ [143] = "pic int 143 (sata)",
+ [144] = "pic int 144 (srio0)",
+ [145] = "pic int 145 (srio1)",
+ [146] = "pic int 146 (srio2)",
+ [147] = "pic int 147 (srio3)",
+ [148] = "pic int 148 (srio4)",
+ [149] = "pic int 149 (?)",
+ [150] = "pic int 150 (norflash)",
+ [151] = "pic int 151 (nandflash)",
+ [152] = "pic int 152 (spi)",
+ [153] = "pic int 153 (mmc/sd)",
+ [154] = "pic int 154 (mem-io-bridge)",
+ [155] = "pic int 155 (l3)",
+ [156] = "pic int 156 (?)",
+ [157] = "pic int 157 (dram3_0)",
+ [158] = "pic int 158 (dram3_1)",
+ [159] = "pic int 159 (tracebuf)",
+};
+
+#endif /* MIPS64_XLP */
/*
* rmixl_vecnames_common:
* - use for unknown cpu implementation
@@ -592,12 +766,22 @@ evbmips_intr_init(void)
* The number of IRT entries is different for XLP .vs. XLR/XLS.
*/
if (is_xlp_p) {
- rmixl_irtnames = rmixl_irtnames_xlpxxx;
- rmixl_nirts = __arraycount(rmixl_irtnames_xlpxxx);
+#ifdef MIPS64_XLP
+ if (rmixl_xlp_variant >= RMIXLP_3XX) {
+ rmixl_irtnames = rmixl_irtnames_xlp3xx;
+ rmixl_nirts = __arraycount(rmixl_irtnames_xlp3xx);
+ } else {
+ rmixl_irtnames = rmixl_irtnames_xlp8xx;
+ rmixl_nirts = __arraycount(rmixl_irtnames_xlp8xx);
+ }
+#endif
} else if (is_xlr_p) {
+#ifdef MIPS64_XLR
rmixl_irtnames = rmixl_irtnames_xlrxxx;
rmixl_nirts = __arraycount(rmixl_irtnames_xlrxxx);
+#endif
} else if (is_xls_p) {
+#ifdef MIPS64_XLS
switch (MIPS_PRID_IMPL(mips_options.mips_cpu_id)) {
case MIPS_XLS104:
case MIPS_XLS108:
@@ -624,6 +808,7 @@ evbmips_intr_init(void)
rmixl_nirts = __arraycount(rmixl_vecnames_common);
break;
}
+#endif /* MIPS64_XLS */
}
#ifdef DIAGNOSTIC