Пользовательский обработчик исключений с плавающей запятой MARS MIPS не работает - обработчик не работает - PullRequest
1 голос
/ 01 мая 2019

Я пытаюсь вызвать исключения с плавающей точкой (деление на ноль, нечетный регистр и т. Д.) И обработать их в пользовательских обработчиках.Если я включу обработчики и войду в код ядра, (причина) и (epc) будут 0x00000000.Если я не включаю обработчик, исключение корректно идентифицируется, но я не могу войти в ядро.

Перепробовал все комбинации, о которых мог подумать, плюс многочасовой поиск, но почти ничего не нашел в обработке плавающегоТочечные исключения в MARS.Не так уж много для MIPS.

.include "exceptions-s.asm"

    .data :
Pi : .double 3.141592653589793238462643383279502884
    .globl main
    .text
main :
    ldc1 $f5, Pi

Без пользовательского обработчика: «строка 18: исключение времени выполнения в 0x00400004: первый регистр должен быть четным», но не может войти в код ядра.

С пользовательским обработчиком (custom) и (epc) - 0x00000000.Может войти в ядро, но результаты бесполезны.

...