Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make ISA definitions compile-time defined. #315

Merged
merged 102 commits into from
Nov 9, 2023

Commits on Nov 9, 2023

  1. Redefine instruction classes with templates

    They have also been moved to the ISA library.
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    ad56fea View commit details
    Browse the repository at this point in the history
  2. Move over existing comments

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    4856a56 View commit details
    Browse the repository at this point in the history
  3. Add RISC-V opcode type

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    0894a78 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    fae4cd4 View commit details
    Browse the repository at this point in the history
  5. Reimplement AddI instruction as a type

    Also fixed compiler errors.
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    d0ca4d3 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    848b8f3 View commit details
    Browse the repository at this point in the history
  7. Run clang-format

    Turns out QtCreator was set to only format *.hpp headers instead of *.h
    :P
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    7dd9e5a View commit details
    Browse the repository at this point in the history
  8. Add constructor for RVI ISA

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    a461e8c View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    e5b3773 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    00ce3d9 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    9caddb8 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    2f8accf View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    d452439 View commit details
    Browse the repository at this point in the history
  14. Fix some assembler errors

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    0d06b64 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    48b1bc3 View commit details
    Browse the repository at this point in the history
  16. Rewriting the ISAInterface

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    2645037 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    ce34a2f View commit details
    Browse the repository at this point in the history
  18. Finished initial templates for ISA/Assembler libraries

    This commit finally gets everything to actually build! Though it does
    sigfault on startup when it fails to disassemble anything. Next up is
    actually implementing the assembler functions...
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    f257805 View commit details
    Browse the repository at this point in the history
  19. Add PseudoLoad instructions

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    90a8adc View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    48d76ab View commit details
    Browse the repository at this point in the history
  21. Use base classes for BitRange and OpPart

    Also change static methods to be capitalized in instruction.h
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    304c810 View commit details
    Browse the repository at this point in the history
  22. Go back to virtual function-based ISAInfoBase implementation

    I tried to get all the ISA info to be implemented in static functions so
    they can be called from anywhere, but it ended up not working well. When
    the ISA needs extensions to be defined at compile-time, then all the
    possible combinations of extensions would also need to be defined at
    compile-time. This proved to be too inconvenient, so the extensions are
    defined as a runtime vector instead.
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    2703cdb View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    5898946 View commit details
    Browse the repository at this point in the history
  24. Fix instruction field assembly functions

    They were using the wrong token index :)
    
    Also flipped an invalid boolean expression
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    bea443e View commit details
    Browse the repository at this point in the history
  25. Remove unused code and files

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    981f132 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    cb4d3cb View commit details
    Browse the repository at this point in the history
  27. Add back some error checking

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    7d06ccb View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    fff7ea4 View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    2cd850d View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    ce91fd9 View commit details
    Browse the repository at this point in the history
  31. Create template functions for easily enabling instructions

    Also changed RISC-V ExtI from a struct to a namespace. Needed to link
    the assembler lib to the ISA lib to fix missing function definitions.
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    23a694d View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    b14681a View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    1fdf117 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    84d64d3 View commit details
    Browse the repository at this point in the history
  35. Configuration menu
    Copy the full SHA
    71b834f View commit details
    Browse the repository at this point in the history
  36. Add static assertion to ensure BitRanges do not overlap

    Needs another assertion to ensure opcodes dont overlap with fields.
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    7ac07c8 View commit details
    Browse the repository at this point in the history
  37. Add static assertion for OpPart to ensure value fits in the bitrange

    Also add option for 64-bit shift variants in instruction set
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    08b4433 View commit details
    Browse the repository at this point in the history
  38. Configuration menu
    Copy the full SHA
    8d85b19 View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    fbc7231 View commit details
    Browse the repository at this point in the history
  40. Add static assertion that instruction fields are valid

    Ensures:
    
    * The fields are ordered from [0 - (N-1)] where N is the number of fields
    * The first field has index 0
    * There are no skipped indices
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    537d366 View commit details
    Browse the repository at this point in the history
  41. Configuration menu
    Copy the full SHA
    59617f6 View commit details
    Browse the repository at this point in the history
  42. Configuration menu
    Copy the full SHA
    3e2d2d8 View commit details
    Browse the repository at this point in the history
  43. Add verification for all bitranges in an instruction

    Ensures bitranges in the Fields don't overlap with bitranges in the
    Opcode.
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    85bde3b View commit details
    Browse the repository at this point in the history
  44. Configuration menu
    Copy the full SHA
    8c043d1 View commit details
    Browse the repository at this point in the history
  45. Add verifications for full instructions

    Ensures all bits are utilized and that bitranges from the Fields don't
    overlap with bitranges from the Opcode.
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    d0feb25 View commit details
    Browse the repository at this point in the history
  46. Configuration menu
    Copy the full SHA
    fcd1041 View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    60d6dac View commit details
    Browse the repository at this point in the history
  48. Re-implement ECALL instruction

    Had to fix some parts of the class structure so that FieldsImpl works
    when there are no fields.
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    bcaf917 View commit details
    Browse the repository at this point in the history
  49. Configuration menu
    Copy the full SHA
    a1dbf81 View commit details
    Browse the repository at this point in the history
  50. Re-implement JAL instruction

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    72745c7 View commit details
    Browse the repository at this point in the history
  51. Configuration menu
    Copy the full SHA
    7126569 View commit details
    Browse the repository at this point in the history
  52. Configuration menu
    Copy the full SHA
    561df9a View commit details
    Browse the repository at this point in the history
  53. Configuration menu
    Copy the full SHA
    ec0f495 View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    50c11d7 View commit details
    Browse the repository at this point in the history
  55. Add more pseudoinstructions

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    09cf155 View commit details
    Browse the repository at this point in the history
  56. Configuration menu
    Copy the full SHA
    dd7aa29 View commit details
    Browse the repository at this point in the history
  57. Configuration menu
    Copy the full SHA
    2806615 View commit details
    Browse the repository at this point in the history
  58. Start re-implementing compressed RISC-V instruction set

    NOTE: This commit does not have instruction matching working for the
    re-implemented instructions. For some reason, the assembler will not
    match compressed instructions. I'm guessing it has something to do with
    the smaller instruction size.
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    237f28b View commit details
    Browse the repository at this point in the history
  59. Update TODOs

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    2beb402 View commit details
    Browse the repository at this point in the history
  60. Configuration menu
    Copy the full SHA
    317b2d8 View commit details
    Browse the repository at this point in the history
  61. Configuration menu
    Copy the full SHA
    c4c9602 View commit details
    Browse the repository at this point in the history
  62. Refactor FieldSet to assign field indices automatically

    FieldSet was renamed from FieldsImpl
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    027cd3e View commit details
    Browse the repository at this point in the history
  63. Configuration menu
    Copy the full SHA
    76e30e7 View commit details
    Browse the repository at this point in the history
  64. Configuration menu
    Copy the full SHA
    628d37a View commit details
    Browse the repository at this point in the history
  65. Configuration menu
    Copy the full SHA
    b7cef51 View commit details
    Browse the repository at this point in the history
  66. Configuration menu
    Copy the full SHA
    70649a7 View commit details
    Browse the repository at this point in the history
  67. Add OpPart type verification

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    8d4b481 View commit details
    Browse the repository at this point in the history
  68. Configuration menu
    Copy the full SHA
    087d746 View commit details
    Browse the repository at this point in the history
  69. Remove unused code

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    6c24600 View commit details
    Browse the repository at this point in the history
  70. Remove unnecessary TODOs

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    f471dfe View commit details
    Browse the repository at this point in the history
  71. Configuration menu
    Copy the full SHA
    6f20f3e View commit details
    Browse the repository at this point in the history
  72. Re-implement c.nop

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    a89d1c7 View commit details
    Browse the repository at this point in the history
  73. Configuration menu
    Copy the full SHA
    a2560fb View commit details
    Browse the repository at this point in the history
  74. Configuration menu
    Copy the full SHA
    63fae3c View commit details
    Browse the repository at this point in the history
  75. Configuration menu
    Copy the full SHA
    0579253 View commit details
    Browse the repository at this point in the history
  76. Configuration menu
    Copy the full SHA
    4420b74 View commit details
    Browse the repository at this point in the history
  77. Fix assertion accidentially firing under certain conditions

    It would wrongly cause a crash when a compressed instruction was the
    last instruction of a program and it needed linkage to a symbol.
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    bb7ce4f View commit details
    Browse the repository at this point in the history
  78. Configuration menu
    Copy the full SHA
    d51b688 View commit details
    Browse the repository at this point in the history
  79. Re-implement c.addi4spn

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    aae625a View commit details
    Browse the repository at this point in the history
  80. Configuration menu
    Copy the full SHA
    3d81e9d View commit details
    Browse the repository at this point in the history
  81. Configuration menu
    Copy the full SHA
    4c722a6 View commit details
    Browse the repository at this point in the history
  82. Configuration menu
    Copy the full SHA
    c16cae4 View commit details
    Browse the repository at this point in the history
  83. Try to fix compiler errors

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    b88d25a View commit details
    Browse the repository at this point in the history
  84. Configuration menu
    Copy the full SHA
    e6d5cbf View commit details
    Browse the repository at this point in the history
  85. Configuration menu
    Copy the full SHA
    344f6c7 View commit details
    Browse the repository at this point in the history
  86. Remove commented out code

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    d0e021c View commit details
    Browse the repository at this point in the history
  87. Add missing comment

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    df2078d View commit details
    Browse the repository at this point in the history
  88. Configuration menu
    Copy the full SHA
    51797b4 View commit details
    Browse the repository at this point in the history
  89. Configuration menu
    Copy the full SHA
    98e1955 View commit details
    Browse the repository at this point in the history
  90. Configuration menu
    Copy the full SHA
    02ecf67 View commit details
    Browse the repository at this point in the history
  91. Add missing assert message

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    c6891e0 View commit details
    Browse the repository at this point in the history
  92. Configuration menu
    Copy the full SHA
    51eaa25 View commit details
    Browse the repository at this point in the history
  93. Fix camelCase in BitRangeSet

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    710b251 View commit details
    Browse the repository at this point in the history
  94. Configuration menu
    Copy the full SHA
    ebecf3d View commit details
    Browse the repository at this point in the history
  95. Fix Field, FieldSet, Reg, and ImmBase

    Fixed camelCase and removed unnecessary functions
    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    9b6871e View commit details
    Browse the repository at this point in the history
  96. Configuration menu
    Copy the full SHA
    09471cc View commit details
    Browse the repository at this point in the history
  97. Fix more camelCase

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    62bbcd4 View commit details
    Browse the repository at this point in the history
  98. Configuration menu
    Copy the full SHA
    6861a61 View commit details
    Browse the repository at this point in the history
  99. Configuration menu
    Copy the full SHA
    a519c8f View commit details
    Browse the repository at this point in the history
  100. Update VSRTL

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    4ce455f View commit details
    Browse the repository at this point in the history
  101. Configuration menu
    Copy the full SHA
    9394e6c View commit details
    Browse the repository at this point in the history
  102. Remove 'GPR' from struct name

    raccog committed Nov 9, 2023
    Configuration menu
    Copy the full SHA
    9bbc483 View commit details
    Browse the repository at this point in the history