udb 0.1.16 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (856) hide show
  1. checksums.yaml +4 -4
  2. data/.data/cfgs/example_rv64_with_overlay.yaml +157 -2
  3. data/.data/cfgs/mc100-32-full-example.yaml +6 -0
  4. data/.data/cfgs/profile/RVA23S64.yaml +1 -1
  5. data/.data/cfgs/profile/RVA23p1S64.yaml +217 -0
  6. data/.data/cfgs/profile/RVB23S64.yaml +1 -1
  7. data/.data/cfgs/profile/RVB23p1S64.yaml +179 -0
  8. data/.data/cfgs/qc_iu.yaml +14 -0
  9. data/.data/cfgs/rv32-riscv-tests.yaml +143 -0
  10. data/.data/cfgs/rv32-vector.yaml +144 -1
  11. data/.data/cfgs/rv64-riscv-tests.yaml +143 -0
  12. data/.data/cfgs/rv64-vector.yaml +145 -2
  13. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.mva01s.yaml +2 -2
  14. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.mvsa01.yaml +2 -2
  15. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.pop.yaml +2 -2
  16. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.popret.yaml +2 -2
  17. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.popretz.yaml +2 -2
  18. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.push.yaml +2 -2
  19. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.pushfp.yaml +2 -2
  20. data/.data/spec/schemas/README.adoc +4 -1
  21. data/.data/spec/schemas/csr_schema.json +2 -2
  22. data/.data/spec/schemas/schema_defs.json +4 -1
  23. data/.data/spec/std/isa/csr/H/hgeie.yaml +38 -0
  24. data/.data/spec/std/isa/csr/H/hgeip.yaml +33 -0
  25. data/.data/spec/std/isa/csr/H/hideleg.yaml +120 -0
  26. data/.data/spec/std/isa/csr/H/hie.yaml +74 -0
  27. data/.data/spec/std/isa/csr/H/hip.yaml +88 -0
  28. data/.data/spec/std/isa/csr/H/hvip.yaml +46 -0
  29. data/.data/spec/std/isa/csr/H/vsie.yaml +86 -0
  30. data/.data/spec/std/isa/csr/H/vsip.yaml +98 -0
  31. data/.data/spec/std/isa/csr/H/vsscratch.yaml +29 -0
  32. data/.data/spec/std/isa/csr/I/mcounteren.layout +7 -0
  33. data/.data/spec/std/isa/csr/I/mcounteren.yaml +7 -0
  34. data/.data/spec/std/isa/csr/I/pmpaddr0.yaml +7 -7
  35. data/.data/spec/std/isa/csr/I/pmpaddr1.yaml +7 -7
  36. data/.data/spec/std/isa/csr/I/pmpaddr10.yaml +7 -7
  37. data/.data/spec/std/isa/csr/I/pmpaddr11.yaml +7 -7
  38. data/.data/spec/std/isa/csr/I/pmpaddr12.yaml +7 -7
  39. data/.data/spec/std/isa/csr/I/pmpaddr13.yaml +7 -7
  40. data/.data/spec/std/isa/csr/I/pmpaddr14.yaml +7 -7
  41. data/.data/spec/std/isa/csr/I/pmpaddr15.yaml +7 -7
  42. data/.data/spec/std/isa/csr/I/pmpaddr16.yaml +7 -7
  43. data/.data/spec/std/isa/csr/I/pmpaddr17.yaml +7 -7
  44. data/.data/spec/std/isa/csr/I/pmpaddr18.yaml +7 -7
  45. data/.data/spec/std/isa/csr/I/pmpaddr19.yaml +7 -7
  46. data/.data/spec/std/isa/csr/I/pmpaddr2.yaml +7 -7
  47. data/.data/spec/std/isa/csr/I/pmpaddr20.yaml +7 -7
  48. data/.data/spec/std/isa/csr/I/pmpaddr21.yaml +7 -7
  49. data/.data/spec/std/isa/csr/I/pmpaddr22.yaml +7 -7
  50. data/.data/spec/std/isa/csr/I/pmpaddr23.yaml +7 -7
  51. data/.data/spec/std/isa/csr/I/pmpaddr24.yaml +7 -7
  52. data/.data/spec/std/isa/csr/I/pmpaddr25.yaml +7 -7
  53. data/.data/spec/std/isa/csr/I/pmpaddr26.yaml +7 -7
  54. data/.data/spec/std/isa/csr/I/pmpaddr27.yaml +7 -7
  55. data/.data/spec/std/isa/csr/I/pmpaddr28.yaml +7 -7
  56. data/.data/spec/std/isa/csr/I/pmpaddr29.yaml +7 -7
  57. data/.data/spec/std/isa/csr/I/pmpaddr3.yaml +7 -7
  58. data/.data/spec/std/isa/csr/I/pmpaddr30.yaml +7 -7
  59. data/.data/spec/std/isa/csr/I/pmpaddr31.yaml +7 -7
  60. data/.data/spec/std/isa/csr/I/pmpaddr32.yaml +7 -7
  61. data/.data/spec/std/isa/csr/I/pmpaddr33.yaml +7 -7
  62. data/.data/spec/std/isa/csr/I/pmpaddr34.yaml +7 -7
  63. data/.data/spec/std/isa/csr/I/pmpaddr35.yaml +7 -7
  64. data/.data/spec/std/isa/csr/I/pmpaddr36.yaml +7 -7
  65. data/.data/spec/std/isa/csr/I/pmpaddr37.yaml +7 -7
  66. data/.data/spec/std/isa/csr/I/pmpaddr38.yaml +7 -7
  67. data/.data/spec/std/isa/csr/I/pmpaddr39.yaml +7 -7
  68. data/.data/spec/std/isa/csr/I/pmpaddr4.yaml +7 -7
  69. data/.data/spec/std/isa/csr/I/pmpaddr40.yaml +7 -7
  70. data/.data/spec/std/isa/csr/I/pmpaddr41.yaml +7 -7
  71. data/.data/spec/std/isa/csr/I/pmpaddr42.yaml +7 -7
  72. data/.data/spec/std/isa/csr/I/pmpaddr43.yaml +7 -7
  73. data/.data/spec/std/isa/csr/I/pmpaddr44.yaml +7 -7
  74. data/.data/spec/std/isa/csr/I/pmpaddr45.yaml +7 -7
  75. data/.data/spec/std/isa/csr/I/pmpaddr46.yaml +7 -7
  76. data/.data/spec/std/isa/csr/I/pmpaddr47.yaml +7 -7
  77. data/.data/spec/std/isa/csr/I/pmpaddr48.yaml +7 -7
  78. data/.data/spec/std/isa/csr/I/pmpaddr49.yaml +7 -7
  79. data/.data/spec/std/isa/csr/I/pmpaddr5.yaml +7 -7
  80. data/.data/spec/std/isa/csr/I/pmpaddr50.yaml +7 -7
  81. data/.data/spec/std/isa/csr/I/pmpaddr51.yaml +7 -7
  82. data/.data/spec/std/isa/csr/I/pmpaddr52.yaml +7 -7
  83. data/.data/spec/std/isa/csr/I/pmpaddr53.yaml +7 -7
  84. data/.data/spec/std/isa/csr/I/pmpaddr54.yaml +7 -7
  85. data/.data/spec/std/isa/csr/I/pmpaddr55.yaml +7 -7
  86. data/.data/spec/std/isa/csr/I/pmpaddr56.yaml +7 -7
  87. data/.data/spec/std/isa/csr/I/pmpaddr57.yaml +7 -7
  88. data/.data/spec/std/isa/csr/I/pmpaddr58.yaml +7 -7
  89. data/.data/spec/std/isa/csr/I/pmpaddr59.yaml +7 -7
  90. data/.data/spec/std/isa/csr/I/pmpaddr6.yaml +7 -7
  91. data/.data/spec/std/isa/csr/I/pmpaddr60.yaml +7 -7
  92. data/.data/spec/std/isa/csr/I/pmpaddr61.yaml +7 -7
  93. data/.data/spec/std/isa/csr/I/pmpaddr62.yaml +7 -7
  94. data/.data/spec/std/isa/csr/I/pmpaddr63.yaml +7 -7
  95. data/.data/spec/std/isa/csr/I/pmpaddr7.yaml +7 -7
  96. data/.data/spec/std/isa/csr/I/pmpaddr8.yaml +7 -7
  97. data/.data/spec/std/isa/csr/I/pmpaddr9.yaml +7 -7
  98. data/.data/spec/std/isa/csr/I/pmpaddrN.layout +7 -7
  99. data/.data/spec/std/isa/csr/Smcdeleg/scountinhibit.layout +111 -0
  100. data/.data/spec/std/isa/csr/Smcdeleg/scountinhibit.yaml +840 -0
  101. data/.data/spec/std/isa/csr/Smcntrpmf/mcyclecfg.yaml +2 -0
  102. data/.data/spec/std/isa/csr/Smcntrpmf/mcyclecfgh.yaml +2 -0
  103. data/.data/spec/std/isa/csr/Smcntrpmf/minstretcfg.yaml +2 -0
  104. data/.data/spec/std/isa/csr/Smcntrpmf/minstretcfgh.yaml +2 -0
  105. data/.data/spec/std/isa/csr/Smcsrind/mireg.yaml +2 -2
  106. data/.data/spec/std/isa/csr/Smcsrind/mireg2.yaml +2 -2
  107. data/.data/spec/std/isa/csr/Smcsrind/mireg3.yaml +2 -2
  108. data/.data/spec/std/isa/csr/Smcsrind/mireg4.yaml +2 -2
  109. data/.data/spec/std/isa/csr/Smcsrind/mireg5.yaml +2 -2
  110. data/.data/spec/std/isa/csr/Smcsrind/mireg6.yaml +2 -2
  111. data/.data/spec/std/isa/csr/Smcsrind/sireg.yaml +2 -2
  112. data/.data/spec/std/isa/csr/Smcsrind/sireg2.yaml +2 -2
  113. data/.data/spec/std/isa/csr/Smcsrind/sireg3.yaml +2 -2
  114. data/.data/spec/std/isa/csr/Smcsrind/sireg4.yaml +2 -2
  115. data/.data/spec/std/isa/csr/Smcsrind/sireg5.yaml +2 -2
  116. data/.data/spec/std/isa/csr/Smcsrind/sireg6.yaml +2 -2
  117. data/.data/spec/std/isa/csr/Smcsrind/vsireg.yaml +2 -2
  118. data/.data/spec/std/isa/csr/Smcsrind/vsireg2.yaml +2 -2
  119. data/.data/spec/std/isa/csr/Smcsrind/vsireg3.yaml +2 -2
  120. data/.data/spec/std/isa/csr/Smcsrind/vsireg4.yaml +2 -2
  121. data/.data/spec/std/isa/csr/Smcsrind/vsireg5.yaml +2 -2
  122. data/.data/spec/std/isa/csr/Smcsrind/vsireg6.yaml +2 -2
  123. data/.data/spec/std/isa/csr/Smctr/sctrctl.yaml +1 -1
  124. data/.data/spec/std/isa/csr/Smctr/sctrdepth.yaml +43 -0
  125. data/.data/spec/std/isa/csr/Smctr/sctrstatus.yaml +37 -0
  126. data/.data/spec/std/isa/csr/Smctr/vsctrctl.yaml +3 -1
  127. data/.data/spec/std/isa/csr/Sscofpmf/scountovf.layout +7 -0
  128. data/.data/spec/std/isa/csr/Sscofpmf/scountovf.yaml +7 -0
  129. data/.data/spec/std/isa/csr/Sstc/stimecmp.yaml +42 -0
  130. data/.data/spec/std/isa/csr/Sstc/stimecmph.yaml +43 -0
  131. data/.data/spec/std/isa/csr/Sstc/vstimecmp.yaml +45 -0
  132. data/.data/spec/std/isa/csr/Sstc/vstimecmph.yaml +46 -0
  133. data/.data/spec/std/isa/csr/V/vcsr.yaml +1 -1
  134. data/.data/spec/std/isa/csr/V/vl.yaml +1 -1
  135. data/.data/spec/std/isa/csr/V/vlenb.yaml +1 -1
  136. data/.data/spec/std/isa/csr/V/vstart.yaml +1 -1
  137. data/.data/spec/std/isa/csr/V/vtype.yaml +20 -1
  138. data/.data/spec/std/isa/csr/V/vxrm.yaml +1 -1
  139. data/.data/spec/std/isa/csr/V/vxsat.yaml +1 -1
  140. data/.data/spec/std/isa/csr/Zicntr/mcountinhibit.layout +1 -15
  141. data/.data/spec/std/isa/csr/Zicntr/mcountinhibit.yaml +29 -267
  142. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter10.yaml +4 -7
  143. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter10h.yaml +2 -4
  144. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter11.yaml +4 -7
  145. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter11h.yaml +2 -4
  146. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter12.yaml +4 -7
  147. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter12h.yaml +2 -4
  148. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter13.yaml +4 -7
  149. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter13h.yaml +2 -4
  150. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter14.yaml +4 -7
  151. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter14h.yaml +2 -4
  152. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter15.yaml +4 -7
  153. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter15h.yaml +2 -4
  154. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter16.yaml +4 -7
  155. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter16h.yaml +2 -4
  156. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter17.yaml +4 -7
  157. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter17h.yaml +2 -4
  158. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter18.yaml +4 -7
  159. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter18h.yaml +2 -4
  160. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter19.yaml +4 -7
  161. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter19h.yaml +2 -4
  162. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter20.yaml +4 -7
  163. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter20h.yaml +2 -4
  164. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter21.yaml +4 -7
  165. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter21h.yaml +2 -4
  166. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter22.yaml +4 -7
  167. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter22h.yaml +2 -4
  168. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter23.yaml +4 -7
  169. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter23h.yaml +2 -4
  170. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter24.yaml +4 -7
  171. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter24h.yaml +2 -4
  172. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter25.yaml +4 -7
  173. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter25h.yaml +2 -4
  174. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter26.yaml +4 -7
  175. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter26h.yaml +2 -4
  176. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter27.yaml +4 -7
  177. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter27h.yaml +2 -4
  178. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter28.yaml +4 -7
  179. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter28h.yaml +2 -4
  180. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter29.yaml +4 -7
  181. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter29h.yaml +2 -4
  182. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter3.yaml +4 -7
  183. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter30.yaml +4 -7
  184. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter30h.yaml +2 -4
  185. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter31.yaml +4 -7
  186. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter31h.yaml +2 -4
  187. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter3h.yaml +2 -4
  188. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter4.yaml +4 -7
  189. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter4h.yaml +2 -4
  190. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter5.yaml +4 -7
  191. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter5h.yaml +2 -4
  192. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter6.yaml +4 -7
  193. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter6h.yaml +2 -4
  194. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter7.yaml +4 -7
  195. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter7h.yaml +2 -4
  196. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter8.yaml +4 -7
  197. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter8h.yaml +2 -4
  198. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter9.yaml +4 -7
  199. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter9h.yaml +2 -4
  200. data/.data/spec/std/isa/csr/Zihpm/mhpmcounterN.layout +4 -7
  201. data/.data/spec/std/isa/csr/Zihpm/mhpmcounterNh.layout +2 -4
  202. data/.data/spec/std/isa/csr/Zihpm/mhpmevent10.yaml +4 -7
  203. data/.data/spec/std/isa/csr/Zihpm/mhpmevent10h.yaml +4 -4
  204. data/.data/spec/std/isa/csr/Zihpm/mhpmevent11.yaml +4 -7
  205. data/.data/spec/std/isa/csr/Zihpm/mhpmevent11h.yaml +4 -4
  206. data/.data/spec/std/isa/csr/Zihpm/mhpmevent12.yaml +4 -7
  207. data/.data/spec/std/isa/csr/Zihpm/mhpmevent12h.yaml +4 -4
  208. data/.data/spec/std/isa/csr/Zihpm/mhpmevent13.yaml +4 -7
  209. data/.data/spec/std/isa/csr/Zihpm/mhpmevent13h.yaml +4 -4
  210. data/.data/spec/std/isa/csr/Zihpm/mhpmevent14.yaml +4 -7
  211. data/.data/spec/std/isa/csr/Zihpm/mhpmevent14h.yaml +4 -4
  212. data/.data/spec/std/isa/csr/Zihpm/mhpmevent15.yaml +4 -7
  213. data/.data/spec/std/isa/csr/Zihpm/mhpmevent15h.yaml +4 -4
  214. data/.data/spec/std/isa/csr/Zihpm/mhpmevent16.yaml +4 -7
  215. data/.data/spec/std/isa/csr/Zihpm/mhpmevent16h.yaml +4 -4
  216. data/.data/spec/std/isa/csr/Zihpm/mhpmevent17.yaml +4 -7
  217. data/.data/spec/std/isa/csr/Zihpm/mhpmevent17h.yaml +4 -4
  218. data/.data/spec/std/isa/csr/Zihpm/mhpmevent18.yaml +4 -7
  219. data/.data/spec/std/isa/csr/Zihpm/mhpmevent18h.yaml +4 -4
  220. data/.data/spec/std/isa/csr/Zihpm/mhpmevent19.yaml +4 -7
  221. data/.data/spec/std/isa/csr/Zihpm/mhpmevent19h.yaml +4 -4
  222. data/.data/spec/std/isa/csr/Zihpm/mhpmevent20.yaml +4 -7
  223. data/.data/spec/std/isa/csr/Zihpm/mhpmevent20h.yaml +4 -4
  224. data/.data/spec/std/isa/csr/Zihpm/mhpmevent21.yaml +4 -7
  225. data/.data/spec/std/isa/csr/Zihpm/mhpmevent21h.yaml +4 -4
  226. data/.data/spec/std/isa/csr/Zihpm/mhpmevent22.yaml +4 -7
  227. data/.data/spec/std/isa/csr/Zihpm/mhpmevent22h.yaml +4 -4
  228. data/.data/spec/std/isa/csr/Zihpm/mhpmevent23.yaml +4 -7
  229. data/.data/spec/std/isa/csr/Zihpm/mhpmevent23h.yaml +4 -4
  230. data/.data/spec/std/isa/csr/Zihpm/mhpmevent24.yaml +4 -7
  231. data/.data/spec/std/isa/csr/Zihpm/mhpmevent24h.yaml +4 -4
  232. data/.data/spec/std/isa/csr/Zihpm/mhpmevent25.yaml +4 -7
  233. data/.data/spec/std/isa/csr/Zihpm/mhpmevent25h.yaml +4 -4
  234. data/.data/spec/std/isa/csr/Zihpm/mhpmevent26.yaml +4 -7
  235. data/.data/spec/std/isa/csr/Zihpm/mhpmevent26h.yaml +4 -4
  236. data/.data/spec/std/isa/csr/Zihpm/mhpmevent27.yaml +4 -7
  237. data/.data/spec/std/isa/csr/Zihpm/mhpmevent27h.yaml +4 -4
  238. data/.data/spec/std/isa/csr/Zihpm/mhpmevent28.yaml +4 -7
  239. data/.data/spec/std/isa/csr/Zihpm/mhpmevent28h.yaml +4 -4
  240. data/.data/spec/std/isa/csr/Zihpm/mhpmevent29.yaml +4 -7
  241. data/.data/spec/std/isa/csr/Zihpm/mhpmevent29h.yaml +4 -4
  242. data/.data/spec/std/isa/csr/Zihpm/mhpmevent3.yaml +4 -7
  243. data/.data/spec/std/isa/csr/Zihpm/mhpmevent30.yaml +4 -7
  244. data/.data/spec/std/isa/csr/Zihpm/mhpmevent30h.yaml +4 -4
  245. data/.data/spec/std/isa/csr/Zihpm/mhpmevent31.yaml +4 -7
  246. data/.data/spec/std/isa/csr/Zihpm/mhpmevent31h.yaml +4 -4
  247. data/.data/spec/std/isa/csr/Zihpm/mhpmevent3h.yaml +4 -4
  248. data/.data/spec/std/isa/csr/Zihpm/mhpmevent4.yaml +4 -7
  249. data/.data/spec/std/isa/csr/Zihpm/mhpmevent4h.yaml +4 -4
  250. data/.data/spec/std/isa/csr/Zihpm/mhpmevent5.yaml +4 -7
  251. data/.data/spec/std/isa/csr/Zihpm/mhpmevent5h.yaml +4 -4
  252. data/.data/spec/std/isa/csr/Zihpm/mhpmevent6.yaml +4 -7
  253. data/.data/spec/std/isa/csr/Zihpm/mhpmevent6h.yaml +4 -4
  254. data/.data/spec/std/isa/csr/Zihpm/mhpmevent7.yaml +4 -7
  255. data/.data/spec/std/isa/csr/Zihpm/mhpmevent7h.yaml +4 -4
  256. data/.data/spec/std/isa/csr/Zihpm/mhpmevent8.yaml +4 -7
  257. data/.data/spec/std/isa/csr/Zihpm/mhpmevent8h.yaml +4 -4
  258. data/.data/spec/std/isa/csr/Zihpm/mhpmevent9.yaml +4 -7
  259. data/.data/spec/std/isa/csr/Zihpm/mhpmevent9h.yaml +4 -4
  260. data/.data/spec/std/isa/csr/Zihpm/mhpmeventN.layout +4 -7
  261. data/.data/spec/std/isa/csr/Zihpm/mhpmeventNh.layout +4 -4
  262. data/.data/spec/std/isa/csr/Zkr/seed.yaml +75 -0
  263. data/.data/spec/std/isa/csr/hcontext.yaml +4 -4
  264. data/.data/spec/std/isa/csr/mcontext.yaml +4 -4
  265. data/.data/spec/std/isa/csr/mcycle.yaml +2 -0
  266. data/.data/spec/std/isa/csr/mcycleh.yaml +2 -0
  267. data/.data/spec/std/isa/csr/medeleg.yaml +72 -36
  268. data/.data/spec/std/isa/csr/menvcfg.yaml +12 -1
  269. data/.data/spec/std/isa/csr/menvcfgh.yaml +12 -0
  270. data/.data/spec/std/isa/csr/mideleg.yaml +37 -12
  271. data/.data/spec/std/isa/csr/mie.yaml +12 -6
  272. data/.data/spec/std/isa/csr/minstret.yaml +2 -0
  273. data/.data/spec/std/isa/csr/minstreth.yaml +2 -0
  274. data/.data/spec/std/isa/csr/mip.yaml +15 -7
  275. data/.data/spec/std/isa/csr/misa.yaml +14 -30
  276. data/.data/spec/std/isa/csr/mseccfg.yaml +27 -1
  277. data/.data/spec/std/isa/csr/mstatus.yaml +10 -4
  278. data/.data/spec/std/isa/csr/schema.adoc +10 -4
  279. data/.data/spec/std/isa/csr/scontext.yaml +8 -4
  280. data/.data/spec/std/isa/csr/senvcfg.yaml +6 -12
  281. data/.data/spec/std/isa/csr/sstateen0.yaml +1 -1
  282. data/.data/spec/std/isa/csr/sstateen1.yaml +2 -3
  283. data/.data/spec/std/isa/csr/sstateen2.yaml +2 -3
  284. data/.data/spec/std/isa/csr/sstateen3.yaml +2 -3
  285. data/.data/spec/std/isa/csr/tcontrol.yaml +41 -0
  286. data/.data/spec/std/isa/csr/tdata2.yaml +6 -2
  287. data/.data/spec/std/isa/csr/tdata3.yaml +6 -2
  288. data/.data/spec/std/isa/csr/tinfo.yaml +44 -0
  289. data/.data/spec/std/isa/ext/Sdext.yaml +58 -2
  290. data/.data/spec/std/isa/ext/Sm.yaml +2 -2
  291. data/.data/spec/std/isa/ext/Smcdeleg.yaml +7 -0
  292. data/.data/spec/std/isa/ext/Smctr.yaml +1 -1
  293. data/.data/spec/std/isa/ext/Smmpm.yaml +8 -0
  294. data/.data/spec/std/isa/ext/Smnpm.yaml +19 -0
  295. data/.data/spec/std/isa/ext/Smpmpdeleg.yaml +33 -0
  296. data/.data/spec/std/isa/ext/Ssccfg.yaml +7 -0
  297. data/.data/spec/std/isa/ext/Ssctr.yaml +1 -1
  298. data/.data/spec/std/isa/ext/Ssnpm.yaml +8 -0
  299. data/.data/spec/std/isa/ext/Sspmp.yaml +44 -0
  300. data/.data/spec/std/isa/ext/Sspmpen.yaml +30 -0
  301. data/.data/spec/std/isa/ext/Ssstrict.yaml +2 -2
  302. data/.data/spec/std/isa/ext/Sv32.yaml +2 -2
  303. data/.data/spec/std/isa/ext/Svpbmt.yaml +2 -2
  304. data/.data/spec/std/isa/ext/Zaamo.yaml +1 -1
  305. data/.data/spec/std/isa/ext/Zbc.yaml +4 -0
  306. data/.data/spec/std/isa/ext/Zvabd.yaml +5 -1
  307. data/.data/spec/std/isa/ext/Zvfbdota32f.yaml +23 -0
  308. data/.data/spec/std/isa/ext/Zvfbfa.yaml +24 -0
  309. data/.data/spec/std/isa/ext/Zvfofp4min.yaml +21 -0
  310. data/.data/spec/std/isa/ext/Zvfofp8min.yaml +20 -0
  311. data/.data/spec/std/isa/ext/Zvzip.yaml +24 -0
  312. data/.data/spec/std/isa/inst/B/andn.yaml +0 -4
  313. data/.data/spec/std/isa/inst/B/orn.yaml +0 -4
  314. data/.data/spec/std/isa/inst/B/rev8.yaml +0 -4
  315. data/.data/spec/std/isa/inst/B/rol.yaml +0 -4
  316. data/.data/spec/std/isa/inst/B/rolw.yaml +0 -4
  317. data/.data/spec/std/isa/inst/B/ror.yaml +0 -4
  318. data/.data/spec/std/isa/inst/B/rori.yaml +0 -4
  319. data/.data/spec/std/isa/inst/B/roriw.yaml +0 -4
  320. data/.data/spec/std/isa/inst/B/rorw.yaml +0 -4
  321. data/.data/spec/std/isa/inst/B/xnor.yaml +0 -4
  322. data/.data/spec/std/isa/inst/C/c.addi.yaml +2 -2
  323. data/.data/spec/std/isa/inst/C/c.addi16sp.yaml +2 -2
  324. data/.data/spec/std/isa/inst/C/c.addi4spn.yaml +2 -2
  325. data/.data/spec/std/isa/inst/C/c.addiw.yaml +2 -2
  326. data/.data/spec/std/isa/inst/C/c.beqz.yaml +2 -2
  327. data/.data/spec/std/isa/inst/C/c.bnez.yaml +4 -4
  328. data/.data/spec/std/isa/inst/C/c.ebreak.yaml +2 -2
  329. data/.data/spec/std/isa/inst/C/c.j.yaml +2 -2
  330. data/.data/spec/std/isa/inst/C/c.jal.yaml +2 -2
  331. data/.data/spec/std/isa/inst/C/c.jalr.yaml +2 -2
  332. data/.data/spec/std/isa/inst/C/c.jr.yaml +2 -2
  333. data/.data/spec/std/isa/inst/C/c.ld.yaml +2 -2
  334. data/.data/spec/std/isa/inst/C/c.ldsp.yaml +2 -2
  335. data/.data/spec/std/isa/inst/C/c.li.yaml +2 -2
  336. data/.data/spec/std/isa/inst/C/c.lui.yaml +2 -2
  337. data/.data/spec/std/isa/inst/C/c.lw.yaml +2 -2
  338. data/.data/spec/std/isa/inst/C/c.lwsp.yaml +2 -2
  339. data/.data/spec/std/isa/inst/C/c.mv.yaml +2 -2
  340. data/.data/spec/std/isa/inst/C/c.nop.yaml +2 -2
  341. data/.data/spec/std/isa/inst/C/c.sd.yaml +2 -2
  342. data/.data/spec/std/isa/inst/C/c.sdsp.yaml +5 -5
  343. data/.data/spec/std/isa/inst/C/c.sw.yaml +2 -2
  344. data/.data/spec/std/isa/inst/C/c.swsp.yaml +2 -2
  345. data/.data/spec/std/isa/inst/H/hlv.b.yaml +1 -1
  346. data/.data/spec/std/isa/inst/H/hlv.bu.yaml +1 -1
  347. data/.data/spec/std/isa/inst/H/hlv.d.yaml +1 -1
  348. data/.data/spec/std/isa/inst/H/hlv.h.yaml +1 -1
  349. data/.data/spec/std/isa/inst/H/hlv.hu.yaml +1 -1
  350. data/.data/spec/std/isa/inst/H/hlv.w.yaml +1 -1
  351. data/.data/spec/std/isa/inst/H/hlv.wu.yaml +1 -1
  352. data/.data/spec/std/isa/inst/H/hlvx.hu.yaml +1 -1
  353. data/.data/spec/std/isa/inst/H/hlvx.wu.yaml +1 -1
  354. data/.data/spec/std/isa/inst/H/hsv.b.yaml +1 -1
  355. data/.data/spec/std/isa/inst/H/hsv.d.yaml +1 -1
  356. data/.data/spec/std/isa/inst/H/hsv.h.yaml +1 -1
  357. data/.data/spec/std/isa/inst/H/hsv.w.yaml +1 -1
  358. data/.data/spec/std/isa/inst/I/ld.yaml +18 -12
  359. data/.data/spec/std/isa/inst/I/sd.yaml +18 -12
  360. data/.data/spec/std/isa/inst/I/wfi.yaml +1 -1
  361. data/.data/spec/std/isa/inst/M/div.yaml +2 -2
  362. data/.data/spec/std/isa/inst/M/divu.yaml +2 -2
  363. data/.data/spec/std/isa/inst/M/divuw.yaml +2 -2
  364. data/.data/spec/std/isa/inst/M/divw.yaml +2 -2
  365. data/.data/spec/std/isa/inst/M/mul.yaml +0 -4
  366. data/.data/spec/std/isa/inst/M/mulh.yaml +0 -4
  367. data/.data/spec/std/isa/inst/M/mulhsu.yaml +0 -4
  368. data/.data/spec/std/isa/inst/M/mulhu.yaml +0 -4
  369. data/.data/spec/std/isa/inst/M/mulw.yaml +0 -4
  370. data/.data/spec/std/isa/inst/M/rem.yaml +2 -2
  371. data/.data/spec/std/isa/inst/M/remu.yaml +2 -2
  372. data/.data/spec/std/isa/inst/M/remuw.yaml +2 -2
  373. data/.data/spec/std/isa/inst/M/remw.yaml +2 -2
  374. data/.data/spec/std/isa/inst/Q/fcvt.q.d.yaml +1 -1
  375. data/.data/spec/std/isa/inst/Q/flq.yaml +1 -1
  376. data/.data/spec/std/isa/inst/Sdext/dret.yaml +72 -6
  377. data/.data/spec/std/isa/inst/V/vfadd.vf.yaml +3 -1
  378. data/.data/spec/std/isa/inst/V/vfadd.vv.yaml +3 -1
  379. data/.data/spec/std/isa/inst/V/vfclass.v.yaml +3 -1
  380. data/.data/spec/std/isa/inst/V/vfmacc.vf.yaml +3 -1
  381. data/.data/spec/std/isa/inst/V/vfmacc.vv.yaml +3 -1
  382. data/.data/spec/std/isa/inst/V/vfmadd.vf.yaml +3 -1
  383. data/.data/spec/std/isa/inst/V/vfmadd.vv.yaml +3 -1
  384. data/.data/spec/std/isa/inst/V/vfmax.vf.yaml +3 -1
  385. data/.data/spec/std/isa/inst/V/vfmax.vv.yaml +3 -1
  386. data/.data/spec/std/isa/inst/V/vfmerge.vfm.yaml +3 -1
  387. data/.data/spec/std/isa/inst/V/vfmin.vf.yaml +3 -1
  388. data/.data/spec/std/isa/inst/V/vfmin.vv.yaml +3 -1
  389. data/.data/spec/std/isa/inst/V/vfmsac.vf.yaml +3 -1
  390. data/.data/spec/std/isa/inst/V/vfmsac.vv.yaml +3 -1
  391. data/.data/spec/std/isa/inst/V/vfmsub.vf.yaml +3 -1
  392. data/.data/spec/std/isa/inst/V/vfmsub.vv.yaml +3 -1
  393. data/.data/spec/std/isa/inst/V/vfmul.vf.yaml +3 -1
  394. data/.data/spec/std/isa/inst/V/vfmul.vv.yaml +3 -1
  395. data/.data/spec/std/isa/inst/V/vfmv.f.s.yaml +3 -1
  396. data/.data/spec/std/isa/inst/V/vfmv.s.f.yaml +3 -1
  397. data/.data/spec/std/isa/inst/V/vfmv.v.f.yaml +3 -1
  398. data/.data/spec/std/isa/inst/V/vfncvt.f.f.w.yaml +5 -3
  399. data/.data/spec/std/isa/inst/V/vfncvt.f.x.w.yaml +2 -2
  400. data/.data/spec/std/isa/inst/V/vfncvt.f.xu.w.yaml +2 -2
  401. data/.data/spec/std/isa/inst/V/vfncvt.rod.f.f.w.yaml +5 -3
  402. data/.data/spec/std/isa/inst/V/vfncvt.rtz.x.f.w.yaml +5 -3
  403. data/.data/spec/std/isa/inst/V/vfncvt.rtz.xu.f.w.yaml +5 -3
  404. data/.data/spec/std/isa/inst/V/vfncvt.x.f.w.yaml +5 -3
  405. data/.data/spec/std/isa/inst/V/vfncvt.xu.f.w.yaml +5 -3
  406. data/.data/spec/std/isa/inst/V/vfnmacc.vf.yaml +3 -1
  407. data/.data/spec/std/isa/inst/V/vfnmacc.vv.yaml +3 -1
  408. data/.data/spec/std/isa/inst/V/vfnmadd.vf.yaml +3 -1
  409. data/.data/spec/std/isa/inst/V/vfnmadd.vv.yaml +3 -1
  410. data/.data/spec/std/isa/inst/V/vfnmsac.vf.yaml +3 -1
  411. data/.data/spec/std/isa/inst/V/vfnmsac.vv.yaml +3 -1
  412. data/.data/spec/std/isa/inst/V/vfnmsub.vf.yaml +3 -1
  413. data/.data/spec/std/isa/inst/V/vfnmsub.vv.yaml +3 -1
  414. data/.data/spec/std/isa/inst/V/vfrec7.v.yaml +3 -1
  415. data/.data/spec/std/isa/inst/V/vfrsqrt7.v.yaml +3 -1
  416. data/.data/spec/std/isa/inst/V/vfrsub.vf.yaml +3 -1
  417. data/.data/spec/std/isa/inst/V/vfsgnj.vf.yaml +3 -1
  418. data/.data/spec/std/isa/inst/V/vfsgnj.vv.yaml +3 -1
  419. data/.data/spec/std/isa/inst/V/vfsgnjn.vf.yaml +3 -1
  420. data/.data/spec/std/isa/inst/V/vfsgnjn.vv.yaml +3 -1
  421. data/.data/spec/std/isa/inst/V/vfsgnjx.vf.yaml +3 -1
  422. data/.data/spec/std/isa/inst/V/vfsgnjx.vv.yaml +3 -1
  423. data/.data/spec/std/isa/inst/V/vfslide1down.vf.yaml +3 -1
  424. data/.data/spec/std/isa/inst/V/vfslide1up.vf.yaml +3 -1
  425. data/.data/spec/std/isa/inst/V/vfsub.vf.yaml +3 -1
  426. data/.data/spec/std/isa/inst/V/vfsub.vv.yaml +3 -1
  427. data/.data/spec/std/isa/inst/V/vfwadd.vf.yaml +3 -1
  428. data/.data/spec/std/isa/inst/V/vfwadd.vv.yaml +3 -1
  429. data/.data/spec/std/isa/inst/V/vfwadd.wf.yaml +3 -1
  430. data/.data/spec/std/isa/inst/V/vfwadd.wv.yaml +3 -1
  431. data/.data/spec/std/isa/inst/V/vfwcvt.f.f.v.yaml +3 -1
  432. data/.data/spec/std/isa/inst/V/vfwcvt.f.x.v.yaml +3 -1
  433. data/.data/spec/std/isa/inst/V/vfwcvt.f.xu.v.yaml +3 -1
  434. data/.data/spec/std/isa/inst/V/vfwmacc.vf.yaml +3 -1
  435. data/.data/spec/std/isa/inst/V/vfwmacc.vv.yaml +3 -1
  436. data/.data/spec/std/isa/inst/V/vfwmsac.vf.yaml +3 -1
  437. data/.data/spec/std/isa/inst/V/vfwmsac.vv.yaml +3 -1
  438. data/.data/spec/std/isa/inst/V/vfwmul.vf.yaml +3 -1
  439. data/.data/spec/std/isa/inst/V/vfwmul.vv.yaml +3 -1
  440. data/.data/spec/std/isa/inst/V/vfwnmacc.vf.yaml +3 -1
  441. data/.data/spec/std/isa/inst/V/vfwnmacc.vv.yaml +3 -1
  442. data/.data/spec/std/isa/inst/V/vfwnmsac.vf.yaml +3 -1
  443. data/.data/spec/std/isa/inst/V/vfwnmsac.vv.yaml +3 -1
  444. data/.data/spec/std/isa/inst/V/vfwsub.vf.yaml +3 -1
  445. data/.data/spec/std/isa/inst/V/vfwsub.vv.yaml +3 -1
  446. data/.data/spec/std/isa/inst/V/vfwsub.wf.yaml +3 -1
  447. data/.data/spec/std/isa/inst/V/vfwsub.wv.yaml +3 -1
  448. data/.data/spec/std/isa/inst/V/vmfeq.vf.yaml +3 -1
  449. data/.data/spec/std/isa/inst/V/vmfeq.vv.yaml +3 -1
  450. data/.data/spec/std/isa/inst/V/vmfge.vf.yaml +3 -1
  451. data/.data/spec/std/isa/inst/V/vmfgt.vf.yaml +3 -1
  452. data/.data/spec/std/isa/inst/V/vmfle.vf.yaml +3 -1
  453. data/.data/spec/std/isa/inst/V/vmfle.vv.yaml +3 -1
  454. data/.data/spec/std/isa/inst/V/vmflt.vf.yaml +3 -1
  455. data/.data/spec/std/isa/inst/V/vmflt.vv.yaml +3 -1
  456. data/.data/spec/std/isa/inst/V/vmfne.vf.yaml +3 -1
  457. data/.data/spec/std/isa/inst/V/vmfne.vv.yaml +3 -1
  458. data/.data/spec/std/isa/inst/V/vnclip.wi.yaml +2 -2
  459. data/.data/spec/std/isa/inst/V/vnclip.wv.yaml +2 -2
  460. data/.data/spec/std/isa/inst/V/vnclip.wx.yaml +2 -2
  461. data/.data/spec/std/isa/inst/V/vnclipu.wi.yaml +2 -2
  462. data/.data/spec/std/isa/inst/V/vnclipu.wv.yaml +2 -2
  463. data/.data/spec/std/isa/inst/V/vnclipu.wx.yaml +2 -2
  464. data/.data/spec/std/isa/inst/V/vnsra.wi.yaml +2 -2
  465. data/.data/spec/std/isa/inst/V/vnsra.wv.yaml +2 -2
  466. data/.data/spec/std/isa/inst/V/vnsra.wx.yaml +2 -2
  467. data/.data/spec/std/isa/inst/V/vnsrl.wi.yaml +2 -2
  468. data/.data/spec/std/isa/inst/V/vnsrl.wv.yaml +2 -2
  469. data/.data/spec/std/isa/inst/V/vnsrl.wx.yaml +2 -2
  470. data/.data/spec/std/isa/inst/Zaamo/amoadd.SIZE.AQRL.layout +1 -5
  471. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.aq.yaml +0 -4
  472. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.aqrl.yaml +0 -4
  473. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.rl.yaml +0 -4
  474. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.yaml +0 -4
  475. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.aq.yaml +1 -5
  476. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.aqrl.yaml +1 -5
  477. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.rl.yaml +1 -5
  478. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.yaml +1 -5
  479. data/.data/spec/std/isa/inst/Zaamo/amoand.SIZE.AQRL.layout +1 -5
  480. data/.data/spec/std/isa/inst/Zaamo/amoand.d.aq.yaml +0 -4
  481. data/.data/spec/std/isa/inst/Zaamo/amoand.d.aqrl.yaml +0 -4
  482. data/.data/spec/std/isa/inst/Zaamo/amoand.d.rl.yaml +0 -4
  483. data/.data/spec/std/isa/inst/Zaamo/amoand.d.yaml +0 -4
  484. data/.data/spec/std/isa/inst/Zaamo/amoand.w.aq.yaml +1 -5
  485. data/.data/spec/std/isa/inst/Zaamo/amoand.w.aqrl.yaml +1 -5
  486. data/.data/spec/std/isa/inst/Zaamo/amoand.w.rl.yaml +1 -5
  487. data/.data/spec/std/isa/inst/Zaamo/amoand.w.yaml +1 -5
  488. data/.data/spec/std/isa/inst/Zaamo/amomax.SIZE.AQRL.layout +1 -5
  489. data/.data/spec/std/isa/inst/Zaamo/amomax.d.aq.yaml +0 -4
  490. data/.data/spec/std/isa/inst/Zaamo/amomax.d.aqrl.yaml +0 -4
  491. data/.data/spec/std/isa/inst/Zaamo/amomax.d.rl.yaml +0 -4
  492. data/.data/spec/std/isa/inst/Zaamo/amomax.d.yaml +0 -4
  493. data/.data/spec/std/isa/inst/Zaamo/amomax.w.aq.yaml +1 -5
  494. data/.data/spec/std/isa/inst/Zaamo/amomax.w.aqrl.yaml +1 -5
  495. data/.data/spec/std/isa/inst/Zaamo/amomax.w.rl.yaml +1 -5
  496. data/.data/spec/std/isa/inst/Zaamo/amomax.w.yaml +1 -5
  497. data/.data/spec/std/isa/inst/Zaamo/amomaxu.SIZE.AQRL.layout +1 -5
  498. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.aq.yaml +0 -4
  499. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.aqrl.yaml +0 -4
  500. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.rl.yaml +0 -4
  501. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.yaml +0 -4
  502. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.aq.yaml +1 -5
  503. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.aqrl.yaml +1 -5
  504. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.rl.yaml +1 -5
  505. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.yaml +1 -5
  506. data/.data/spec/std/isa/inst/Zaamo/amomin.SIZE.AQRL.layout +1 -5
  507. data/.data/spec/std/isa/inst/Zaamo/amomin.d.aq.yaml +0 -4
  508. data/.data/spec/std/isa/inst/Zaamo/amomin.d.aqrl.yaml +0 -4
  509. data/.data/spec/std/isa/inst/Zaamo/amomin.d.rl.yaml +0 -4
  510. data/.data/spec/std/isa/inst/Zaamo/amomin.d.yaml +0 -4
  511. data/.data/spec/std/isa/inst/Zaamo/amomin.w.aq.yaml +1 -5
  512. data/.data/spec/std/isa/inst/Zaamo/amomin.w.aqrl.yaml +1 -5
  513. data/.data/spec/std/isa/inst/Zaamo/amomin.w.rl.yaml +1 -5
  514. data/.data/spec/std/isa/inst/Zaamo/amomin.w.yaml +1 -5
  515. data/.data/spec/std/isa/inst/Zaamo/amominu.SIZE.AQRL.layout +1 -5
  516. data/.data/spec/std/isa/inst/Zaamo/amominu.d.aq.yaml +0 -4
  517. data/.data/spec/std/isa/inst/Zaamo/amominu.d.aqrl.yaml +0 -4
  518. data/.data/spec/std/isa/inst/Zaamo/amominu.d.rl.yaml +0 -4
  519. data/.data/spec/std/isa/inst/Zaamo/amominu.d.yaml +0 -4
  520. data/.data/spec/std/isa/inst/Zaamo/amominu.w.aq.yaml +1 -5
  521. data/.data/spec/std/isa/inst/Zaamo/amominu.w.aqrl.yaml +1 -5
  522. data/.data/spec/std/isa/inst/Zaamo/amominu.w.rl.yaml +1 -5
  523. data/.data/spec/std/isa/inst/Zaamo/amominu.w.yaml +1 -5
  524. data/.data/spec/std/isa/inst/Zaamo/amoor.SIZE.AQRL.layout +1 -5
  525. data/.data/spec/std/isa/inst/Zaamo/amoor.d.aq.yaml +0 -4
  526. data/.data/spec/std/isa/inst/Zaamo/amoor.d.aqrl.yaml +0 -4
  527. data/.data/spec/std/isa/inst/Zaamo/amoor.d.rl.yaml +0 -4
  528. data/.data/spec/std/isa/inst/Zaamo/amoor.d.yaml +0 -4
  529. data/.data/spec/std/isa/inst/Zaamo/amoor.w.aq.yaml +1 -5
  530. data/.data/spec/std/isa/inst/Zaamo/amoor.w.aqrl.yaml +1 -5
  531. data/.data/spec/std/isa/inst/Zaamo/amoor.w.rl.yaml +1 -5
  532. data/.data/spec/std/isa/inst/Zaamo/amoor.w.yaml +1 -5
  533. data/.data/spec/std/isa/inst/Zaamo/amoswap.SIZE.AQRL.layout +1 -5
  534. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.aq.yaml +0 -4
  535. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.aqrl.yaml +0 -4
  536. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.rl.yaml +0 -4
  537. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.yaml +0 -4
  538. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.aq.yaml +1 -5
  539. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.aqrl.yaml +1 -5
  540. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.rl.yaml +1 -5
  541. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.yaml +1 -5
  542. data/.data/spec/std/isa/inst/Zaamo/amoxor.SIZE.AQRL.layout +1 -5
  543. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.aq.yaml +0 -4
  544. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.aqrl.yaml +0 -4
  545. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.rl.yaml +0 -4
  546. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.yaml +0 -4
  547. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.aq.yaml +1 -5
  548. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.aqrl.yaml +1 -5
  549. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.rl.yaml +1 -5
  550. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.yaml +1 -5
  551. data/.data/spec/std/isa/inst/Zabha/amoadd.b.aq.yaml +1 -5
  552. data/.data/spec/std/isa/inst/Zabha/amoadd.b.aqrl.yaml +1 -5
  553. data/.data/spec/std/isa/inst/Zabha/amoadd.b.rl.yaml +1 -5
  554. data/.data/spec/std/isa/inst/Zabha/amoadd.b.yaml +1 -5
  555. data/.data/spec/std/isa/inst/Zabha/amoadd.h.aq.yaml +1 -5
  556. data/.data/spec/std/isa/inst/Zabha/amoadd.h.aqrl.yaml +1 -5
  557. data/.data/spec/std/isa/inst/Zabha/amoadd.h.rl.yaml +1 -5
  558. data/.data/spec/std/isa/inst/Zabha/amoadd.h.yaml +1 -5
  559. data/.data/spec/std/isa/inst/Zabha/amoand.b.aq.yaml +1 -5
  560. data/.data/spec/std/isa/inst/Zabha/amoand.b.aqrl.yaml +1 -5
  561. data/.data/spec/std/isa/inst/Zabha/amoand.b.rl.yaml +1 -5
  562. data/.data/spec/std/isa/inst/Zabha/amoand.b.yaml +1 -5
  563. data/.data/spec/std/isa/inst/Zabha/amoand.h.aq.yaml +1 -5
  564. data/.data/spec/std/isa/inst/Zabha/amoand.h.aqrl.yaml +1 -5
  565. data/.data/spec/std/isa/inst/Zabha/amoand.h.rl.yaml +1 -5
  566. data/.data/spec/std/isa/inst/Zabha/amoand.h.yaml +1 -5
  567. data/.data/spec/std/isa/inst/Zabha/amomax.b.aq.yaml +1 -5
  568. data/.data/spec/std/isa/inst/Zabha/amomax.b.aqrl.yaml +1 -5
  569. data/.data/spec/std/isa/inst/Zabha/amomax.b.rl.yaml +1 -5
  570. data/.data/spec/std/isa/inst/Zabha/amomax.b.yaml +1 -5
  571. data/.data/spec/std/isa/inst/Zabha/amomax.h.aq.yaml +1 -5
  572. data/.data/spec/std/isa/inst/Zabha/amomax.h.aqrl.yaml +1 -5
  573. data/.data/spec/std/isa/inst/Zabha/amomax.h.rl.yaml +1 -5
  574. data/.data/spec/std/isa/inst/Zabha/amomax.h.yaml +1 -5
  575. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.aq.yaml +1 -5
  576. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.aqrl.yaml +1 -5
  577. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.rl.yaml +1 -5
  578. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.yaml +1 -5
  579. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.aq.yaml +1 -5
  580. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.aqrl.yaml +1 -5
  581. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.rl.yaml +1 -5
  582. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.yaml +1 -5
  583. data/.data/spec/std/isa/inst/Zabha/amomin.b.aq.yaml +1 -5
  584. data/.data/spec/std/isa/inst/Zabha/amomin.b.aqrl.yaml +1 -5
  585. data/.data/spec/std/isa/inst/Zabha/amomin.b.rl.yaml +1 -5
  586. data/.data/spec/std/isa/inst/Zabha/amomin.b.yaml +1 -5
  587. data/.data/spec/std/isa/inst/Zabha/amomin.h.aq.yaml +1 -5
  588. data/.data/spec/std/isa/inst/Zabha/amomin.h.aqrl.yaml +1 -5
  589. data/.data/spec/std/isa/inst/Zabha/amomin.h.rl.yaml +1 -5
  590. data/.data/spec/std/isa/inst/Zabha/amomin.h.yaml +1 -5
  591. data/.data/spec/std/isa/inst/Zabha/amominu.b.aq.yaml +1 -5
  592. data/.data/spec/std/isa/inst/Zabha/amominu.b.aqrl.yaml +1 -5
  593. data/.data/spec/std/isa/inst/Zabha/amominu.b.rl.yaml +1 -5
  594. data/.data/spec/std/isa/inst/Zabha/amominu.b.yaml +1 -5
  595. data/.data/spec/std/isa/inst/Zabha/amominu.h.aq.yaml +1 -5
  596. data/.data/spec/std/isa/inst/Zabha/amominu.h.aqrl.yaml +1 -5
  597. data/.data/spec/std/isa/inst/Zabha/amominu.h.rl.yaml +1 -5
  598. data/.data/spec/std/isa/inst/Zabha/amominu.h.yaml +1 -5
  599. data/.data/spec/std/isa/inst/Zabha/amoor.b.aq.yaml +1 -5
  600. data/.data/spec/std/isa/inst/Zabha/amoor.b.aqrl.yaml +1 -5
  601. data/.data/spec/std/isa/inst/Zabha/amoor.b.rl.yaml +1 -5
  602. data/.data/spec/std/isa/inst/Zabha/amoor.b.yaml +1 -5
  603. data/.data/spec/std/isa/inst/Zabha/amoor.h.aq.yaml +1 -5
  604. data/.data/spec/std/isa/inst/Zabha/amoor.h.aqrl.yaml +1 -5
  605. data/.data/spec/std/isa/inst/Zabha/amoor.h.rl.yaml +1 -5
  606. data/.data/spec/std/isa/inst/Zabha/amoor.h.yaml +1 -5
  607. data/.data/spec/std/isa/inst/Zabha/amoswap.b.aq.yaml +1 -5
  608. data/.data/spec/std/isa/inst/Zabha/amoswap.b.aqrl.yaml +1 -5
  609. data/.data/spec/std/isa/inst/Zabha/amoswap.b.rl.yaml +1 -5
  610. data/.data/spec/std/isa/inst/Zabha/amoswap.b.yaml +1 -5
  611. data/.data/spec/std/isa/inst/Zabha/amoswap.h.aq.yaml +1 -5
  612. data/.data/spec/std/isa/inst/Zabha/amoswap.h.aqrl.yaml +1 -5
  613. data/.data/spec/std/isa/inst/Zabha/amoswap.h.rl.yaml +1 -5
  614. data/.data/spec/std/isa/inst/Zabha/amoswap.h.yaml +1 -5
  615. data/.data/spec/std/isa/inst/Zabha/amoxor.b.aq.yaml +1 -5
  616. data/.data/spec/std/isa/inst/Zabha/amoxor.b.aqrl.yaml +1 -5
  617. data/.data/spec/std/isa/inst/Zabha/amoxor.b.rl.yaml +1 -5
  618. data/.data/spec/std/isa/inst/Zabha/amoxor.b.yaml +1 -5
  619. data/.data/spec/std/isa/inst/Zabha/amoxor.h.aq.yaml +1 -5
  620. data/.data/spec/std/isa/inst/Zabha/amoxor.h.aqrl.yaml +1 -5
  621. data/.data/spec/std/isa/inst/Zabha/amoxor.h.rl.yaml +1 -5
  622. data/.data/spec/std/isa/inst/Zabha/amoxor.h.yaml +1 -5
  623. data/.data/spec/std/isa/inst/Zalrsc/lr.SIZE.AQRL.layout +1 -11
  624. data/.data/spec/std/isa/inst/Zalrsc/lr.d.aq.yaml +0 -6
  625. data/.data/spec/std/isa/inst/Zalrsc/lr.d.aqrl.yaml +0 -6
  626. data/.data/spec/std/isa/inst/Zalrsc/lr.d.rl.yaml +0 -6
  627. data/.data/spec/std/isa/inst/Zalrsc/lr.d.yaml +0 -6
  628. data/.data/spec/std/isa/inst/Zalrsc/lr.w.aq.yaml +1 -11
  629. data/.data/spec/std/isa/inst/Zalrsc/lr.w.aqrl.yaml +1 -11
  630. data/.data/spec/std/isa/inst/Zalrsc/lr.w.rl.yaml +1 -11
  631. data/.data/spec/std/isa/inst/Zalrsc/lr.w.yaml +1 -11
  632. data/.data/spec/std/isa/inst/Zalrsc/sc.SIZE.AQRL.layout +4 -10
  633. data/.data/spec/std/isa/inst/Zalrsc/sc.d.aq.yaml +4 -10
  634. data/.data/spec/std/isa/inst/Zalrsc/sc.d.aqrl.yaml +4 -10
  635. data/.data/spec/std/isa/inst/Zalrsc/sc.d.rl.yaml +4 -10
  636. data/.data/spec/std/isa/inst/Zalrsc/sc.d.yaml +4 -10
  637. data/.data/spec/std/isa/inst/Zalrsc/sc.w.aq.yaml +4 -10
  638. data/.data/spec/std/isa/inst/Zalrsc/sc.w.aqrl.yaml +4 -10
  639. data/.data/spec/std/isa/inst/Zalrsc/sc.w.rl.yaml +4 -10
  640. data/.data/spec/std/isa/inst/Zalrsc/sc.w.yaml +4 -10
  641. data/.data/spec/std/isa/inst/Zba/add.uw.yaml +0 -4
  642. data/.data/spec/std/isa/inst/Zba/sh1add.uw.yaml +0 -4
  643. data/.data/spec/std/isa/inst/Zba/sh1add.yaml +0 -4
  644. data/.data/spec/std/isa/inst/Zba/sh2add.uw.yaml +0 -4
  645. data/.data/spec/std/isa/inst/Zba/sh2add.yaml +0 -4
  646. data/.data/spec/std/isa/inst/Zba/sh3add.uw.yaml +0 -4
  647. data/.data/spec/std/isa/inst/Zba/sh3add.yaml +0 -4
  648. data/.data/spec/std/isa/inst/Zba/slli.uw.yaml +0 -4
  649. data/.data/spec/std/isa/inst/Zbb/clz.yaml +0 -4
  650. data/.data/spec/std/isa/inst/Zbb/clzw.yaml +0 -4
  651. data/.data/spec/std/isa/inst/Zbb/cpop.yaml +0 -4
  652. data/.data/spec/std/isa/inst/Zbb/cpopw.yaml +0 -4
  653. data/.data/spec/std/isa/inst/Zbb/ctz.yaml +0 -4
  654. data/.data/spec/std/isa/inst/Zbb/ctzw.yaml +0 -4
  655. data/.data/spec/std/isa/inst/Zbb/max.yaml +0 -4
  656. data/.data/spec/std/isa/inst/Zbb/maxu.yaml +0 -4
  657. data/.data/spec/std/isa/inst/Zbb/min.yaml +0 -4
  658. data/.data/spec/std/isa/inst/Zbb/minu.yaml +0 -4
  659. data/.data/spec/std/isa/inst/Zbb/orc.b.yaml +0 -4
  660. data/.data/spec/std/isa/inst/Zbb/sext.b.yaml +0 -4
  661. data/.data/spec/std/isa/inst/Zbb/sext.h.yaml +0 -4
  662. data/.data/spec/std/isa/inst/Zbb/zext.h.yaml +0 -4
  663. data/.data/spec/std/isa/inst/Zbc/clmulr.yaml +0 -4
  664. data/.data/spec/std/isa/inst/{B → Zbkc}/clmul.yaml +1 -7
  665. data/.data/spec/std/isa/inst/{B → Zbkc}/clmulh.yaml +1 -7
  666. data/.data/spec/std/isa/inst/Zbs/bclr.yaml +0 -4
  667. data/.data/spec/std/isa/inst/Zbs/bclri.yaml +0 -4
  668. data/.data/spec/std/isa/inst/Zbs/bext.yaml +0 -4
  669. data/.data/spec/std/isa/inst/Zbs/bexti.yaml +0 -4
  670. data/.data/spec/std/isa/inst/Zbs/binv.yaml +0 -4
  671. data/.data/spec/std/isa/inst/Zbs/binvi.yaml +0 -4
  672. data/.data/spec/std/isa/inst/Zbs/bset.yaml +0 -4
  673. data/.data/spec/std/isa/inst/Zbs/bseti.yaml +0 -4
  674. data/.data/spec/std/isa/inst/Zcb/c.lbu.yaml +2 -2
  675. data/.data/spec/std/isa/inst/Zcb/c.lh.yaml +2 -2
  676. data/.data/spec/std/isa/inst/Zcb/c.lhu.yaml +2 -2
  677. data/.data/spec/std/isa/inst/Zcb/c.mul.yaml +2 -6
  678. data/.data/spec/std/isa/inst/Zcb/c.not.yaml +2 -2
  679. data/.data/spec/std/isa/inst/Zcb/c.sb.yaml +2 -2
  680. data/.data/spec/std/isa/inst/Zcb/c.sext.b.yaml +2 -6
  681. data/.data/spec/std/isa/inst/Zcb/c.sext.h.yaml +2 -6
  682. data/.data/spec/std/isa/inst/Zcb/c.sh.yaml +2 -2
  683. data/.data/spec/std/isa/inst/Zcb/c.zext.b.yaml +2 -2
  684. data/.data/spec/std/isa/inst/Zcb/c.zext.h.yaml +2 -6
  685. data/.data/spec/std/isa/inst/Zcb/c.zext.w.yaml +2 -6
  686. data/.data/spec/std/isa/inst/Zcd/c.fld.yaml +3 -3
  687. data/.data/spec/std/isa/inst/Zcd/c.fldsp.yaml +4 -4
  688. data/.data/spec/std/isa/inst/Zcd/c.fsd.yaml +3 -3
  689. data/.data/spec/std/isa/inst/Zcd/c.fsdsp.yaml +4 -4
  690. data/.data/spec/std/isa/inst/Zcf/c.flw.yaml +3 -3
  691. data/.data/spec/std/isa/inst/Zcf/c.flwsp.yaml +4 -4
  692. data/.data/spec/std/isa/inst/Zcf/c.fsw.yaml +3 -3
  693. data/.data/spec/std/isa/inst/Zcf/c.fswsp.yaml +4 -4
  694. data/.data/spec/std/isa/inst/Zcmp/cm.mva01s.yaml +2 -2
  695. data/.data/spec/std/isa/inst/Zcmp/cm.mvsa01.yaml +2 -2
  696. data/.data/spec/std/isa/inst/Zcmp/cm.pop.yaml +2 -2
  697. data/.data/spec/std/isa/inst/Zcmp/cm.popret.yaml +2 -2
  698. data/.data/spec/std/isa/inst/Zcmp/cm.popretz.yaml +2 -2
  699. data/.data/spec/std/isa/inst/Zcmp/cm.push.yaml +2 -2
  700. data/.data/spec/std/isa/inst/Zfh/fcvt.h.s.yaml +28 -20
  701. data/.data/spec/std/isa/inst/Zfh/fcvt.s.h.yaml +35 -20
  702. data/.data/spec/std/isa/inst/Zicbom/cbo.clean.yaml +2 -2
  703. data/.data/spec/std/isa/inst/Zicbom/cbo.flush.yaml +2 -2
  704. data/.data/spec/std/isa/inst/Zicbom/cbo.inval.yaml +2 -2
  705. data/.data/spec/std/isa/inst/Zicboz/cbo.zero.yaml +2 -2
  706. data/.data/spec/std/isa/inst/Zvabd/vabd.vv.yaml +3 -3
  707. data/.data/spec/std/isa/inst/Zvabd/vabd.vx.yaml +69 -0
  708. data/.data/spec/std/isa/inst/Zvabd/vabdu.vv.yaml +3 -3
  709. data/.data/spec/std/isa/inst/Zvabd/{vabs.v.yaml → vabdu.vx.yaml} +17 -11
  710. data/.data/spec/std/isa/inst/Zvabd/vwabda.vv.yaml +1 -1
  711. data/.data/spec/std/isa/inst/Zvabd/vwabda.vx.yaml +73 -0
  712. data/.data/spec/std/isa/inst/Zvabd/vwabdau.vv.yaml +1 -1
  713. data/.data/spec/std/isa/inst/Zvabd/vwabdau.vx.yaml +74 -0
  714. data/.data/spec/std/isa/inst/Zvfbdota32f/vfbdota.vv.yaml +68 -0
  715. data/.data/spec/std/isa/inst/Zvfbfmin/vfncvtbf16.f.f.w.yaml +3 -1
  716. data/.data/spec/std/isa/inst/Zvfbfmin/vfwcvtbf16.f.f.v.yaml +3 -1
  717. data/.data/spec/std/isa/inst/Zvfofp4min/vfext.vf2.yaml +35 -0
  718. data/.data/spec/std/isa/inst/Zvfofp8min/vfncvt.f.f.q.yaml +31 -0
  719. data/.data/spec/std/isa/inst/Zvfofp8min/vfncvt.sat.f.f.q.yaml +32 -0
  720. data/.data/spec/std/isa/inst/Zvfofp8min/vfncvtbf16.sat.f.f.w.yaml +32 -0
  721. data/.data/spec/std/isa/inst/Zvzip/vpaire.vv.yaml +36 -0
  722. data/.data/spec/std/isa/inst/Zvzip/vpairo.vv.yaml +37 -0
  723. data/.data/spec/std/isa/inst/Zvzip/vunzipe.v.yaml +33 -0
  724. data/.data/spec/std/isa/inst/Zvzip/vunzipo.v.yaml +33 -0
  725. data/.data/spec/std/isa/inst/Zvzip/vzip.vv.yaml +37 -0
  726. data/.data/spec/std/isa/isa/builtin_functions.idl +54 -1
  727. data/.data/spec/std/isa/isa/globals.isa +117 -5
  728. data/.data/spec/std/isa/isa/util.idl +1 -0
  729. data/.data/spec/std/isa/param/COUNTINHIBIT_EN.yaml +2 -10
  730. data/.data/spec/std/isa/param/HCONTEXT_IMPLEMENTED.yaml +29 -0
  731. data/.data/spec/std/isa/param/HCOUNTENABLE_EN.yaml +2 -5
  732. data/.data/spec/std/isa/param/HPM_COUNTER10_WIDTH.yaml +29 -0
  733. data/.data/spec/std/isa/param/HPM_COUNTER11_WIDTH.yaml +29 -0
  734. data/.data/spec/std/isa/param/HPM_COUNTER12_WIDTH.yaml +29 -0
  735. data/.data/spec/std/isa/param/HPM_COUNTER13_WIDTH.yaml +29 -0
  736. data/.data/spec/std/isa/param/HPM_COUNTER14_WIDTH.yaml +29 -0
  737. data/.data/spec/std/isa/param/HPM_COUNTER15_WIDTH.yaml +29 -0
  738. data/.data/spec/std/isa/param/HPM_COUNTER16_WIDTH.yaml +29 -0
  739. data/.data/spec/std/isa/param/HPM_COUNTER17_WIDTH.yaml +29 -0
  740. data/.data/spec/std/isa/param/HPM_COUNTER18_WIDTH.yaml +29 -0
  741. data/.data/spec/std/isa/param/HPM_COUNTER19_WIDTH.yaml +29 -0
  742. data/.data/spec/std/isa/param/HPM_COUNTER20_WIDTH.yaml +29 -0
  743. data/.data/spec/std/isa/param/HPM_COUNTER21_WIDTH.yaml +29 -0
  744. data/.data/spec/std/isa/param/HPM_COUNTER22_WIDTH.yaml +29 -0
  745. data/.data/spec/std/isa/param/HPM_COUNTER23_WIDTH.yaml +29 -0
  746. data/.data/spec/std/isa/param/HPM_COUNTER24_WIDTH.yaml +29 -0
  747. data/.data/spec/std/isa/param/HPM_COUNTER25_WIDTH.yaml +29 -0
  748. data/.data/spec/std/isa/param/HPM_COUNTER26_WIDTH.yaml +29 -0
  749. data/.data/spec/std/isa/param/HPM_COUNTER27_WIDTH.yaml +29 -0
  750. data/.data/spec/std/isa/param/HPM_COUNTER28_WIDTH.yaml +29 -0
  751. data/.data/spec/std/isa/param/HPM_COUNTER29_WIDTH.yaml +29 -0
  752. data/.data/spec/std/isa/param/HPM_COUNTER30_WIDTH.yaml +29 -0
  753. data/.data/spec/std/isa/param/HPM_COUNTER31_WIDTH.yaml +29 -0
  754. data/.data/spec/std/isa/param/HPM_COUNTER3_WIDTH.yaml +29 -0
  755. data/.data/spec/std/isa/param/HPM_COUNTER4_WIDTH.yaml +29 -0
  756. data/.data/spec/std/isa/param/HPM_COUNTER5_WIDTH.yaml +29 -0
  757. data/.data/spec/std/isa/param/HPM_COUNTER6_WIDTH.yaml +29 -0
  758. data/.data/spec/std/isa/param/HPM_COUNTER7_WIDTH.yaml +29 -0
  759. data/.data/spec/std/isa/param/HPM_COUNTER8_WIDTH.yaml +29 -0
  760. data/.data/spec/std/isa/param/HPM_COUNTER9_WIDTH.yaml +29 -0
  761. data/.data/spec/std/isa/param/HPM_COUNTERN_WIDTH.layout +27 -0
  762. data/.data/spec/std/isa/param/HW_MSTATUS_FS_DIRTY_UPDATE.yaml +2 -4
  763. data/.data/spec/std/isa/param/HW_MSTATUS_VS_DIRTY_UPDATE.yaml +2 -4
  764. data/.data/spec/std/isa/param/LRSC_FAIL_ON_NON_EXACT_LRSC.yaml +1 -1
  765. data/.data/spec/std/isa/param/LRSC_FAIL_ON_VA_SYNONYM.yaml +1 -1
  766. data/.data/spec/std/isa/param/LRSC_MISALIGNED_BEHAVIOR.yaml +4 -4
  767. data/.data/spec/std/isa/param/LRSC_RESERVATION_STRATEGY.yaml +1 -1
  768. data/.data/spec/std/isa/param/{MCONTEXT_AVAILABLE.yaml → MCONTEXT_IMPLEMENTED.yaml} +3 -3
  769. data/.data/spec/std/isa/param/MCOUNTENABLE_EN.yaml +2 -5
  770. data/.data/spec/std/isa/param/MEDELEG_DELEGATABLE.yaml +121 -0
  771. data/.data/spec/std/isa/param/MEI_INTR_IMPL.yaml +28 -0
  772. data/.data/spec/std/isa/param/MIDELEG_DELEGATABLE.yaml +177 -0
  773. data/.data/spec/std/isa/param/MSI_INTR_IMPL.yaml +28 -0
  774. data/.data/spec/std/isa/param/MSTATUS_FS_LEGAL_VALUES.yaml +8 -15
  775. data/.data/spec/std/isa/param/MSTATUS_VS_LEGAL_VALUES.yaml +7 -15
  776. data/.data/spec/std/isa/param/MTI_INTR_IMPL.yaml +28 -0
  777. data/.data/spec/std/isa/param/MTVAL_WIDTH.yaml +17 -5
  778. data/.data/spec/std/isa/param/MUTABLE_MISA_A.yaml +1 -1
  779. data/.data/spec/std/isa/param/MUTABLE_MISA_B.yaml +1 -1
  780. data/.data/spec/std/isa/param/MUTABLE_MISA_C.yaml +1 -1
  781. data/.data/spec/std/isa/param/MUTABLE_MISA_D.yaml +1 -1
  782. data/.data/spec/std/isa/param/MUTABLE_MISA_F.yaml +1 -1
  783. data/.data/spec/std/isa/param/MUTABLE_MISA_M.yaml +1 -1
  784. data/.data/spec/std/isa/param/MUTABLE_MISA_Q.yaml +1 -1
  785. data/.data/spec/std/isa/param/MUTABLE_MISA_U.yaml +1 -1
  786. data/.data/spec/std/isa/param/MUTABLE_MISA_V.yaml +1 -1
  787. data/.data/spec/std/isa/param/{HCONTEXT_AVAILABLE.yaml → NON_STANDARD_EXTENSION_IMPLEMENTED.yaml} +5 -7
  788. data/.data/spec/std/isa/param/NUM_EXTERNAL_GUEST_INTERRUPTS.yaml +1 -1
  789. data/.data/spec/std/isa/param/NUM_PMP_ENTRIES.yaml +1 -1
  790. data/.data/spec/std/isa/param/REPORT_CAUSE_IN_MTVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
  791. data/.data/spec/std/isa/param/REPORT_CAUSE_IN_STVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
  792. data/.data/spec/std/isa/param/REPORT_CAUSE_IN_VSTVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
  793. data/.data/spec/std/isa/param/SCONTEXT_IMPLEMENTED.yaml +18 -0
  794. data/.data/spec/std/isa/param/SCOUNTENABLE_EN.yaml +2 -6
  795. data/.data/spec/std/isa/param/SCTRDEPTH_DEPTH_LEGAL_VALUES.yaml +27 -0
  796. data/.data/spec/std/isa/param/SDTRIG_BREAKPOINT_REENTRANCY.yaml +45 -0
  797. data/.data/spec/std/isa/param/SDTRIG_ETRIGGER_SUPPORTED_EXCEPTIONS.yaml +37 -0
  798. data/.data/spec/std/isa/param/SDTRIG_ETRIGGER_SUPPORTED_TRIGGERS.yaml +25 -0
  799. data/.data/spec/std/isa/param/SDTRIG_ICOUNT_COUNT_HARDWIRED_1.yaml +23 -0
  800. data/.data/spec/std/isa/param/SDTRIG_ICOUNT_SELF_WRITE_SETS_PENDING.yaml +23 -0
  801. data/.data/spec/std/isa/param/SDTRIG_ICOUNT_SUPPORTED_TRIGGERS.yaml +25 -0
  802. data/.data/spec/std/isa/param/SDTRIG_ITRIGGER_SUPPORTED_INTERRUPTS.yaml +37 -0
  803. data/.data/spec/std/isa/param/SDTRIG_ITRIGGER_SUPPORTED_TRIGGERS.yaml +25 -0
  804. data/.data/spec/std/isa/param/SDTRIG_MAX_CHAIN_LENGTH.yaml +33 -0
  805. data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_EXECUTE_WRITABLE.yaml +22 -0
  806. data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_LOAD_WRITABLE.yaml +22 -0
  807. data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_MASKMAX6.yaml +26 -0
  808. data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_MATCH_LEGAL_VALUES.yaml +41 -0
  809. data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_SELECT_WRITABLE.yaml +22 -0
  810. data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_SIZE_LEGAL_VALUES.yaml +38 -0
  811. data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_STORE_WRITABLE.yaml +22 -0
  812. data/.data/spec/std/isa/param/SDTRIG_MCONTROL6_SUPPORTED_TRIGGERS.yaml +25 -0
  813. data/.data/spec/std/isa/param/SDTRIG_M_WRITABLE.yaml +17 -0
  814. data/.data/spec/std/isa/param/SDTRIG_NUM_TRIGGERS.yaml +22 -0
  815. data/.data/spec/std/isa/param/SDTRIG_S_WRITABLE.yaml +19 -0
  816. data/.data/spec/std/isa/param/SDTRIG_TEXTRA_MHSELECT_MCONTEXT_MATCH.yaml +24 -0
  817. data/.data/spec/std/isa/param/SDTRIG_TEXTRA_MHSELECT_VMID_MATCH.yaml +23 -0
  818. data/.data/spec/std/isa/param/SDTRIG_TEXTRA_MHVALUE_LEN.yaml +26 -0
  819. data/.data/spec/std/isa/param/SDTRIG_TEXTRA_SSELECT_ASID_MATCH.yaml +23 -0
  820. data/.data/spec/std/isa/param/SDTRIG_TEXTRA_SSELECT_SCONTEXT_MATCH.yaml +26 -0
  821. data/.data/spec/std/isa/param/SDTRIG_TEXTRA_SVALUE_LEN.yaml +26 -0
  822. data/.data/spec/std/isa/param/SDTRIG_U_WRITABLE.yaml +19 -0
  823. data/.data/spec/std/isa/param/SDTRIG_VS_WRITABLE.yaml +19 -0
  824. data/.data/spec/std/isa/param/SDTRIG_VU_WRITABLE.yaml +19 -0
  825. data/.data/spec/std/isa/param/SEI_INTR_IMPL.yaml +28 -0
  826. data/.data/spec/std/isa/param/SSEED_READ_ONLY_ZERO.yaml +28 -0
  827. data/.data/spec/std/isa/param/SSI_INTR_IMPL.yaml +28 -0
  828. data/.data/spec/std/isa/param/STI_INTR_IMPL.yaml +33 -0
  829. data/.data/spec/std/isa/param/STVAL_WIDTH.yaml +81 -0
  830. data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SMMPM.yaml +40 -0
  831. data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SMNPM.yaml +42 -0
  832. data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SSNPM.yaml +42 -0
  833. data/.data/spec/std/isa/param/TCONTROL_IMPLEMENTED.yaml +16 -0
  834. data/.data/spec/std/isa/param/TDATA2_IMPLEMENTED.yaml +26 -0
  835. data/.data/spec/std/isa/param/TDATA3_IMPLEMENTED.yaml +29 -0
  836. data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_S.yaml +1 -1
  837. data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_U.yaml +1 -1
  838. data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_VS.yaml +1 -1
  839. data/.data/spec/std/isa/param/TRAP_ON_SFENCE_VMA_WHEN_SATP_MODE_IS_READ_ONLY.yaml +1 -1
  840. data/.data/spec/std/isa/param/USEED_READ_ONLY_ZERO.yaml +28 -0
  841. data/.data/spec/std/isa/param/WFI_FINITE.yaml +20 -0
  842. data/.data/spec/std/isa/param/WFI_U_MODE.yaml +20 -0
  843. data/.data/spec/std/isa/profile/RVA23p1S64.yaml +37 -0
  844. data/.data/spec/std/isa/profile/RVB23p1S64.yaml +39 -0
  845. data/.data/spec/std/isa/profile_family/RVA.yaml +3 -1
  846. data/.data/spec/std/isa/profile_family/RVB.yaml +3 -1
  847. data/.data/spec/std/isa/profile_release/RVA23p1.yaml +30 -0
  848. data/.data/spec/std/isa/profile_release/RVB23p1.yaml +30 -0
  849. data/lib/udb/Z3_VERSION +1 -1
  850. data/lib/udb/log.rb +16 -0
  851. data/lib/udb/obj/csr.rb +38 -45
  852. data/lib/udb/obj/database_obj.rb +1 -1
  853. data/lib/udb/obj/exception_code.rb +3 -3
  854. data/lib/udb/version.rb +1 -1
  855. metadata +139 -13
  856. data/.data/spec/std/isa/param/PMLEN.yaml +0 -20
@@ -27,9 +27,6 @@ fields:
27
27
  location: 0
28
28
  description: |
29
29
  Indicates support for the `A` (atomic) extension.
30
-
31
- [when,"MUTABLE_MISA_A == true"]
32
- Writing 0 to this field will cause all atomic instructions to raise an `IllegalInstruction` exception.
33
30
  type(): |
34
31
  return (implemented?(ExtensionName::A) && MUTABLE_MISA_A) ? CsrFieldType::RW : CsrFieldType::RO;
35
32
  reset_value(): |
@@ -41,9 +38,6 @@ fields:
41
38
  location: 1
42
39
  description: |
43
40
  Indicates support for the `B` (bitmanip) extension.
44
-
45
- [when,"MUTABLE_MISA_B == true"]
46
- Writing 0 to this field will cause all bitmanip instructions to raise an `IllegalInstruction` exception.
47
41
  type(): |
48
42
  return (implemented?(ExtensionName::B) && MUTABLE_MISA_B) ? CsrFieldType::RW : CsrFieldType::RO;
49
43
  reset_value(): |
@@ -109,25 +103,6 @@ fields:
109
103
 
110
104
  # fall-through; write the intended value
111
105
  return csr_value.F;
112
- G:
113
- location: 6
114
- description: |
115
- Indicates support for all of the following extensions: `I`, `A`, `M`, `F`, `D`.
116
- type(): |
117
- if ((implemented?(ExtensionName::A) && MUTABLE_MISA_A) ||
118
- (implemented?(ExtensionName::M) && MUTABLE_MISA_M) ||
119
- (implemented?(ExtensionName::F) && MUTABLE_MISA_F) ||
120
- (implemented?(ExtensionName::D) && MUTABLE_MISA_D)) {
121
- return CsrFieldType::ROH;
122
- } else {
123
- return CsrFieldType::RO;
124
- }
125
- reset_value(): |
126
- return (
127
- implemented?(ExtensionName::A) &&
128
- implemented?(ExtensionName::M) &&
129
- implemented?(ExtensionName::F) &&
130
- implemented?(ExtensionName::D)) ? 1 : 0;
131
106
  H:
