You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is a new RISC-V extension being proposed called Zimop which supports "may-be-opertions". The proposed instructions are like NOPs but are allowed to be redefined by later extensions. See "Zimop" May-Be-Operations Extension, Version 0.1
I'd like to discuss the best way to support this extension in Mavis, since I am still learning how the internals of Mavis work.
I set up a test to see what would happen if two instructions were defined with the same stencil (where test is a redefinition of a Zimop instruction) and I get this warning:
ALREADY A LEAF for stencil: 0xc5c04073, 'test' will alias to IFactory('mop.r.3'), stencil = 0xc5c04073
This could work if mop.r.3 was an alias to test instead of the other way around since test is a redefinition of mop.r.3. I could force this behavior by making sure all "optional" instruction factories are added to the DTable last.
Another option would be to replace the Factory (leaf node) for mop.r.3 in the DTable with the Factory for test. To support this, I would need to add a member to the Factory class to mark whether it is allowed to be overridden.
@david-murrell do you have a suggestion on which direction I should go? Or a better idea on how to support this new extension?
The text was updated successfully, but these errors were encountered:
There is a new RISC-V extension being proposed called Zimop which supports "may-be-opertions". The proposed instructions are like NOPs but are allowed to be redefined by later extensions. See "Zimop" May-Be-Operations Extension, Version 0.1
I'd like to discuss the best way to support this extension in Mavis, since I am still learning how the internals of Mavis work.
I set up a test to see what would happen if two instructions were defined with the same stencil (where
test
is a redefinition of a Zimop instruction) and I get this warning:This could work if
mop.r.3
was an alias totest
instead of the other way around sincetest
is a redefinition ofmop.r.3
. I could force this behavior by making sure all "optional" instruction factories are added to the DTable last.Another option would be to replace the Factory (leaf node) for
mop.r.3
in the DTable with the Factory fortest
. To support this, I would need to add a member to the Factory class to mark whether it is allowed to be overridden.@david-murrell do you have a suggestion on which direction I should go? Or a better idea on how to support this new extension?
The text was updated successfully, but these errors were encountered: