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
@@ -11,7 +11,9 @@ description: |
11
11
  Converts each single-precision floating-point element in vector register vs2 to BFloat16 format, storing results in vector register vd according to mask vm. This is a narrowing conversion that compresses 32-bit single-precision values to 16-bit BFloat16 values.
12
12
  definedBy:
13
13
  extension:
14
- name: Zvfbfmin
14
+ anyOf:
15
+ - name: Zvfbfmin
16
+ - name: Zvfofp8min
15
17
  assembly: vd, vs2, vm
16
18
  encoding:
17
19
  match: 010010------11101001-----1010111
@@ -11,7 +11,9 @@ description: |
11
11
  Converts each BFloat16 element in vector register vs2 to single-precision floating-point format, storing results in vector register vd according to mask vm. This is a widening conversion that expands 16-bit BFloat16 values to 32-bit single-precision values.
12
12
  definedBy:
13
13
  extension:
14
- name: Zvfbfmin
14
+ anyOf:
15
+ - name: Zvfbfmin
16
+ - name: Zvfofp8min
15
17
  assembly: vd, vs2, vm
16
18
  encoding:
17
19
  match: 010010------01101001-----1010111
@@ -0,0 +1,35 @@
1
+ # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+ # yaml-language-server: $schema=../../../../schemas/inst_schema.json
4
+ $schema: "inst_schema.json#"
5
+ kind: instruction
6
+ name: vfext.vf2
7
+ long_name: Vector OFP4 to OFP8 widening conversion
8
+ description: |
9
+ Converts a vector of OFP4 E2M1 values in vector register vs2 (EEW=4,
10
+ EMUL=LMUL/2) to a vector of OFP8 E4M3 values in vector register vd
11
+ (EEW=8, EMUL=LMUL), according to mask vm. Defined only for SEW=8,
12
+ altfmt=0, and LMUL >= 1/4. No rounding occurs, and no floating-point
13
+ exception flags are set. This instruction does not access the fcsr
14
+ and is not considered a floating-point instruction for the purposes
15
+ of the floating-point context status (FS) setting.
16
+ definedBy:
17
+ extension:
18
+ name: Zvfofp4min
19
+ assembly: vd, vs2, vm
20
+ encoding:
21
+ match: "010010------10110010-----1010111"
22
+ variables:
23
+ - name: vm
24
+ location: 25-25
25
+ - name: vs2
26
+ location: 24-20
27
+ - name: vd
28
+ location: 11-7
29
+ access:
30
+ s: always
31
+ u: always
32
+ vs: always
33
+ vu: always
34
+ data_independent_timing: false
35
+ operation(): |
@@ -0,0 +1,31 @@
1
+ # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+ # yaml-language-server: $schema=../../../../schemas/inst_schema.json
4
+ $schema: "inst_schema.json#"
5
+ kind: instruction
6
+ name: vfncvt.f.f.q
7
+ long_name: Vector floating-point FP32 conversion to OFP8
8
+ description: |
9
+ Converts FP32 floating-point elements in vector register vs2 to OFP8
10
+ elements and stores the results in vector register vd according to mask vm.
11
+ Results are rounded using the dynamic floating-point rounding mode.
12
+ definedBy:
13
+ extension:
14
+ name: Zvfofp8min
15
+ assembly: vd, vs2, vm
16
+ encoding:
17
+ match: 010010------11001001-----1010111
18
+ variables:
19
+ - name: vm
20
+ location: 25-25
21
+ - name: vs2
22
+ location: 24-20
23
+ - name: vd
24
+ location: 11-7
25
+ access:
26
+ s: always
27
+ u: always
28
+ vs: always
29
+ vu: always
30
+ data_independent_timing: false
31
+ operation(): |
@@ -0,0 +1,32 @@
1
+ # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+ # yaml-language-server: $schema=../../../../schemas/inst_schema.json
4
+ $schema: "inst_schema.json#"
5
+ kind: instruction
6
+ name: vfncvt.sat.f.f.q
7
+ long_name: Vector floating-point FP32 saturating conversion to OFP8
8
+ description: |
9
+ Converts FP32 floating-point elements in vector register vs2 to OFP8
10
+ elements and stores the results in vector register vd according to mask vm.
11
+ Infinite results are converted to the maximum-magnitude finite value of the
12
+ same sign.
13
+ definedBy:
14
+ extension:
15
+ name: Zvfofp8min
16
+ assembly: vd, vs2, vm
17
+ encoding:
18
+ match: 010010------11011001-----1010111
19
+ variables:
20
+ - name: vm
21
+ location: 25-25
22
+ - name: vs2
23
+ location: 24-20
24
+ - name: vd
25
+ location: 11-7
26
+ access:
27
+ s: always
28
+ u: always
29
+ vs: always
30
+ vu: always
31
+ data_independent_timing: false
32
+ operation(): |
@@ -0,0 +1,32 @@
1
+ # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+ # yaml-language-server: $schema=../../../../schemas/inst_schema.json
4
+ $schema: "inst_schema.json#"
5
+ kind: instruction
6
+ name: vfncvtbf16.sat.f.f.w
7
+ long_name: Vector saturating narrowing BFloat16 to OFP8 conversion
8
+ description: |
9
+ Converts BFloat16 floating-point elements in vector register vs2 to OFP8
10
+ elements and stores the results in vector register vd according to mask vm.
11
+ Infinite results are converted to the maximum-magnitude finite value of the
12
+ same sign.
13
+ definedBy:
14
+ extension:
15
+ name: Zvfofp8min
16
+ assembly: vd, vs2, vm
17
+ encoding:
18
+ match: 010010------11111001-----1010111
19
+ variables:
20
+ - name: vm
21
+ location: 25-25
22
+ - name: vs2
23
+ location: 24-20
24
+ - name: vd
25
+ location: 11-7
26
+ access:
27
+ s: always
28
+ u: always
29
+ vs: always
30
+ vu: always
31
+ data_independent_timing: false
32
+ operation(): |
@@ -0,0 +1,36 @@
1
+ # Copyright (c) 2026 Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+ # yaml-language-server: $schema=../../../../schemas/inst_schema.json
4
+ $schema: "inst_schema.json#"
5
+ kind: instruction
6
+ name: vpaire.vv
7
+ long_name: Vector pair even
8
+ description: |
9
+ Interleaves even-indexed elements of two source vector register groups into
10
+ the destination. All operands have EMUL=LMUL. For destination index `i`,
11
+ even indices read `vs2[i]` and odd indices read `vs1[i-1]`, producing
12
+ `[vs2[0], vs1[0], vs2[2], vs1[2], ...]`. Standard vector masking,
13
+ prestart, inactive, and tail handling applies. The destination may not
14
+ overlap either source group.
15
+ definedBy:
16
+ extension:
17
+ name: Zvzip
18
+ assembly: vd, vs2, vs1, vm
19
+ encoding:
20
+ match: 001111-----------000-----1010111
21
+ variables:
22
+ - name: vm
23
+ location: 25
24
+ - name: vs2
25
+ location: 24-20
26
+ - name: vs1
27
+ location: 19-15
28
+ - name: vd
29
+ location: 11-7
30
+ access:
31
+ s: always
32
+ u: always
33
+ vs: always
34
+ vu: always
35
+ data_independent_timing: true
36
+ operation(): |
@@ -0,0 +1,37 @@
1
+ # Copyright (c) 2026 Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+ # yaml-language-server: $schema=../../../../schemas/inst_schema.json
4
+ $schema: "inst_schema.json#"
5
+ kind: instruction
6
+ name: vpairo.vv
7
+ long_name: Vector pair odd
8
+ description: |
9
+ Interleaves odd-indexed elements of two source vector register groups into
10
+ the destination. All operands have EMUL=LMUL. For destination index `i`,
11
+ even indices read `vs2[i+1]` and odd indices read `vs1[i]`, producing
12
+ `[vs2[1], vs1[1], vs2[3], vs1[3], ...]`. When `vl` is odd, the final
13
+ out-of-range source position contributes zero; no source at or above `vl`
14
+ is read. Standard vector masking, prestart, inactive, and tail handling
15
+ applies. The destination may not overlap either source group.
16
+ definedBy:
17
+ extension:
18
+ name: Zvzip
19
+ assembly: vd, vs2, vs1, vm
20
+ encoding:
21
+ match: 001111-----------010-----1010111
22
+ variables:
23
+ - name: vm
24
+ location: 25
25
+ - name: vs2
26
+ location: 24-20
27
+ - name: vs1
28
+ location: 19-15
29
+ - name: vd
30
+ location: 11-7
31
+ access:
32
+ s: always
33
+ u: always
34
+ vs: always
35
+ vu: always
36
+ data_independent_timing: true
37
+ operation(): |
@@ -0,0 +1,33 @@
1
+ # Copyright (c) 2026 Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+ # yaml-language-server: $schema=../../../../schemas/inst_schema.json
4
+ $schema: "inst_schema.json#"
5
+ kind: instruction
6
+ name: vunzipe.v
7
+ long_name: Vector unzip even
8
+ description: |
9
+ Extracts even-indexed elements from source vector register group `vs2`,
10
+ with EMUL=2*LMUL, into destination `vd`, with EMUL=LMUL. For `0 <= i < vl`,
11
+ `vd[i] = vs2[2*i]`; source indices below `2*vl` may be read. `LMUL=8`
12
+ and masked encodings (`vm=0`) are illegal. Destination/source overlap is
13
+ allowed only when `vd` equals `vs2`, as for narrowing instructions.
14
+ definedBy:
15
+ extension:
16
+ name: Zvzip
17
+ assembly: vd, vs2, vm
18
+ encoding:
19
+ match: 010010------01011010-----1010111
20
+ variables:
21
+ - name: vm
22
+ location: 25
23
+ - name: vs2
24
+ location: 24-20
25
+ - name: vd
26
+ location: 11-7
27
+ access:
28
+ s: always
29
+ u: always
30
+ vs: always
31
+ vu: always
32
+ data_independent_timing: true
33
+ operation(): |
@@ -0,0 +1,33 @@
1
+ # Copyright (c) 2026 Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+ # yaml-language-server: $schema=../../../../schemas/inst_schema.json
4
+ $schema: "inst_schema.json#"
5
+ kind: instruction
6
+ name: vunzipo.v
7
+ long_name: Vector unzip odd
8
+ description: |
9
+ Extracts odd-indexed elements from source vector register group `vs2`,
10
+ with EMUL=2*LMUL, into destination `vd`, with EMUL=LMUL. For `0 <= i < vl`,
11
+ `vd[i] = vs2[2*i+1]`; source indices below `2*vl` may be read. `LMUL=8`
12
+ and masked encodings (`vm=0`) are illegal. Destination/source overlap is
13
+ allowed only when `vd` equals `vs2`, as for narrowing instructions.
14
+ definedBy:
15
+ extension:
16
+ name: Zvzip
17
+ assembly: vd, vs2, vm
18
+ encoding:
19
+ match: 010010------01111010-----1010111
20
+ variables:
21
+ - name: vm
22
+ location: 25
23
+ - name: vs2
24
+ location: 24-20
25
+ - name: vd
26
+ location: 11-7
27
+ access:
28
+ s: always
29
+ u: always
30
+ vs: always
31
+ vu: always
32
+ data_independent_timing: true
33
+ operation(): |
@@ -0,0 +1,37 @@
1
+ # Copyright (c) 2026 Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+ # yaml-language-server: $schema=../../../../schemas/inst_schema.json
4
+ $schema: "inst_schema.json#"
5
+ kind: instruction
6
+ name: vzip.vv
7
+ long_name: Vector zip
8
+ description: |
9
+ Interleaves source vector register groups `vs2` and `vs1`, each with
10
+ EMUL=LMUL/2, into destination `vd` with EMUL=LMUL. For destination index
11
+ `i`, even indices read `vs2[i/2]` and odd indices read `vs1[i/2]`.
12
+ Standard vector masking, prestart, inactive, and tail handling applies.
13
+ The source and destination groups may overlap only when source EMUL is at
14
+ least 1 and their highest-numbered registers coincide. The encoding is
15
+ illegal when `2*SEW > LMUL * ELEN` or overlap rules are violated.
16
+ definedBy:
17
+ extension:
18
+ name: Zvzip
19
+ assembly: vd, vs2, vs1, vm
20
+ encoding:
21
+ match: 111110-----------010-----1010111
22
+ variables:
23
+ - name: vm
24
+ location: 25
25
+ - name: vs2
26
+ location: 24-20
27
+ - name: vs1
28
+ location: 19-15
29
+ - name: vd
30
+ location: 11-7
31
+ access:
32
+ s: always
33
+ u: always
34
+ vs: always
35
+ vu: always
36
+ data_independent_timing: true
37
+ operation(): |
@@ -58,10 +58,12 @@ generated function direct_csr_lookup {
58
58
  generated function indirect_csr_lookup {
59
59
  returns Csr
60
60
  arguments
61
+ PrivilegeMode target_mode,
61
62
  Bits<MXLEN> csr_addr,
62
63
  Bits<4> window_slot # 1-indexed "slot" in the window (corresponding to *ireg<window_slot>)
63
64
  description {
64
- Return CSR info for a CSR with indirect address +csr_addr+ at window slot +window_slot+.
65
+ Return CSR info for a CSR with indirect address +csr_addr+ in the target privilege-mode
66
+ indirect address space at window slot +window_slot+.
65
67
 
66
68
  If no CSR exists, <return_value>.valid == false
67
69
  }
@@ -654,6 +656,38 @@ builtin function atomically_set_pte_a_d {
654
656
  }
655
657
  }
656
658
 
659
+ builtin function atomic_read_modify_write_8 {
660
+ returns Bits<8>
661
+ arguments
662
+ Bits<PHYS_ADDR_WIDTH> phys_addr,
663
+ Bits<8> value,
664
+ AmoOperation op
665
+ description {
666
+ Atomically read-modify-write 8-bits starting at phys_address using +value+ and +op+.
667
+
668
+ Return the original (unmodified) read value.
669
+
670
+ All access checks/alignment checks/etc. should be done before calling this function;
671
+ it's assumed the RMW is OK to proceed.
672
+ }
673
+ }
674
+
675
+ builtin function atomic_read_modify_write_16 {
676
+ returns Bits<16>
677
+ arguments
678
+ Bits<PHYS_ADDR_WIDTH> phys_addr,
679
+ Bits<16> value,
680
+ AmoOperation op
681
+ description {
682
+ Atomically read-modify-write 16-bits starting at phys_address using +value+ and +op+.
683
+
684
+ Return the original (unmodified) read value.
685
+
686
+ All access checks/alignment checks/etc. should be done before calling this function;
687
+ it's assumed the RMW is OK to proceed.
688
+ }
689
+ }
690
+
657
691
  builtin function atomic_read_modify_write_32 {
658
692
  returns Bits<32>
659
693
  arguments
@@ -685,3 +719,22 @@ builtin function atomic_read_modify_write_64 {
685
719
  it's assumed the RMW is OK to proceed.
686
720
  }
687
721
  }
722
+ builtin function read_seed {
723
+ returns Bits<32>
724
+ description {
725
+ Poll the implementation's entropy source and return the 32-bit seed value.
726
+ Bits 31:30 hold the OPST status and bits 15:0 hold the entropy, which is
727
+ only meaningful when OPST is ES16. Each poll returns unique randomness,
728
+ even if its numerical value happens to match a previous poll.
729
+ A single call represents one complete poll, so the status and the entropy
730
+ it returns describe the same state of the source.
731
+ }
732
+ }
733
+ builtin function write_seed {
734
+ description {
735
+ Signal a write to the seed CSR.
736
+ The written value is ignored; the write exists to signal polling and
737
+ flushing, so an implementation may use this to advance the state of its
738
+ entropy source.
739
+ }
740
+ }
@@ -945,6 +945,76 @@ function xlen {
945
945
  }
946
946
  }
947
947
 
948
+ enum Endian {
949
+ Little 0
950
+ Big 1
951
+ }
952
+
953
+ function endianness {
954
+ returns Endian
955
+ description {
956
+ Returns the endianness for the effective privilege mode.
957
+ }
958
+ body {
959
+ if (effective_ldst_mode() == PrivilegeMode::M) {
960
+ if (CSR[mstatus].MBE == 1'b1) {
961
+ return Endian::Big;
962
+ } else {
963
+ return Endian::Little;
964
+ }
965
+ } else if (implemented?(ExtensionName::S) && effective_ldst_mode() == PrivilegeMode::S) {
966
+ if (CSR[mstatus].SBE == 1'b1) {
967
+ return Endian::Big;
968
+ } else {
969
+ return Endian::Little;
970
+ }
971
+ } else if (implemented?(ExtensionName::U) && effective_ldst_mode() == PrivilegeMode::U) {
972
+ if (CSR[mstatus].UBE == 1'b1) {
973
+ return Endian::Big;
974
+ } else {
975
+ return Endian::Little;
976
+ }
977
+ } else if (implemented?(ExtensionName::H)) {
978
+ if (effective_ldst_mode() == PrivilegeMode::VS) {
979
+ if(CSR[hstatus].VSBE == 1'b1) {
980
+ return Endian::Big;
981
+ } else {
982
+ return Endian::Little;
983
+ }
984
+ } else if (effective_ldst_mode() == PrivilegeMode::VU) {
985
+ if(CSR[vsstatus].UBE == 1'b1) {
986
+ return Endian::Big;
987
+ } else {
988
+ return Endian::Little;
989
+ }
990
+ } else {
991
+ unreachable();
992
+ }
993
+ } else {
994
+ unreachable();
995
+ }
996
+ }
997
+ }
998
+
999
+ function byte_swap {
1000
+ returns XReg
1001
+ arguments
1002
+ U32 LEN,
1003
+ XReg value
1004
+ description {
1005
+ Swaps bytes in register based on LEN.
1006
+ }
1007
+ body {
1008
+ XReg result;
1009
+
1010
+ result = 0;
1011
+ for (U32 i=0; i < LEN; i = i+8) {
1012
+ result[(i+7):i] = value[(LEN-1-i):(LEN-8-i)];
1013
+ }
1014
+ return result;
1015
+ }
1016
+ }
1017
+
948
1018
  function virtual_mode? {
949
1019
  returns Boolean
950
1020
  description {
@@ -2627,9 +2697,19 @@ function read_memory {
2627
2697
  body {
2628
2698
  Boolean aligned = is_naturally_aligned(LEN, virtual_address);
2629
2699
  XReg physical_address;
2700
+ XReg result;
2630
2701
 
2631
2702
  if (aligned) {
2632
- return read_memory_aligned(LEN, virtual_address, encoding, 1'b0, 1'b0);
2703
+ result = read_memory_aligned(LEN, virtual_address, encoding, 1'b0, 1'b0);
2704
+ if (LEN > 8 && endianness() == Endian::Big ) {
2705
+ U32 tmp;
2706
+ for (U32 i=0; i < LEN/2; i = i+8) {
2707
+ tmp = result[(i+7):i];
2708
+ result[(i+7):i] = result[(LEN-1-i):(LEN-8-i)];
2709
+ result[(LEN-1-i):(LEN-8-i)] = tmp[7:0];
2710
+ }
2711
+ }
2712
+ return result;
2633
2713
  }
2634
2714
 
2635
2715
  # access isn't naturally aligned, but it still might be atomic if this hart supports
@@ -2646,7 +2726,16 @@ function read_memory {
2646
2726
 
2647
2727
  if (misaligned_is_atomic?(LEN, physical_address)) {
2648
2728
  access_check(physical_address, LEN, virtual_address, MemoryOperation::Read, ExceptionCode::LoadAccessFault, effective_ldst_mode());
2649
- return read_physical_memory(LEN, physical_address);
2729
+ result = read_physical_memory(LEN, physical_address);
2730
+ if (LEN > 8 && endianness() == Endian::Big) {
2731
+ U32 tmp;
2732
+ for (U32 i=0; i < LEN/2; i = i+8) {
2733
+ tmp = result[(i+7):i];
2734
+ result[(i+7):i] = result[(LEN-1-i):(LEN-8-i)];
2735
+ result[(LEN-1-i):(LEN-8-i)] = tmp[7:0];
2736
+ }
2737
+ }
2738
+ return result;
2650
2739
  }
2651
2740
  }
2652
2741
 
@@ -2666,10 +2755,18 @@ function read_memory {
2666
2755
 
2667
2756
  # misaligned, must break into multiple reads
2668
2757
  if (MISALIGNED_SPLIT_STRATEGY == "sequential_bytes") {
2669
- XReg result = 0;
2758
+ result = 0;
2670
2759
  for (U32 I = 0; I < (LEN/8); I++) {
2671
2760
  result = result | (read_memory_aligned(8, virtual_address + I, encoding, 1'b0, 1'b0) `<< (8*I));
2672
2761
  }
2762
+ if(LEN > 8 && endianness() == Endian::Big) {
2763
+ U32 tmp;
2764
+ for (U32 i=0; i < LEN/2; i = i+8) {
2765
+ tmp = result[(i+7):i];
2766
+ result[(i+7):i] = result[(LEN-1-i):(LEN-8-i)];
2767
+ result[(LEN-1-i):(LEN-8-i)] = tmp[7:0];
2768
+ }
2769
+ }
2673
2770
  return result;
2674
2771
  } else if (MISALIGNED_SPLIT_STRATEGY == "custom") {
2675
2772
  unpredictable("An implementation is free to break a misaligned access any way, leading to unpredictable behavior when any part of the misaligned access causes an exception");
@@ -2972,10 +3069,16 @@ function amo {
2972
3069
  raise (ExceptionCode::StoreAmoAddressMisaligned, mode(), virtual_address);
2973
3070
  }
2974
3071
 
2975
- if (N == 32) {
3072
+ if (N == 8) {
3073
+ return atomic_read_modify_write_8(physical_address, value, op);
3074
+ } else if (N == 16) {
3075
+ return atomic_read_modify_write_16(physical_address, value, op);
3076
+ } else if (N == 32) {
2976
3077
  return atomic_read_modify_write_32(physical_address, value, op);
2977
- } else {
3078
+ } else if (N == 64) {
2978
3079
  return atomic_read_modify_write_64(physical_address, value, op);
3080
+ } else {
3081
+ unreachable();
2979
3082
  }
2980
3083
 
2981
3084
  }
@@ -3033,6 +3136,15 @@ function write_memory {
3033
3136
  Boolean aligned = is_naturally_aligned(LEN, virtual_address);
3034
3137
  XReg physical_address;
3035
3138
 
3139
+ if(LEN > 8 && endianness() == Endian::Big) {
3140
+ U32 tmp;
3141
+ for (U32 i=0; i < LEN/2; i = i+8) {
3142
+ tmp = value[(i+7):i];
3143
+ value[(i+7):i] = value[(LEN-1-i):(LEN-8-i)];
3144
+ value[(LEN-1-i):(LEN-8-i)] = tmp[7:0];
3145
+ }
3146
+ }
3147
+
3036
3148
  if (aligned) {
3037
3149
  write_memory_aligned(LEN, virtual_address, value, encoding, 1'b0, 1'b0);
3038
3150
  return;
@@ -71,6 +71,7 @@ function highest_set_bit {
71
71
  description {
72
72
  Returns the position of the highest (nearest MSB) bit that is '1',
73
73
  or -1 if value is zero.
74
+ Callers should cast the return value with $signed().
74
75
  }
75
76
  body {
76
77
  for (Bits<8> i=xlen(); i > 0; i--) {
@@ -9,8 +9,8 @@ name: COUNTINHIBIT_EN
9
9
  description: |
10
10
  Indicates which hardware performance monitor counters can be disabled from `mcountinhibit`.
11
11
 
12
- An unimplemented counter cannot be specified, i.e., if HPM_COUNTER_EN[3] is false,
13
- it would be illegal to set COUNTINHIBIT_EN[3] to true.
12
+ `COUNTINHIBIT_EN[n]` controls whether `mcountinhibit.HPM<n>` is writable. It does
13
+ not depend on whether `hpmcounter<n>`/`mhpmcounter<n>` is read-only zero.
14
14
 
15
15
  COUNTINHIBIT_EN[1] can never be true, since it corresponds to `mcountinhibit.TM`,
16
16
  which is always read-only-0.
@@ -26,14 +26,6 @@ schema:
26
26
  maxItems: 32
27
27
  minItems: 32
28
28
 
29
- requirements:
30
- idl(): |
31
- for (U32 i = 3; i < 32; i++) {
32
- (!HPM_COUNTER_EN[i]) -> !COUNTINHIBIT_EN[i];
33
- }
34
- reason: |
35
- When mhpmcounter[i] is not implemented, it cannot be inhibited.
36
-
37
29
  definedBy:
38
30
  allOf:
39
31
  - extension:
@@ -0,0 +1,29 @@
1
+ # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+
4
+ # yaml-language-server: $schema=../../../schemas/param_schema.json
5
+
6
+ $schema: param_schema.json#
7
+ kind: parameter
8
+ name: HCONTEXT_IMPLEMENTED
9
+ description: |
10
+ Specifies if the hcontext CSR is implemented
11
+ long_name: hcontext CSR is implemented
12
+ schema:
13
+ type: boolean
14
+ definedBy:
15
+ allOf:
16
+ - extension:
17
+ name: Sdtrig
18
+ - extension:
19
+ name: H
20
+ requirements:
21
+ if:
22
+ param:
23
+ name: HCONTEXT_IMPLEMENTED
24
+ equal: true
25
+ then:
26
+ param:
27
+ name: MCONTEXT_IMPLEMENTED
28
+ equal: true
29
+ reason: HCONTEXT cannot exist without MCONTEXT
@@ -9,9 +9,8 @@ name: HCOUNTENABLE_EN
9
9
  description: |
10
10
  Indicates which counters can delegated via `hcounteren`
11
11
 
12
- An unimplemented counter cannot be specified, i.e., if
13
- HPM_COUNTER_EN[3] is false, it would be illegal to set
14
- HCOUNTENABLE_EN[3] to true.
12
+ `HCOUNTENABLE_EN[n]` controls whether `hcounteren.HPM<n>` is writable. It does not
13
+ depend on whether `hpmcounter<n>`/`mhpmcounter<n>` is read-only zero.
15
14
 
16
15
  HCOUNTENABLE_EN[0:2] must all be false if `Zicntr` is not implemented.
17
16
  HCOUNTENABLE_EN[3:31] must all be false if `Zihpm` is not implemented.
@@ -32,9 +31,7 @@ requirements:
32
31
  }
33
32
  for (U32 i = 3; i < 32; i++) {
34
33
  !implemented?(ExtensionName::Zihpm) -> !HCOUNTENABLE_EN[i];
35
- (!HPM_COUNTER_EN[i]) -> !HCOUNTENABLE_EN[i];
36
34
  }
37
35
  reason: |
38
36
  Counters 0-2 are defined by Zicntr
39
37
  Counters 3..31 are defined by Zihpm
40
- When mhpmcounter[i] is not implemented, it cannot be enabled.