132
107
  location: 7
133
108
  description: |
@@ -157,7 +132,9 @@ fields:
157
132
  Indicates support for the `M` (integer multiply/divide) extension.
158
133
 
159
134
  [when,"MUTABLE_MISA_M == true"]
160
- Writing 0 to this field will cause all attempts to execute an integer multiply or divide instruction to raise an `IllegalInstruction` exception.
135
+ Writing 0 to this field will cause all attempts to execute an integer divide or
136
+ remainder instruction to raise an `IllegalInstruction` exception. The multiply
137
+ instructions are provided by `Zmmul` and are unaffected.
161
138
  type(): |
162
139
  return (implemented?(ExtensionName::M) && MUTABLE_MISA_M) ? CsrFieldType::RW : CsrFieldType::RO;
163
140
  reset_value(): |
@@ -229,18 +206,25 @@ fields:
229
206
  definedBy:
230
207
  extension:
231
208
  name: Zvl32b
209
+ X:
210
+ location: 23
211
+ description: |
212
+ The `X` bit will be set if there are any non-standard extensions.
213
+ type: RO
214
+ reset_value(): |
215
+ return NON_STANDARD_EXTENSION_IMPLEMENTED ? 1 : 0;
232
216
  sw_read(): |
233
217
  return (
234
218
  (CSR[misa].MXL `<< (xlen() - 2)) |
219
+ (CSR[misa].X `<< 23) |
235
220
  (CSR[misa].V `<< 21) |
236
221
  (CSR[misa].U `<< 20) |
237
222
  (CSR[misa].S `<< 18) |
238
223
  (CSR[misa].Q `<< 16) |
239
224
  (CSR[misa].M `<< 12) |
240
- (CSR[misa].I `<< 7) |
241
- (CSR[misa].H `<< 6) |
242
- ((CSR[misa].A & CSR[misa].M & CSR[misa].F & CSR[misa].D) `<< 5) | # 'G'
243
- (CSR[misa].F `<< 4) |
225
+ (CSR[misa].I `<< 8) |
226
+ (CSR[misa].H `<< 7) |
227
+ (CSR[misa].F `<< 5) |
244
228
  (CSR[misa].D `<< 3) |
245
229
  (CSR[misa].C `<< 2) |
246
230
  (CSR[misa].B `<< 1) |
@@ -22,4 +22,30 @@ definedBy:
22
22
  - name: Smmpm
23
23
  - name: Zicfilp
24
24
  - name: Smepmp
25
- fields: {}
25
+ fields:
26
+ USEED:
27
+ location: 8
28
+ description: |
29
+ Controls access to the `seed` CSR from U-mode.
30
+ definedBy:
31
+ extension:
32
+ allOf:
33
+ - name: Zkr
34
+ - name: U
35
+ type(): |
36
+ return USEED_READ_ONLY_ZERO ? CsrFieldType::RO : CsrFieldType::RW;
37
+ reset_value(): |
38
+ return USEED_READ_ONLY_ZERO ? 0 : UNDEFINED_LEGAL;
39
+ SSEED:
40
+ location: 9
41
+ description: |
42
+ Controls access to the `seed` CSR from S-mode and VS-mode.
43
+ definedBy:
44
+ extension:
45
+ allOf:
46
+ - name: Zkr
47
+ - name: S
48
+ type(): |
49
+ return SSEED_READ_ONLY_ZERO ? CsrFieldType::RO : CsrFieldType::RW;
50
+ reset_value(): |
51
+ return SSEED_READ_ONLY_ZERO ? 0 : UNDEFINED_LEGAL;
@@ -40,9 +40,9 @@ fields:
40
40
  # this is read-only if FS and VS are both read-only
41
41
  # otherwise, it is read-only with hardware update
42
42
 
43
- if (implemented?(ExtensionName::F) && (HW_MSTATUS_FS_DIRTY_UPDATE != "never")) {
43
+ if (implemented?(ExtensionName::F)) {
44
44
  return CsrFieldType::ROH;
45
- } else if (implemented?(ExtensionName::V) && (HW_MSTATUS_VS_DIRTY_UPDATE != "never")) {
45
+ } else if (implemented?(ExtensionName::V)) {
46
46
  return CsrFieldType::ROH;
47
47
  } else {
48
48
  return CsrFieldType::RO;
@@ -607,7 +607,10 @@ fields:
607
607
  extension:
608
608
  name: S
609
609
  reset_value(): |
610
- return (CSR[misa].S == 1'b1) ? UNDEFINED_LEGAL : 0;
610
+ if (CSR[misa].S == 1'b1) {
611
+ return UNDEFINED_LEGAL;
612
+ }
613
+ return 0;
611
614
  MIE:
612
615
  location: 3
613
616
  long_name: M-mode Interrupt Enable
@@ -644,4 +647,7 @@ fields:
644
647
  extension:
645
648
  name: S
646
649
  reset_value(): |
647
- return (CSR[misa].S == 1'b1) ? UNDEFINED_LEGAL : 0;
650
+ if (CSR[misa].S == 1'b1) {
651
+ return UNDEFINED_LEGAL;
652
+ }
653
+ return 0;
@@ -53,7 +53,7 @@ Privilege Mode::
53
53
  |===
54
54
  | *key* | priv_mode
55
55
  | *value type* | one of ["M", "S", "U", or "VS"]
56
- | *description* | The least-privilege mode that can access this CSR
56
+ | *description* | The least-privilege mode that can access this CSR. For an indirect CSR, this also identifies the target indirect CSR address space.
57
57
  |===
58
58
 
59
59
  Length::
@@ -72,12 +72,12 @@ Indirect::
72
72
  | *key* | indirect
73
73
  | *value type* | Boolean
74
74
  | *default* | false
75
- | *description* | Whether or not the CSR is accessible through the indirect CSRs of the `Smcdrind`/`Sscdrind` extensions.
75
+ | *description* | Whether or not the CSR is accessible through the indirect CSRs of the `Smcsrind`/`Sscsrind` extensions.
76
76
  |===
77
77
 
78
78
  Address::
79
79
 
80
- [IMPORTANT] `address` is a required key *unless* the CSR is only accessible through the indirect registers of the `Smcsrind`/`Sscrind` extensions, in which case `indirect_address` is required. Both `address` and `indirect_address` may be specified when a CSR is accessible directly and indirectly.
80
+ [IMPORTANT] `address` is a required key *unless* the CSR is only accessible through the indirect registers of the `Smcsrind`/`Sscsrind` extensions, in which case `indirect_address` is required. Both `address` and `indirect_address` may be specified when a CSR is accessible directly and indirectly.
81
81
 
82
82
  |===
83
83
  | *key* | address
@@ -88,7 +88,13 @@ Address::
88
88
  |===
89
89
  | *key* | indirect_address
90
90
  | *value type* | Integer
91
- | *description* | Indirect sddress of the CSR, as given to the indirect CSRs of the `Smcsrind`/`Sscdrind` extensions
91
+ | *description* | Indirect address of the CSR, as given to the indirect CSRs of the `Smcsrind`/`Sscsrind` extensions
92
+ |===
93
+
94
+ |===
95
+ | *key* | indirect_slot
96
+ | *value type* | Integer between 1-6
97
+ | *description* | Indirect window slot of the CSR, corresponding to its appearance in *ireg<slot>
92
98
  |===
93
99
 
94
100
  Virtual Address::
@@ -18,10 +18,14 @@ description: |
18
18
  with a hypervisor that does not swap `scontext`.
19
19
 
20
20
  definedBy:
21
- extension:
22
- allOf:
23
- - name: Sdtrig
24
- - name: S
21
+ allOf:
22
+ - extension:
23
+ name: Sdtrig
24
+ - extension:
25
+ name: S
26
+ - param:
27
+ name: SCONTEXT_IMPLEMENTED
28
+ equal: true
25
29
  fields:
26
30
  DATA:
27
31
  location: 31-0
@@ -88,17 +88,12 @@ fields:
88
88
  description: |
89
89
  *Cache Block Invalidate instruction Enable*
90
90
 
91
- This field has restricted values based on the value of `menvcfg.CBIE`.
92
- When an invalid value is written, it is ignored and the field remains unchanged.
91
+ The legal values of this field do not depend on `menvcfg.CBIE`.
92
+ When the reserved value `10` is written, it is ignored and the field remains unchanged.
93
93
 
94
- [separator="!",%autowidth,cols=",.>"]
95
- !===
96
- ! [.rotate]#`menvcfg.CBIE`# ! Valid values of `senvcfg.CBIE`
97
-
98
- ! 00 ! 00
99
- ! 01 ! 00, 01
100
- ! 11 ! 00, 01, 11
101
- !===
94
+ Execution of `cbo.inval` in U-mode is enabled only if it is also enabled in S-mode
95
+ by `menvcfg.CBIE`. If `menvcfg.CBIE` is `01`, an enabled `cbo.inval` performs a
96
+ flush operation in U-mode even if `senvcfg.CBIE` is `11`.
102
97
 
103
98
  Controls execution of the cache block invalidate instruction, `cbo.inval`,
104
99
  in U-mode
@@ -120,9 +115,8 @@ fields:
120
115
  sw_write(csr_value): |
121
116
  if (csr_value.CBIE == 0 || csr_value.CBIE == 1 || csr_value.CBIE == 3) {
122
117
  return csr_value.CBIE;
123
- } else {
124
- return UNDEFINED_LEGAL_DETERMINISTIC;
125
118
  }
119
+ return CSR[senvcfg].CBIE;
126
120
  reset_value: UNDEFINED_LEGAL
127
121
  UKTE:
128
122
  location: 8
@@ -9,7 +9,7 @@ name: sstateen0
9
9
  long_name: Supervisor State Enable 0 Register
10
10
  address: 0x10C
11
11
  priv_mode: S
12
- length: MXLEN
12
+ length: 64
13
13
  writable: true
14
14
  description: |
15
15
  Each bit of a `stateen` CSR controls less-privileged access to an extension’s state,
@@ -9,7 +9,7 @@ name: sstateen1
9
9
  long_name: Supervisor State Enable 1 Register
10
10
  address: 0x10D
11
11
  priv_mode: S
12
- length: MXLEN
12
+ length: 64
13
13
  writable: true
14
14
  description: |
15
15
  Each bit of a `stateen` CSR controls less-privileged access to an extension’s state,
@@ -61,8 +61,7 @@ definedBy:
61
61
 
62
62
  fields:
63
63
  DATA:
64
- location_rv64: 63-0
65
- location_rv32: 31-0
64
+ location: 31-0
66
65
  description: Data value
67
66
  type: RW
68
67
  sw_write(csr_value): |
@@ -9,7 +9,7 @@ name: sstateen2
9
9
  long_name: Supervisor State Enable 2 Register
10
10
  address: 0x10E
11
11
  priv_mode: S
12
- length: MXLEN
12
+ length: 64
13
13
  writable: true
14
14
  description: |
15
15
  Each bit of a `stateen` CSR controls less-privileged access to an extension’s state,
@@ -61,8 +61,7 @@ definedBy:
61
61
 
62
62
  fields:
63
63
  DATA:
64
- location_rv64: 63-0
65
- location_rv32: 31-0
64
+ location: 31-0
66
65
  description: Data value
67
66
  type: RW
68
67
  sw_write(csr_value): |
@@ -9,7 +9,7 @@ name: sstateen3
9
9
  long_name: Supervisor State Enable 3 Register
10
10
  address: 0x10F
11
11
  priv_mode: S
12
- length: MXLEN
12
+ length: 64
13
13
  writable: true
14
14
  description: |
15
15
  Each bit of a `stateen` CSR controls less-privileged access to an extension’s state,
@@ -61,8 +61,7 @@ definedBy:
61
61
 
62
62
  fields:
63
63
  DATA:
64
- location_rv64: 63-0
65
- location_rv32: 31-0
64
+ location: 31-0
66
65
  description: Data value
67
66
  type: RW
68
67
  sw_write(csr_value): |
@@ -0,0 +1,41 @@
1
+ # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+ # yaml-language-server: $schema=../../../schemas/csr_schema.json
4
+ $schema: "csr_schema.json#"
5
+ kind: csr
6
+ name: tcontrol
7
+ long_name: Trigger Control
8
+ address: 0x7A5
9
+ priv_mode: M
10
+ length: XLEN
11
+ writable: true
12
+ description: |
13
+ This optional register is only accessible in M-mode and Debug Mode and provides
14
+ various control bits related to triggers.
15
+ definedBy:
16
+ allOf:
17
+ - extension:
18
+ name: Sdtrig
19
+ - param:
20
+ name: TCONTROL_IMPLEMENTED
21
+ equal: true
22
+ fields:
23
+ MPTE:
24
+ location: 7
25
+ description: |
26
+ M-mode previous trigger enable field.
27
+ MPTE and MTE provide one solution to a problem regarding triggers with action=0
28
+ firing in M-mode trap handlers.
29
+ When any trap into M-mode is taken, MPTE is set to the value of MTE.
30
+ type: RW-H
31
+ reset_value: 0
32
+ MTE:
33
+ location: 3
34
+ description: |
35
+ M-mode trigger enable field.
36
+ 0 (disabled):: Triggers with action=0 do not match/fire while the hart is in M-mode.
37
+ 1 (enabled):: Triggers do match/fire while the hart is in M-mode.
38
+ When any trap into M-mode is taken, MTE is set to 0. When `mret` is executed, MTE is
39
+ set to the value of MPTE.
40
+ type: RW-H
41
+ reset_value: 0
@@ -21,8 +21,12 @@ description: |
21
21
  If XLEN is less than DXLEN, writes to this register are sign-extended.
22
22
 
23
23
  definedBy:
24
- extension:
25
- name: Sdtrig
24
+ allOf:
25
+ - extension:
26
+ name: Sdtrig
27
+ - param:
28
+ name: TDATA2_IMPLEMENTED
29
+ equal: true
26
30
  fields:
27
31
  DATA:
28
32
  location_rv32: 31-0
@@ -21,8 +21,12 @@ description: |
21
21
  If XLEN is less than DXLEN, writes to this register are sign-extended.
22
22
 
23
23
  definedBy:
24
- extension:
25
- name: Sdtrig
24
+ allOf:
25
+ - extension:
26
+ name: Sdtrig
27
+ - param:
28
+ name: TDATA3_IMPLEMENTED
29
+ equal: true
26
30
  fields:
27
31
  DATA:
28
32
  location_rv32: 31-0
@@ -0,0 +1,44 @@
1
+ # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+ # yaml-language-server: $schema=../../../schemas/csr_schema.json
4
+ $schema: "csr_schema.json#"
5
+ kind: csr
6
+ name: tinfo
7
+ long_name: Trigger Info
8
+ address: 0x7A4
9
+ priv_mode: M
10
+ length: XLEN
11
+ writable: true
12
+ description: |
13
+ This register provides access to the trigger selected by `tselect`.
14
+ The reset values listed here apply to every underlying trigger.
15
+
16
+ This register is optional if no triggers are implemented, or if `type` is not writable
17
+ and `version` would be 0. In this case the debugger can read the only supported type
18
+ from `tdata1`.
19
+
20
+ Writing this read/write CSR has no effect.
21
+ definedBy:
22
+ extension:
23
+ name: Sdtrig
24
+ fields:
25
+ VERSION:
26
+ location: 31-24
27
+ description: |
28
+ Contains the version of the Sdtrig extension implemented.
29
+
30
+ 0 (0):: Supports triggers as described in this spec at commit 5a5c078, made on
31
+ February 2, 2023.
32
+
33
+ 1 (1):: Supports triggers as described in the ratified version 1.0 of this document.
34
+ type: RO
35
+ reset_value: UNDEFINED_LEGAL
36
+ TYPES:
37
+ location: 15-0
38
+ description: |
39
+ One bit for each possible `type` enumerated in `tdata1`. Bit N corresponds to type N.
40
+ If the bit is set, then that type is supported by the currently selected trigger.
41
+
42
+ If the currently selected trigger doesn't exist, this field contains 1.
43
+ type: RO
44
+ reset_value: UNDEFINED_LEGAL
@@ -6,9 +6,65 @@
6
6
  $schema: "ext_schema.json#"
7
7
  kind: extension
8
8
  name: Sdext
9
- long_name: Debug
9
+ long_name: External debug support
10
10
  description: |
11
- Hart-visible portion of the debug spec.
11
+ Sdext is the hart-visible portion of the RISC-V Debug Specification. It
12
+ defines Debug Mode, the `dret` instruction, and the `dcsr`, `dpc`,
13
+ `dscratch0`, and `dscratch1` CSRs that allow an external debugger (via the
14
+ Debug Module) to halt, inspect, and resume a hart.
15
+
16
+ *Debug Mode*
17
+
18
+ Debug Mode is a special processor mode used only when a hart is halted for
19
+ external debugging. While in Debug Mode:
20
+
21
+ * All operations are executed with machine-mode privilege, except that
22
+ `mstatus.MPRV` is ignored unless `dcsr.MPRVEN` is set.
23
+ * Interrupts (including NMI) are not taken.
24
+ * Exceptions do not update any registers (including `mcause`, `mepc`, and
25
+ `mtval`); the hart instead returns to the Debug Module's park loop.
26
+ * Triggers do not fire.
27
+ * Counters and `time` may be stopped, as controlled by `dcsr.STOPCOUNT` and
28
+ `dcsr.STOPTIME`.
29
+ * The debug CSRs (`dcsr`, `dpc`, `dscratch0`, `dscratch1`) are accessible.
30
+ Accessing them outside of Debug Mode raises an Illegal Instruction
31
+ exception.
32
+
33
+ *Halting*
34
+
35
+ A hart enters Debug Mode (halts) in response to a halt request from the
36
+ debugger, a halt-on-reset request, an `ebreak` executed in a mode whose
37
+ `dcsr.EBREAK*` bit is set, a trigger with `action`=1, completion of a
38
+ single step, membership in a halt group, or (with Smdbltrp and
39
+ `dcsr.CETRIG`=1) a critical error. On entry:
40
+
41
+ . `dcsr.CAUSE` (and, where applicable, `dcsr.EXTCAUSE`) records why Debug
42
+ Mode was entered.
43
+ . `dcsr.PRV` and `dcsr.V` record the privilege and virtualization mode the
44
+ hart was in.
45
+ . `dpc` records the virtual address of the next instruction that would have
46
+ executed.
47
+ . If Zicfilp is implemented, `dcsr.PELP` records the current `ELP` state and
48
+ `ELP` is set to `NO_LP_EXPECTED`.
49
+
50
+ *Resuming*
51
+
52
+ The debugger resumes the hart by having it execute `dret` from Debug Mode.
53
+ On resume, the PC is set to `dpc`, the privilege and virtualization mode
54
+ are restored from `dcsr.PRV` and `dcsr.V`, `mstatus.MPRV` (and, with
55
+ Smdbltrp/Ssdbltrp, the double-trap bits) are cleared when returning to a
56
+ less-privileged mode, `ELP` is restored from `dcsr.PELP` when Zicfilp is
57
+ implemented, and the hart leaves Debug Mode. A debugger may write `dcsr`
58
+ and `dpc` before resuming to change where and in what mode execution
59
+ continues.
60
+
61
+ *Single step*
62
+
63
+ When `dcsr.STEP` is set and the hart resumes, it executes exactly one
64
+ instruction and then re-enters Debug Mode with `dcsr.CAUSE` = 4 (step). If
65
+ that instruction takes an exception, the hart enters Debug Mode
66
+ immediately after the PC is updated to the trap handler. `dcsr.STEPIE`
67
+ controls whether interrupts may be taken while single stepping.
12
68
  type: privileged
13
69
  versions:
14
70
  - version: "1.0.0"
@@ -62,8 +62,8 @@ versions:
62
62
  `pc` to `__x__tval`.
63
63
  - Specified relaxed constraints for implicit reads of non-idempotent regions.
64
64
  - version: "1.13.0"
65
- state: frozen
66
- ratification_date: 2023-12
65
+ state: ratified
66
+ ratification_date: 2024-10
67
67
  changes:
68
68
  - Redefined `misa`.MXL to be read-only, making MXLEN a constant.
69
69
  - Defined the `misa`.B field to reflect that the B extension has been
@@ -38,3 +38,10 @@ versions:
38
38
  company: Ventana Microsystems
39
39
  - name: John Hauser
40
40
  email: jh.riscv@jhauser.us
41
+ requirements:
42
+ extension:
43
+ allOf:
44
+ - name: Ssccfg
45
+ version: ~> 1.0
46
+ - name: Sscsrind
47
+ version: ~> 1.0
@@ -51,7 +51,7 @@ requirements:
51
51
  extension:
52
52
  allOf:
53
53
  - name: S
54
- version: ~> 1.13 # The latest ratified version of S when Sscntr was ratified
54
+ version: ~> 1.13 # The latest ratified version of S when Ssctr was ratified
55
55
  - name: Smcsrind
56
56
  version: ~> 1.0
57
57
  - name: Ssctr
@@ -14,3 +14,11 @@ versions:
14
14
  - version: "1.0.0"
15
15
  state: ratified
16
16
  ratification_date: 2024-10
17
+ requirements:
18
+ allOf:
19
+ - param:
20
+ name: MXLEN
21
+ equal: 64
22
+ - extension:
23
+ name: Sm
24
+ version: ">= 1.12"
@@ -15,3 +15,22 @@ versions:
15
15
  - version: "1.0.0"
16
16
  state: ratified
17
17
  ratification_date: 2024-10
18
+ requirements:
19
+ allOf:
20
+ - extension:
21
+ name: U
22
+ - if:
23
+ extension:
24
+ name: S
25
+ then:
26
+ param:
27
+ name: SXLEN
28
+ includes: 64
29
+ - if:
30
+ not:
31
+ extension:
32
+ name: S
33
+ then:
34
+ param:
35
+ name: UXLEN
36
+ includes: 64
@@ -0,0 +1,33 @@
1
+ # Copyright (c) Shanghai Jiao Tong University
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+
4
+ # yaml-language-server: $schema=../../../schemas/ext_schema.json
5
+
6
+ $schema: "ext_schema.json#"
7
+ kind: extension
8
+ name: Smpmpdeleg
9
+ type: privileged
10
+ long_name: Machine PMP Delegation to SPMP
11
+ description: |
12
+ The Smpmpdeleg extension provides the mpmpdeleg CSR, which controls how many
13
+ PMP entries are delegated to SPMP.
14
+
15
+ The mpmpdeleg CSR contains a pmpnum field in bits [6:0]. Let max_pmp be the
16
+ implementation's total number of PMP entries. Entries 0 through pmpnum-1
17
+ remain as PMP entries, while entries pmpnum through max_pmp-1 are delegated
18
+ to SPMP.
19
+
20
+ When pmpnum = 0, all entries are delegated to SPMP.
21
+ When pmpnum = max_pmp, no entries are delegated to SPMP.
22
+
23
+ Writes to SPMP CSRs are ignored when no entries are delegated to SPMP.
24
+ versions:
25
+ - version: "1.0.0"
26
+ state: ratified
27
+ ratification_date: 2026-08
28
+ url: "https://github.com/riscv/riscv-spmp/tree/v1.0"
29
+ requirements:
30
+ extension:
31
+ allOf:
32
+ - name: S
33
+ - name: Smcsrind
@@ -14,3 +14,10 @@ versions:
14
14
  state: ratified
15
15
  ratification_date: 2024-03
16
16
  url: https://docs.google.com/document/d/1s-GeH5XpHBLzbQZucA8DPA7vvF7Xvf_nrPbrU2YLBcE/edit#heading=h.yyrgtolcaczx
17
+ requirements:
18
+ extension:
19
+ allOf:
20
+ - name: Smcdeleg
21
+ version: ~> 1.0
22
+ - name: Sscsrind
23
+ version: ~> 1.0
@@ -18,6 +18,6 @@ requirements:
18
18
  extension:
19
19
  allOf:
20
20
  - name: S
21
- version: ~> 1.13 # The latest ratified version of S when Sscntr was ratified
21
+ version: ~> 1.13 # The latest ratified version of S when Ssctr was ratified
22
22
  - name: Sscsrind
23
23
  version: ~> 1.0
@@ -15,3 +15,11 @@ versions:
15
15
  - version: "1.0.0"
16
16
  state: ratified
17
17
  ratification_date: 2024-10
18
+ requirements:
19
+ allOf:
20
+ - extension:
21
+ name: S
22
+ version: ">= 1.12"
23
+ - param:
24
+ name: UXLEN
25
+ includes: 64