Coder Social home page Coder Social logo

mavis's People

Contributors

bdutro-sv avatar david-murrell avatar dbmurrell avatar kathlenehurt-sifive avatar kathlenemagnus avatar klingaard avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

mavis's Issues

Support Overriding the Decoding of "Optional" Instructions

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?

Do you have plan to support RV32 set?

I found there is only rv64 isa set in json folder. I meet some rv32 instructions (c.jal) and it is fail to decode.
Do you have any plan to support rv32?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.