Пользовательская инструкция в RISC-V, которая обращается к неоперандным регистрам?Также доступ к памяти? - PullRequest
2 голосов
/ 02 апреля 2019

Я пытаюсь создать пользовательскую инструкцию в RISC-V, используя инструкцию по этой ссылке https://nitish2112.github.io/post/adding-instruction-riscv/. Однако я не смог выяснить, как получить доступ к регистрам, которые не указаны операндами (которые это не RD, RS1, RS2). Я планировал создать инструкцию типа «U» (например, lui или auipc), в которой 20-битное непосредственное значение будет иметь непосредственное значение, соответствующее регистрам, которые я хочу использовать (я планирую, чтобы каждый бит в непосредственном значении указывал, действительно ли регистр, соответствующий этому биту, является операндом).

Также мне было интересно получить доступ к данным, которые не являются просто 8-байтовыми. То есть я хочу создать инструкцию, в которой указанный регистр является базой массива из 8 байтов. В качестве альтернативы мне было бы интересно, если бы был способ сохранить несколько 8 байтов в стек (используя одну инструкцию).

Я пытаюсь реализовать это в симуляторе gem5 (в файле arch / riscv / decoder.isa). Я знаю, как объявить инструкцию в цепочке инструментов, но мне трудно определить ее в симуляторе.

...