diff --git a/cMIPS/include/handlers.s b/cMIPS/include/handlers.s index 60ce4e2e0afb3698c232e12a78337b3b291b4cb7..01fadb9f668d2beb9f73aa59024b6071305ea242 100644 --- a/cMIPS/include/handlers.s +++ b/cMIPS/include/handlers.s @@ -213,6 +213,7 @@ cmips_delay: # _kmsg_saves[0]=$a0, [1]=$a1, [2]=$a2, [3]=$ra # .text + .align 2 .set noreorder .set noat .global cmips_kmsg @@ -227,7 +228,7 @@ cmips_kmsg: sw $a2, 2*4($k0) lui $a1, %hi(_kmsg_list) - ori $a1, $a1, %hi(_kmsg_list) + ori $a1, $a1, %lo(_kmsg_list) sll $k1, $k1, 2 # adjust index onto table addu $a1, $a1, $k1 @@ -250,10 +251,12 @@ k_for: lbu $a0, 0($a1) .equ kmsg_interr,0 .equ kmsg_excep,1 .data + .align 2 .global _kmsg_list -_kmsg_list: .word _kmsg_interr,_kmsg_excep - _kmsg_interr: .asciiz "\n\tinterrupt\n\n" _kmsg_excep: .asciiz "\n\texceptioninterrupt\n\n" + +_kmsg_list: .word _kmsg_interr,_kmsg_excep + #----------------------------------------------------------------