Sam Ravnborg | c64d752 | 2012-05-19 20:02:45 +0000 | [diff] [blame] | 1 | /* The Sparc trap table, bootloader gives us control at _start. */ |
| 2 | __HEAD |
| 3 | |
| 4 | .globl _start |
| 5 | _start: |
| 6 | |
| 7 | .globl _stext |
| 8 | _stext: |
| 9 | |
| 10 | .globl trapbase |
| 11 | trapbase: |
| 12 | |
| 13 | #ifdef CONFIG_SMP |
| 14 | trapbase_cpu0: |
| 15 | #endif |
| 16 | /* We get control passed to us here at t_zero. */ |
| 17 | t_zero: b gokernel; nop; nop; nop; |
| 18 | t_tflt: SRMMU_TFAULT /* Inst. Access Exception */ |
| 19 | t_bins: TRAP_ENTRY(0x2, bad_instruction) /* Illegal Instruction */ |
| 20 | t_pins: TRAP_ENTRY(0x3, priv_instruction) /* Privileged Instruction */ |
| 21 | t_fpd: TRAP_ENTRY(0x4, fpd_trap_handler) /* Floating Point Disabled */ |
| 22 | t_wovf: WINDOW_SPILL /* Window Overflow */ |
| 23 | t_wunf: WINDOW_FILL /* Window Underflow */ |
| 24 | t_mna: TRAP_ENTRY(0x7, mna_handler) /* Memory Address Not Aligned */ |
| 25 | t_fpe: TRAP_ENTRY(0x8, fpe_trap_handler) /* Floating Point Exception */ |
| 26 | t_dflt: SRMMU_DFAULT /* Data Miss Exception */ |
| 27 | t_tio: TRAP_ENTRY(0xa, do_tag_overflow) /* Tagged Instruction Ovrflw */ |
| 28 | t_wpt: TRAP_ENTRY(0xb, do_watchpoint) /* Watchpoint Detected */ |
| 29 | t_badc: BAD_TRAP(0xc) BAD_TRAP(0xd) BAD_TRAP(0xe) BAD_TRAP(0xf) BAD_TRAP(0x10) |
| 30 | t_irq1: TRAP_ENTRY_INTERRUPT(1) /* IRQ Software/SBUS Level 1 */ |
| 31 | t_irq2: TRAP_ENTRY_INTERRUPT(2) /* IRQ SBUS Level 2 */ |
| 32 | t_irq3: TRAP_ENTRY_INTERRUPT(3) /* IRQ SCSI/DMA/SBUS Level 3 */ |
| 33 | t_irq4: TRAP_ENTRY_INTERRUPT(4) /* IRQ Software Level 4 */ |
| 34 | t_irq5: TRAP_ENTRY_INTERRUPT(5) /* IRQ SBUS/Ethernet Level 5 */ |
| 35 | t_irq6: TRAP_ENTRY_INTERRUPT(6) /* IRQ Software Level 6 */ |
| 36 | t_irq7: TRAP_ENTRY_INTERRUPT(7) /* IRQ Video/SBUS Level 5 */ |
| 37 | t_irq8: TRAP_ENTRY_INTERRUPT(8) /* IRQ SBUS Level 6 */ |
| 38 | t_irq9: TRAP_ENTRY_INTERRUPT(9) /* IRQ SBUS Level 7 */ |
| 39 | t_irq10:TRAP_ENTRY_INTERRUPT(10) /* IRQ Timer #1 (one we use) */ |
| 40 | t_irq11:TRAP_ENTRY_INTERRUPT(11) /* IRQ Floppy Intr. */ |
| 41 | t_irq12:TRAP_ENTRY_INTERRUPT(12) /* IRQ Zilog serial chip */ |
| 42 | t_irq13:TRAP_ENTRY_INTERRUPT(13) /* IRQ Audio Intr. */ |
| 43 | t_irq14:TRAP_ENTRY_INTERRUPT(14) /* IRQ Timer #2 */ |
| 44 | |
| 45 | .globl t_nmi |
| 46 | t_nmi: TRAP_ENTRY(0x1f, linux_trap_ipi15_sun4m) |
| 47 | |
| 48 | t_racc: TRAP_ENTRY(0x20, do_reg_access) /* General Register Access Error */ |
| 49 | t_iacce:BAD_TRAP(0x21) /* Instr Access Error */ |
| 50 | t_bad22:BAD_TRAP(0x22) |
| 51 | BAD_TRAP(0x23) |
| 52 | t_cpdis:TRAP_ENTRY(0x24, do_cp_disabled) /* Co-Processor Disabled */ |
| 53 | t_uflsh:SKIP_TRAP(0x25, unimp_flush) /* Unimplemented FLUSH inst. */ |
| 54 | t_bad26:BAD_TRAP(0x26) BAD_TRAP(0x27) |
| 55 | t_cpexc:TRAP_ENTRY(0x28, do_cp_exception) /* Co-Processor Exception */ |
| 56 | t_dacce:SRMMU_DFAULT /* Data Access Error */ |
| 57 | t_hwdz: TRAP_ENTRY(0x2a, do_hw_divzero) /* Division by zero, you lose... */ |
| 58 | t_dserr:BAD_TRAP(0x2b) /* Data Store Error */ |
| 59 | t_daccm:BAD_TRAP(0x2c) /* Data Access MMU-Miss */ |
| 60 | t_bad2d:BAD_TRAP(0x2d) BAD_TRAP(0x2e) BAD_TRAP(0x2f) BAD_TRAP(0x30) BAD_TRAP(0x31) |
| 61 | t_bad32:BAD_TRAP(0x32) BAD_TRAP(0x33) BAD_TRAP(0x34) BAD_TRAP(0x35) BAD_TRAP(0x36) |
| 62 | t_bad37:BAD_TRAP(0x37) BAD_TRAP(0x38) BAD_TRAP(0x39) BAD_TRAP(0x3a) BAD_TRAP(0x3b) |
| 63 | t_iaccm:BAD_TRAP(0x3c) /* Instr Access MMU-Miss */ |
| 64 | t_bad3d:BAD_TRAP(0x3d) BAD_TRAP(0x3e) BAD_TRAP(0x3f) BAD_TRAP(0x40) BAD_TRAP(0x41) |
| 65 | t_bad42:BAD_TRAP(0x42) BAD_TRAP(0x43) BAD_TRAP(0x44) BAD_TRAP(0x45) BAD_TRAP(0x46) |
| 66 | t_bad47:BAD_TRAP(0x47) BAD_TRAP(0x48) BAD_TRAP(0x49) BAD_TRAP(0x4a) BAD_TRAP(0x4b) |
| 67 | t_bad4c:BAD_TRAP(0x4c) BAD_TRAP(0x4d) BAD_TRAP(0x4e) BAD_TRAP(0x4f) BAD_TRAP(0x50) |
| 68 | t_bad51:BAD_TRAP(0x51) BAD_TRAP(0x52) BAD_TRAP(0x53) BAD_TRAP(0x54) BAD_TRAP(0x55) |
| 69 | t_bad56:BAD_TRAP(0x56) BAD_TRAP(0x57) BAD_TRAP(0x58) BAD_TRAP(0x59) BAD_TRAP(0x5a) |
| 70 | t_bad5b:BAD_TRAP(0x5b) BAD_TRAP(0x5c) BAD_TRAP(0x5d) BAD_TRAP(0x5e) BAD_TRAP(0x5f) |
| 71 | t_bad60:BAD_TRAP(0x60) BAD_TRAP(0x61) BAD_TRAP(0x62) BAD_TRAP(0x63) BAD_TRAP(0x64) |
| 72 | t_bad65:BAD_TRAP(0x65) BAD_TRAP(0x66) BAD_TRAP(0x67) BAD_TRAP(0x68) BAD_TRAP(0x69) |
| 73 | t_bad6a:BAD_TRAP(0x6a) BAD_TRAP(0x6b) BAD_TRAP(0x6c) BAD_TRAP(0x6d) BAD_TRAP(0x6e) |
| 74 | t_bad6f:BAD_TRAP(0x6f) BAD_TRAP(0x70) BAD_TRAP(0x71) BAD_TRAP(0x72) BAD_TRAP(0x73) |
| 75 | t_bad74:BAD_TRAP(0x74) BAD_TRAP(0x75) BAD_TRAP(0x76) BAD_TRAP(0x77) BAD_TRAP(0x78) |
| 76 | t_bad79:BAD_TRAP(0x79) BAD_TRAP(0x7a) BAD_TRAP(0x7b) BAD_TRAP(0x7c) BAD_TRAP(0x7d) |
| 77 | t_bad7e:BAD_TRAP(0x7e) BAD_TRAP(0x7f) |
| 78 | t_bad80:BAD_TRAP(0x80) /* SunOS System Call */ |
| 79 | t_sbkpt:BREAKPOINT_TRAP /* Software Breakpoint/KGDB */ |
| 80 | t_divz: TRAP_ENTRY(0x82, do_hw_divzero) /* Divide by zero trap */ |
| 81 | t_flwin:TRAP_ENTRY(0x83, do_flush_windows) /* Flush Windows Trap */ |
| 82 | t_clwin:BAD_TRAP(0x84) /* Clean Windows Trap */ |
| 83 | t_rchk: BAD_TRAP(0x85) /* Range Check */ |
| 84 | t_funal:BAD_TRAP(0x86) /* Fix Unaligned Access Trap */ |
| 85 | t_iovf: BAD_TRAP(0x87) /* Integer Overflow Trap */ |
| 86 | t_bad88:BAD_TRAP(0x88) /* Slowaris System Call */ |
| 87 | t_bad89:BAD_TRAP(0x89) /* Net-B.S. System Call */ |
| 88 | t_bad8a:BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c) BAD_TRAP(0x8d) BAD_TRAP(0x8e) |
| 89 | t_bad8f:BAD_TRAP(0x8f) |
| 90 | t_linux:LINUX_SYSCALL_TRAP /* Linux System Call */ |
| 91 | t_bad91:BAD_TRAP(0x91) BAD_TRAP(0x92) BAD_TRAP(0x93) BAD_TRAP(0x94) BAD_TRAP(0x95) |
| 92 | t_bad96:BAD_TRAP(0x96) BAD_TRAP(0x97) BAD_TRAP(0x98) BAD_TRAP(0x99) BAD_TRAP(0x9a) |
| 93 | t_bad9b:BAD_TRAP(0x9b) BAD_TRAP(0x9c) BAD_TRAP(0x9d) BAD_TRAP(0x9e) BAD_TRAP(0x9f) |
| 94 | t_getcc:GETCC_TRAP /* Get Condition Codes */ |
| 95 | t_setcc:SETCC_TRAP /* Set Condition Codes */ |
| 96 | t_getpsr:GETPSR_TRAP /* Get PSR Register */ |
| 97 | t_bada3:BAD_TRAP(0xa3) BAD_TRAP(0xa4) BAD_TRAP(0xa5) BAD_TRAP(0xa6) |
| 98 | t_bada7:BAD_TRAP(0xa7) |
| 99 | t_bada8:BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab) |
| 100 | t_badac:BAD_TRAP(0xac) BAD_TRAP(0xad) BAD_TRAP(0xae) BAD_TRAP(0xaf) BAD_TRAP(0xb0) |
| 101 | t_badb1:BAD_TRAP(0xb1) BAD_TRAP(0xb2) BAD_TRAP(0xb3) BAD_TRAP(0xb4) BAD_TRAP(0xb5) |
| 102 | t_badb6:BAD_TRAP(0xb6) BAD_TRAP(0xb7) BAD_TRAP(0xb8) BAD_TRAP(0xb9) BAD_TRAP(0xba) |
| 103 | t_badbb:BAD_TRAP(0xbb) BAD_TRAP(0xbc) BAD_TRAP(0xbd) BAD_TRAP(0xbe) BAD_TRAP(0xbf) |
| 104 | t_badc0:BAD_TRAP(0xc0) BAD_TRAP(0xc1) BAD_TRAP(0xc2) BAD_TRAP(0xc3) BAD_TRAP(0xc4) |
| 105 | t_badc5:BAD_TRAP(0xc5) BAD_TRAP(0xc6) BAD_TRAP(0xc7) BAD_TRAP(0xc8) BAD_TRAP(0xc9) |
| 106 | t_badca:BAD_TRAP(0xca) BAD_TRAP(0xcb) BAD_TRAP(0xcc) BAD_TRAP(0xcd) BAD_TRAP(0xce) |
| 107 | t_badcf:BAD_TRAP(0xcf) BAD_TRAP(0xd0) BAD_TRAP(0xd1) BAD_TRAP(0xd2) BAD_TRAP(0xd3) |
| 108 | t_badd4:BAD_TRAP(0xd4) BAD_TRAP(0xd5) BAD_TRAP(0xd6) BAD_TRAP(0xd7) BAD_TRAP(0xd8) |
| 109 | t_badd9:BAD_TRAP(0xd9) BAD_TRAP(0xda) BAD_TRAP(0xdb) BAD_TRAP(0xdc) BAD_TRAP(0xdd) |
| 110 | t_badde:BAD_TRAP(0xde) BAD_TRAP(0xdf) BAD_TRAP(0xe0) BAD_TRAP(0xe1) BAD_TRAP(0xe2) |
| 111 | t_bade3:BAD_TRAP(0xe3) BAD_TRAP(0xe4) BAD_TRAP(0xe5) BAD_TRAP(0xe6) BAD_TRAP(0xe7) |
| 112 | t_bade8:BAD_TRAP(0xe8) BAD_TRAP(0xe9) BAD_TRAP(0xea) BAD_TRAP(0xeb) BAD_TRAP(0xec) |
| 113 | t_baded:BAD_TRAP(0xed) BAD_TRAP(0xee) BAD_TRAP(0xef) BAD_TRAP(0xf0) BAD_TRAP(0xf1) |
| 114 | t_badf2:BAD_TRAP(0xf2) BAD_TRAP(0xf3) BAD_TRAP(0xf4) BAD_TRAP(0xf5) BAD_TRAP(0xf6) |
| 115 | t_badf7:BAD_TRAP(0xf7) BAD_TRAP(0xf8) BAD_TRAP(0xf9) BAD_TRAP(0xfa) BAD_TRAP(0xfb) |
| 116 | t_badfc:BAD_TRAP(0xfc) |
| 117 | t_kgdb: KGDB_TRAP(0xfd) |
| 118 | dbtrap: BAD_TRAP(0xfe) /* Debugger/PROM breakpoint #1 */ |
| 119 | dbtrap2:BAD_TRAP(0xff) /* Debugger/PROM breakpoint #2 */ |
| 120 | |
| 121 | .globl end_traptable |
| 122 | end_traptable: |
| 123 | |
| 124 | #ifdef CONFIG_SMP |
| 125 | /* Trap tables for the other cpus. */ |
| 126 | .globl trapbase_cpu1, trapbase_cpu2, trapbase_cpu3 |
| 127 | trapbase_cpu1: |
| 128 | BAD_TRAP(0x0) |
| 129 | SRMMU_TFAULT |
| 130 | TRAP_ENTRY(0x2, bad_instruction) |
| 131 | TRAP_ENTRY(0x3, priv_instruction) |
| 132 | TRAP_ENTRY(0x4, fpd_trap_handler) |
| 133 | WINDOW_SPILL |
| 134 | WINDOW_FILL |
| 135 | TRAP_ENTRY(0x7, mna_handler) |
| 136 | TRAP_ENTRY(0x8, fpe_trap_handler) |
| 137 | SRMMU_DFAULT |
| 138 | TRAP_ENTRY(0xa, do_tag_overflow) |
| 139 | TRAP_ENTRY(0xb, do_watchpoint) |
| 140 | BAD_TRAP(0xc) BAD_TRAP(0xd) BAD_TRAP(0xe) BAD_TRAP(0xf) BAD_TRAP(0x10) |
| 141 | TRAP_ENTRY_INTERRUPT(1) TRAP_ENTRY_INTERRUPT(2) |
| 142 | TRAP_ENTRY_INTERRUPT(3) TRAP_ENTRY_INTERRUPT(4) |
| 143 | TRAP_ENTRY_INTERRUPT(5) TRAP_ENTRY_INTERRUPT(6) |
| 144 | TRAP_ENTRY_INTERRUPT(7) TRAP_ENTRY_INTERRUPT(8) |
| 145 | TRAP_ENTRY_INTERRUPT(9) TRAP_ENTRY_INTERRUPT(10) |
| 146 | TRAP_ENTRY_INTERRUPT(11) TRAP_ENTRY_INTERRUPT(12) |
| 147 | TRAP_ENTRY_INTERRUPT(13) TRAP_ENTRY_INTERRUPT(14) |
| 148 | TRAP_ENTRY(0x1f, linux_trap_ipi15_sun4m) |
| 149 | TRAP_ENTRY(0x20, do_reg_access) |
| 150 | BAD_TRAP(0x21) |
| 151 | BAD_TRAP(0x22) |
| 152 | BAD_TRAP(0x23) |
| 153 | TRAP_ENTRY(0x24, do_cp_disabled) |
| 154 | SKIP_TRAP(0x25, unimp_flush) |
| 155 | BAD_TRAP(0x26) |
| 156 | BAD_TRAP(0x27) |
| 157 | TRAP_ENTRY(0x28, do_cp_exception) |
| 158 | SRMMU_DFAULT |
| 159 | TRAP_ENTRY(0x2a, do_hw_divzero) |
| 160 | BAD_TRAP(0x2b) |
| 161 | BAD_TRAP(0x2c) |
| 162 | BAD_TRAP(0x2d) BAD_TRAP(0x2e) BAD_TRAP(0x2f) BAD_TRAP(0x30) BAD_TRAP(0x31) |
| 163 | BAD_TRAP(0x32) BAD_TRAP(0x33) BAD_TRAP(0x34) BAD_TRAP(0x35) BAD_TRAP(0x36) |
| 164 | BAD_TRAP(0x37) BAD_TRAP(0x38) BAD_TRAP(0x39) BAD_TRAP(0x3a) BAD_TRAP(0x3b) |
| 165 | BAD_TRAP(0x3c) BAD_TRAP(0x3d) BAD_TRAP(0x3e) BAD_TRAP(0x3f) BAD_TRAP(0x40) |
| 166 | BAD_TRAP(0x41) BAD_TRAP(0x42) BAD_TRAP(0x43) BAD_TRAP(0x44) BAD_TRAP(0x45) |
| 167 | BAD_TRAP(0x46) BAD_TRAP(0x47) BAD_TRAP(0x48) BAD_TRAP(0x49) BAD_TRAP(0x4a) |
| 168 | BAD_TRAP(0x4b) BAD_TRAP(0x4c) BAD_TRAP(0x4d) BAD_TRAP(0x4e) BAD_TRAP(0x4f) |
| 169 | BAD_TRAP(0x50) |
| 170 | BAD_TRAP(0x51) BAD_TRAP(0x52) BAD_TRAP(0x53) BAD_TRAP(0x54) BAD_TRAP(0x55) |
| 171 | BAD_TRAP(0x56) BAD_TRAP(0x57) BAD_TRAP(0x58) BAD_TRAP(0x59) BAD_TRAP(0x5a) |
| 172 | BAD_TRAP(0x5b) BAD_TRAP(0x5c) BAD_TRAP(0x5d) BAD_TRAP(0x5e) BAD_TRAP(0x5f) |
| 173 | BAD_TRAP(0x60) BAD_TRAP(0x61) BAD_TRAP(0x62) BAD_TRAP(0x63) BAD_TRAP(0x64) |
| 174 | BAD_TRAP(0x65) BAD_TRAP(0x66) BAD_TRAP(0x67) BAD_TRAP(0x68) BAD_TRAP(0x69) |
| 175 | BAD_TRAP(0x6a) BAD_TRAP(0x6b) BAD_TRAP(0x6c) BAD_TRAP(0x6d) BAD_TRAP(0x6e) |
| 176 | BAD_TRAP(0x6f) BAD_TRAP(0x70) BAD_TRAP(0x71) BAD_TRAP(0x72) BAD_TRAP(0x73) |
| 177 | BAD_TRAP(0x74) BAD_TRAP(0x75) BAD_TRAP(0x76) BAD_TRAP(0x77) BAD_TRAP(0x78) |
| 178 | BAD_TRAP(0x79) BAD_TRAP(0x7a) BAD_TRAP(0x7b) BAD_TRAP(0x7c) BAD_TRAP(0x7d) |
| 179 | BAD_TRAP(0x7e) BAD_TRAP(0x7f) |
| 180 | BAD_TRAP(0x80) |
| 181 | BREAKPOINT_TRAP |
| 182 | TRAP_ENTRY(0x82, do_hw_divzero) |
| 183 | TRAP_ENTRY(0x83, do_flush_windows) |
| 184 | BAD_TRAP(0x84) BAD_TRAP(0x85) BAD_TRAP(0x86) |
| 185 | BAD_TRAP(0x87) BAD_TRAP(0x88) BAD_TRAP(0x89) |
| 186 | BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c) |
| 187 | BAD_TRAP(0x8d) BAD_TRAP(0x8e) BAD_TRAP(0x8f) |
| 188 | LINUX_SYSCALL_TRAP BAD_TRAP(0x91) |
| 189 | BAD_TRAP(0x92) BAD_TRAP(0x93) BAD_TRAP(0x94) |
| 190 | BAD_TRAP(0x95) BAD_TRAP(0x96) BAD_TRAP(0x97) BAD_TRAP(0x98) BAD_TRAP(0x99) |
| 191 | BAD_TRAP(0x9a) BAD_TRAP(0x9b) BAD_TRAP(0x9c) BAD_TRAP(0x9d) BAD_TRAP(0x9e) |
| 192 | BAD_TRAP(0x9f) |
| 193 | GETCC_TRAP |
| 194 | SETCC_TRAP |
| 195 | GETPSR_TRAP |
| 196 | BAD_TRAP(0xa3) BAD_TRAP(0xa4) BAD_TRAP(0xa5) BAD_TRAP(0xa6) |
| 197 | BAD_TRAP(0xa7) BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab) |
| 198 | BAD_TRAP(0xac) BAD_TRAP(0xad) BAD_TRAP(0xae) BAD_TRAP(0xaf) BAD_TRAP(0xb0) |
| 199 | BAD_TRAP(0xb1) BAD_TRAP(0xb2) BAD_TRAP(0xb3) BAD_TRAP(0xb4) BAD_TRAP(0xb5) |
| 200 | BAD_TRAP(0xb6) BAD_TRAP(0xb7) BAD_TRAP(0xb8) BAD_TRAP(0xb9) BAD_TRAP(0xba) |
| 201 | BAD_TRAP(0xbb) BAD_TRAP(0xbc) BAD_TRAP(0xbd) BAD_TRAP(0xbe) BAD_TRAP(0xbf) |
| 202 | BAD_TRAP(0xc0) BAD_TRAP(0xc1) BAD_TRAP(0xc2) BAD_TRAP(0xc3) BAD_TRAP(0xc4) |
| 203 | BAD_TRAP(0xc5) BAD_TRAP(0xc6) BAD_TRAP(0xc7) BAD_TRAP(0xc8) BAD_TRAP(0xc9) |
| 204 | BAD_TRAP(0xca) BAD_TRAP(0xcb) BAD_TRAP(0xcc) BAD_TRAP(0xcd) BAD_TRAP(0xce) |
| 205 | BAD_TRAP(0xcf) BAD_TRAP(0xd0) BAD_TRAP(0xd1) BAD_TRAP(0xd2) BAD_TRAP(0xd3) |
| 206 | BAD_TRAP(0xd4) BAD_TRAP(0xd5) BAD_TRAP(0xd6) BAD_TRAP(0xd7) BAD_TRAP(0xd8) |
| 207 | BAD_TRAP(0xd9) BAD_TRAP(0xda) BAD_TRAP(0xdb) BAD_TRAP(0xdc) BAD_TRAP(0xdd) |
| 208 | BAD_TRAP(0xde) BAD_TRAP(0xdf) BAD_TRAP(0xe0) BAD_TRAP(0xe1) BAD_TRAP(0xe2) |
| 209 | BAD_TRAP(0xe3) BAD_TRAP(0xe4) BAD_TRAP(0xe5) BAD_TRAP(0xe6) BAD_TRAP(0xe7) |
| 210 | BAD_TRAP(0xe8) BAD_TRAP(0xe9) BAD_TRAP(0xea) BAD_TRAP(0xeb) BAD_TRAP(0xec) |
| 211 | BAD_TRAP(0xed) BAD_TRAP(0xee) BAD_TRAP(0xef) BAD_TRAP(0xf0) BAD_TRAP(0xf1) |
| 212 | BAD_TRAP(0xf2) BAD_TRAP(0xf3) BAD_TRAP(0xf4) BAD_TRAP(0xf5) BAD_TRAP(0xf6) |
| 213 | BAD_TRAP(0xf7) BAD_TRAP(0xf8) BAD_TRAP(0xf9) BAD_TRAP(0xfa) BAD_TRAP(0xfb) |
| 214 | BAD_TRAP(0xfc) |
| 215 | KGDB_TRAP(0xfd) |
| 216 | BAD_TRAP(0xfe) |
| 217 | BAD_TRAP(0xff) |
| 218 | |
| 219 | trapbase_cpu2: |
| 220 | BAD_TRAP(0x0) |
| 221 | SRMMU_TFAULT |
| 222 | TRAP_ENTRY(0x2, bad_instruction) |
| 223 | TRAP_ENTRY(0x3, priv_instruction) |
| 224 | TRAP_ENTRY(0x4, fpd_trap_handler) |
| 225 | WINDOW_SPILL |
| 226 | WINDOW_FILL |
| 227 | TRAP_ENTRY(0x7, mna_handler) |
| 228 | TRAP_ENTRY(0x8, fpe_trap_handler) |
| 229 | SRMMU_DFAULT |
| 230 | TRAP_ENTRY(0xa, do_tag_overflow) |
| 231 | TRAP_ENTRY(0xb, do_watchpoint) |
| 232 | BAD_TRAP(0xc) BAD_TRAP(0xd) BAD_TRAP(0xe) BAD_TRAP(0xf) BAD_TRAP(0x10) |
| 233 | TRAP_ENTRY_INTERRUPT(1) |
| 234 | TRAP_ENTRY_INTERRUPT(2) |
| 235 | TRAP_ENTRY_INTERRUPT(3) |
| 236 | TRAP_ENTRY_INTERRUPT(4) |
| 237 | TRAP_ENTRY_INTERRUPT(5) |
| 238 | TRAP_ENTRY_INTERRUPT(6) |
| 239 | TRAP_ENTRY_INTERRUPT(7) |
| 240 | TRAP_ENTRY_INTERRUPT(8) |
| 241 | TRAP_ENTRY_INTERRUPT(9) |
| 242 | TRAP_ENTRY_INTERRUPT(10) |
| 243 | TRAP_ENTRY_INTERRUPT(11) |
| 244 | TRAP_ENTRY_INTERRUPT(12) |
| 245 | TRAP_ENTRY_INTERRUPT(13) |
| 246 | TRAP_ENTRY_INTERRUPT(14) |
| 247 | TRAP_ENTRY(0x1f, linux_trap_ipi15_sun4m) |
| 248 | TRAP_ENTRY(0x20, do_reg_access) |
| 249 | BAD_TRAP(0x21) |
| 250 | BAD_TRAP(0x22) |
| 251 | BAD_TRAP(0x23) |
| 252 | TRAP_ENTRY(0x24, do_cp_disabled) |
| 253 | SKIP_TRAP(0x25, unimp_flush) |
| 254 | BAD_TRAP(0x26) |
| 255 | BAD_TRAP(0x27) |
| 256 | TRAP_ENTRY(0x28, do_cp_exception) |
| 257 | SRMMU_DFAULT |
| 258 | TRAP_ENTRY(0x2a, do_hw_divzero) |
| 259 | BAD_TRAP(0x2b) |
| 260 | BAD_TRAP(0x2c) |
| 261 | BAD_TRAP(0x2d) BAD_TRAP(0x2e) BAD_TRAP(0x2f) BAD_TRAP(0x30) BAD_TRAP(0x31) |
| 262 | BAD_TRAP(0x32) BAD_TRAP(0x33) BAD_TRAP(0x34) BAD_TRAP(0x35) BAD_TRAP(0x36) |
| 263 | BAD_TRAP(0x37) BAD_TRAP(0x38) BAD_TRAP(0x39) BAD_TRAP(0x3a) BAD_TRAP(0x3b) |
| 264 | BAD_TRAP(0x3c) BAD_TRAP(0x3d) BAD_TRAP(0x3e) BAD_TRAP(0x3f) BAD_TRAP(0x40) |
| 265 | BAD_TRAP(0x41) BAD_TRAP(0x42) BAD_TRAP(0x43) BAD_TRAP(0x44) BAD_TRAP(0x45) |
| 266 | BAD_TRAP(0x46) BAD_TRAP(0x47) BAD_TRAP(0x48) BAD_TRAP(0x49) BAD_TRAP(0x4a) |
| 267 | BAD_TRAP(0x4b) BAD_TRAP(0x4c) BAD_TRAP(0x4d) BAD_TRAP(0x4e) BAD_TRAP(0x4f) |
| 268 | BAD_TRAP(0x50) |
| 269 | BAD_TRAP(0x51) BAD_TRAP(0x52) BAD_TRAP(0x53) BAD_TRAP(0x54) BAD_TRAP(0x55) |
| 270 | BAD_TRAP(0x56) BAD_TRAP(0x57) BAD_TRAP(0x58) BAD_TRAP(0x59) BAD_TRAP(0x5a) |
| 271 | BAD_TRAP(0x5b) BAD_TRAP(0x5c) BAD_TRAP(0x5d) BAD_TRAP(0x5e) BAD_TRAP(0x5f) |
| 272 | BAD_TRAP(0x60) BAD_TRAP(0x61) BAD_TRAP(0x62) BAD_TRAP(0x63) BAD_TRAP(0x64) |
| 273 | BAD_TRAP(0x65) BAD_TRAP(0x66) BAD_TRAP(0x67) BAD_TRAP(0x68) BAD_TRAP(0x69) |
| 274 | BAD_TRAP(0x6a) BAD_TRAP(0x6b) BAD_TRAP(0x6c) BAD_TRAP(0x6d) BAD_TRAP(0x6e) |
| 275 | BAD_TRAP(0x6f) BAD_TRAP(0x70) BAD_TRAP(0x71) BAD_TRAP(0x72) BAD_TRAP(0x73) |
| 276 | BAD_TRAP(0x74) BAD_TRAP(0x75) BAD_TRAP(0x76) BAD_TRAP(0x77) BAD_TRAP(0x78) |
| 277 | BAD_TRAP(0x79) BAD_TRAP(0x7a) BAD_TRAP(0x7b) BAD_TRAP(0x7c) BAD_TRAP(0x7d) |
| 278 | BAD_TRAP(0x7e) BAD_TRAP(0x7f) |
| 279 | BAD_TRAP(0x80) |
| 280 | BREAKPOINT_TRAP |
| 281 | TRAP_ENTRY(0x82, do_hw_divzero) |
| 282 | TRAP_ENTRY(0x83, do_flush_windows) |
| 283 | BAD_TRAP(0x84) |
| 284 | BAD_TRAP(0x85) |
| 285 | BAD_TRAP(0x86) BAD_TRAP(0x87) BAD_TRAP(0x88) |
| 286 | BAD_TRAP(0x89) BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c) |
| 287 | BAD_TRAP(0x8d) BAD_TRAP(0x8e) BAD_TRAP(0x8f) |
| 288 | LINUX_SYSCALL_TRAP BAD_TRAP(0x91) |
| 289 | BAD_TRAP(0x92) BAD_TRAP(0x93) BAD_TRAP(0x94) |
| 290 | BAD_TRAP(0x95) BAD_TRAP(0x96) BAD_TRAP(0x97) BAD_TRAP(0x98) BAD_TRAP(0x99) |
| 291 | BAD_TRAP(0x9a) BAD_TRAP(0x9b) BAD_TRAP(0x9c) BAD_TRAP(0x9d) BAD_TRAP(0x9e) |
| 292 | BAD_TRAP(0x9f) |
| 293 | GETCC_TRAP |
| 294 | SETCC_TRAP |
| 295 | GETPSR_TRAP |
| 296 | BAD_TRAP(0xa3) BAD_TRAP(0xa4) BAD_TRAP(0xa5) BAD_TRAP(0xa6) |
| 297 | BAD_TRAP(0xa7) BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab) |
| 298 | BAD_TRAP(0xac) BAD_TRAP(0xad) BAD_TRAP(0xae) BAD_TRAP(0xaf) BAD_TRAP(0xb0) |
| 299 | BAD_TRAP(0xb1) BAD_TRAP(0xb2) BAD_TRAP(0xb3) BAD_TRAP(0xb4) BAD_TRAP(0xb5) |
| 300 | BAD_TRAP(0xb6) BAD_TRAP(0xb7) BAD_TRAP(0xb8) BAD_TRAP(0xb9) BAD_TRAP(0xba) |
| 301 | BAD_TRAP(0xbb) BAD_TRAP(0xbc) BAD_TRAP(0xbd) BAD_TRAP(0xbe) BAD_TRAP(0xbf) |
| 302 | BAD_TRAP(0xc0) BAD_TRAP(0xc1) BAD_TRAP(0xc2) BAD_TRAP(0xc3) BAD_TRAP(0xc4) |
| 303 | BAD_TRAP(0xc5) BAD_TRAP(0xc6) BAD_TRAP(0xc7) BAD_TRAP(0xc8) BAD_TRAP(0xc9) |
| 304 | BAD_TRAP(0xca) BAD_TRAP(0xcb) BAD_TRAP(0xcc) BAD_TRAP(0xcd) BAD_TRAP(0xce) |
| 305 | BAD_TRAP(0xcf) BAD_TRAP(0xd0) BAD_TRAP(0xd1) BAD_TRAP(0xd2) BAD_TRAP(0xd3) |
| 306 | BAD_TRAP(0xd4) BAD_TRAP(0xd5) BAD_TRAP(0xd6) BAD_TRAP(0xd7) BAD_TRAP(0xd8) |
| 307 | BAD_TRAP(0xd9) BAD_TRAP(0xda) BAD_TRAP(0xdb) BAD_TRAP(0xdc) BAD_TRAP(0xdd) |
| 308 | BAD_TRAP(0xde) BAD_TRAP(0xdf) BAD_TRAP(0xe0) BAD_TRAP(0xe1) BAD_TRAP(0xe2) |
| 309 | BAD_TRAP(0xe3) BAD_TRAP(0xe4) BAD_TRAP(0xe5) BAD_TRAP(0xe6) BAD_TRAP(0xe7) |
| 310 | BAD_TRAP(0xe8) BAD_TRAP(0xe9) BAD_TRAP(0xea) BAD_TRAP(0xeb) BAD_TRAP(0xec) |
| 311 | BAD_TRAP(0xed) BAD_TRAP(0xee) BAD_TRAP(0xef) BAD_TRAP(0xf0) BAD_TRAP(0xf1) |
| 312 | BAD_TRAP(0xf2) BAD_TRAP(0xf3) BAD_TRAP(0xf4) BAD_TRAP(0xf5) BAD_TRAP(0xf6) |
| 313 | BAD_TRAP(0xf7) BAD_TRAP(0xf8) BAD_TRAP(0xf9) BAD_TRAP(0xfa) BAD_TRAP(0xfb) |
| 314 | BAD_TRAP(0xfc) |
| 315 | KGDB_TRAP(0xfd) |
| 316 | BAD_TRAP(0xfe) |
| 317 | BAD_TRAP(0xff) |
| 318 | |
| 319 | trapbase_cpu3: |
| 320 | BAD_TRAP(0x0) |
| 321 | SRMMU_TFAULT |
| 322 | TRAP_ENTRY(0x2, bad_instruction) |
| 323 | TRAP_ENTRY(0x3, priv_instruction) |
| 324 | TRAP_ENTRY(0x4, fpd_trap_handler) |
| 325 | WINDOW_SPILL |
| 326 | WINDOW_FILL |
| 327 | TRAP_ENTRY(0x7, mna_handler) |
| 328 | TRAP_ENTRY(0x8, fpe_trap_handler) |
| 329 | SRMMU_DFAULT |
| 330 | TRAP_ENTRY(0xa, do_tag_overflow) |
| 331 | TRAP_ENTRY(0xb, do_watchpoint) |
| 332 | BAD_TRAP(0xc) BAD_TRAP(0xd) BAD_TRAP(0xe) BAD_TRAP(0xf) BAD_TRAP(0x10) |
| 333 | TRAP_ENTRY_INTERRUPT(1) |
| 334 | TRAP_ENTRY_INTERRUPT(2) |
| 335 | TRAP_ENTRY_INTERRUPT(3) |
| 336 | TRAP_ENTRY_INTERRUPT(4) |
| 337 | TRAP_ENTRY_INTERRUPT(5) |
| 338 | TRAP_ENTRY_INTERRUPT(6) |
| 339 | TRAP_ENTRY_INTERRUPT(7) |
| 340 | TRAP_ENTRY_INTERRUPT(8) |
| 341 | TRAP_ENTRY_INTERRUPT(9) |
| 342 | TRAP_ENTRY_INTERRUPT(10) |
| 343 | TRAP_ENTRY_INTERRUPT(11) |
| 344 | TRAP_ENTRY_INTERRUPT(12) |
| 345 | TRAP_ENTRY_INTERRUPT(13) |
| 346 | TRAP_ENTRY_INTERRUPT(14) |
| 347 | TRAP_ENTRY(0x1f, linux_trap_ipi15_sun4m) |
| 348 | TRAP_ENTRY(0x20, do_reg_access) |
| 349 | BAD_TRAP(0x21) |
| 350 | BAD_TRAP(0x22) |
| 351 | BAD_TRAP(0x23) |
| 352 | TRAP_ENTRY(0x24, do_cp_disabled) |
| 353 | SKIP_TRAP(0x25, unimp_flush) |
| 354 | BAD_TRAP(0x26) |
| 355 | BAD_TRAP(0x27) |
| 356 | TRAP_ENTRY(0x28, do_cp_exception) |
| 357 | SRMMU_DFAULT |
| 358 | TRAP_ENTRY(0x2a, do_hw_divzero) |
| 359 | BAD_TRAP(0x2b) BAD_TRAP(0x2c) |
| 360 | BAD_TRAP(0x2d) BAD_TRAP(0x2e) BAD_TRAP(0x2f) BAD_TRAP(0x30) BAD_TRAP(0x31) |
| 361 | BAD_TRAP(0x32) BAD_TRAP(0x33) BAD_TRAP(0x34) BAD_TRAP(0x35) BAD_TRAP(0x36) |
| 362 | BAD_TRAP(0x37) BAD_TRAP(0x38) BAD_TRAP(0x39) BAD_TRAP(0x3a) BAD_TRAP(0x3b) |
| 363 | BAD_TRAP(0x3c) BAD_TRAP(0x3d) BAD_TRAP(0x3e) BAD_TRAP(0x3f) BAD_TRAP(0x40) |
| 364 | BAD_TRAP(0x41) BAD_TRAP(0x42) BAD_TRAP(0x43) BAD_TRAP(0x44) BAD_TRAP(0x45) |
| 365 | BAD_TRAP(0x46) BAD_TRAP(0x47) BAD_TRAP(0x48) BAD_TRAP(0x49) BAD_TRAP(0x4a) |
| 366 | BAD_TRAP(0x4b) BAD_TRAP(0x4c) BAD_TRAP(0x4d) BAD_TRAP(0x4e) BAD_TRAP(0x4f) |
| 367 | BAD_TRAP(0x50) |
| 368 | BAD_TRAP(0x51) BAD_TRAP(0x52) BAD_TRAP(0x53) BAD_TRAP(0x54) BAD_TRAP(0x55) |
| 369 | BAD_TRAP(0x56) BAD_TRAP(0x57) BAD_TRAP(0x58) BAD_TRAP(0x59) BAD_TRAP(0x5a) |
| 370 | BAD_TRAP(0x5b) BAD_TRAP(0x5c) BAD_TRAP(0x5d) BAD_TRAP(0x5e) BAD_TRAP(0x5f) |
| 371 | BAD_TRAP(0x60) BAD_TRAP(0x61) BAD_TRAP(0x62) BAD_TRAP(0x63) BAD_TRAP(0x64) |
| 372 | BAD_TRAP(0x65) BAD_TRAP(0x66) BAD_TRAP(0x67) BAD_TRAP(0x68) BAD_TRAP(0x69) |
| 373 | BAD_TRAP(0x6a) BAD_TRAP(0x6b) BAD_TRAP(0x6c) BAD_TRAP(0x6d) BAD_TRAP(0x6e) |
| 374 | BAD_TRAP(0x6f) BAD_TRAP(0x70) BAD_TRAP(0x71) BAD_TRAP(0x72) BAD_TRAP(0x73) |
| 375 | BAD_TRAP(0x74) BAD_TRAP(0x75) BAD_TRAP(0x76) BAD_TRAP(0x77) BAD_TRAP(0x78) |
| 376 | BAD_TRAP(0x79) BAD_TRAP(0x7a) BAD_TRAP(0x7b) BAD_TRAP(0x7c) BAD_TRAP(0x7d) |
| 377 | BAD_TRAP(0x7e) BAD_TRAP(0x7f) |
| 378 | BAD_TRAP(0x80) |
| 379 | BREAKPOINT_TRAP |
| 380 | TRAP_ENTRY(0x82, do_hw_divzero) |
| 381 | TRAP_ENTRY(0x83, do_flush_windows) |
| 382 | BAD_TRAP(0x84) BAD_TRAP(0x85) |
| 383 | BAD_TRAP(0x86) BAD_TRAP(0x87) BAD_TRAP(0x88) |
| 384 | BAD_TRAP(0x89) BAD_TRAP(0x8a) BAD_TRAP(0x8b) BAD_TRAP(0x8c) |
| 385 | BAD_TRAP(0x8d) BAD_TRAP(0x8e) BAD_TRAP(0x8f) |
| 386 | LINUX_SYSCALL_TRAP |
| 387 | BAD_TRAP(0x91) BAD_TRAP(0x92) BAD_TRAP(0x93) BAD_TRAP(0x94) |
| 388 | BAD_TRAP(0x95) BAD_TRAP(0x96) BAD_TRAP(0x97) BAD_TRAP(0x98) BAD_TRAP(0x99) |
| 389 | BAD_TRAP(0x9a) BAD_TRAP(0x9b) BAD_TRAP(0x9c) BAD_TRAP(0x9d) BAD_TRAP(0x9e) |
| 390 | BAD_TRAP(0x9f) |
| 391 | GETCC_TRAP |
| 392 | SETCC_TRAP |
| 393 | GETPSR_TRAP |
| 394 | BAD_TRAP(0xa3) BAD_TRAP(0xa4) BAD_TRAP(0xa5) BAD_TRAP(0xa6) |
| 395 | BAD_TRAP(0xa7) BAD_TRAP(0xa8) BAD_TRAP(0xa9) BAD_TRAP(0xaa) BAD_TRAP(0xab) |
| 396 | BAD_TRAP(0xac) BAD_TRAP(0xad) BAD_TRAP(0xae) BAD_TRAP(0xaf) BAD_TRAP(0xb0) |
| 397 | BAD_TRAP(0xb1) BAD_TRAP(0xb2) BAD_TRAP(0xb3) BAD_TRAP(0xb4) BAD_TRAP(0xb5) |
| 398 | BAD_TRAP(0xb6) BAD_TRAP(0xb7) BAD_TRAP(0xb8) BAD_TRAP(0xb9) BAD_TRAP(0xba) |
| 399 | BAD_TRAP(0xbb) BAD_TRAP(0xbc) BAD_TRAP(0xbd) BAD_TRAP(0xbe) BAD_TRAP(0xbf) |
| 400 | BAD_TRAP(0xc0) BAD_TRAP(0xc1) BAD_TRAP(0xc2) BAD_TRAP(0xc3) BAD_TRAP(0xc4) |
| 401 | BAD_TRAP(0xc5) BAD_TRAP(0xc6) BAD_TRAP(0xc7) BAD_TRAP(0xc8) BAD_TRAP(0xc9) |
| 402 | BAD_TRAP(0xca) BAD_TRAP(0xcb) BAD_TRAP(0xcc) BAD_TRAP(0xcd) BAD_TRAP(0xce) |
| 403 | BAD_TRAP(0xcf) BAD_TRAP(0xd0) BAD_TRAP(0xd1) BAD_TRAP(0xd2) BAD_TRAP(0xd3) |
| 404 | BAD_TRAP(0xd4) BAD_TRAP(0xd5) BAD_TRAP(0xd6) BAD_TRAP(0xd7) BAD_TRAP(0xd8) |
| 405 | BAD_TRAP(0xd9) BAD_TRAP(0xda) BAD_TRAP(0xdb) BAD_TRAP(0xdc) BAD_TRAP(0xdd) |
| 406 | BAD_TRAP(0xde) BAD_TRAP(0xdf) BAD_TRAP(0xe0) BAD_TRAP(0xe1) BAD_TRAP(0xe2) |
| 407 | BAD_TRAP(0xe3) BAD_TRAP(0xe4) BAD_TRAP(0xe5) BAD_TRAP(0xe6) BAD_TRAP(0xe7) |
| 408 | BAD_TRAP(0xe8) BAD_TRAP(0xe9) BAD_TRAP(0xea) BAD_TRAP(0xeb) BAD_TRAP(0xec) |
| 409 | BAD_TRAP(0xed) BAD_TRAP(0xee) BAD_TRAP(0xef) BAD_TRAP(0xf0) BAD_TRAP(0xf1) |
| 410 | BAD_TRAP(0xf2) BAD_TRAP(0xf3) BAD_TRAP(0xf4) BAD_TRAP(0xf5) BAD_TRAP(0xf6) |
| 411 | BAD_TRAP(0xf7) BAD_TRAP(0xf8) BAD_TRAP(0xf9) BAD_TRAP(0xfa) BAD_TRAP(0xfb) |
| 412 | BAD_TRAP(0xfc) |
| 413 | KGDB_TRAP(0xfd) |
| 414 | BAD_TRAP(0xfe) |
| 415 | BAD_TRAP(0xff) |
| 416 | |
| 417 | #endif |