udb 0.1.16 → 0.1.17

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 (604) hide show
  1. checksums.yaml +4 -4
  2. data/.data/cfgs/example_rv64_with_overlay.yaml +20 -0
  3. data/.data/cfgs/mc100-32-full-example.yaml +6 -0
  4. data/.data/cfgs/qc_iu.yaml +14 -0
  5. data/.data/cfgs/rv32-riscv-tests.yaml +9 -0
  6. data/.data/cfgs/rv32-vector.yaml +10 -1
  7. data/.data/cfgs/rv64-riscv-tests.yaml +9 -0
  8. data/.data/cfgs/rv64-vector.yaml +11 -2
  9. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.mva01s.yaml +2 -2
  10. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.mvsa01.yaml +2 -2
  11. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.pop.yaml +2 -2
  12. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.popret.yaml +2 -2
  13. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.popretz.yaml +2 -2
  14. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.push.yaml +2 -2
  15. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.pushfp.yaml +2 -2
  16. data/.data/spec/schemas/README.adoc +4 -1
  17. data/.data/spec/schemas/csr_schema.json +2 -2
  18. data/.data/spec/std/isa/csr/H/hgeie.yaml +38 -0
  19. data/.data/spec/std/isa/csr/H/hgeip.yaml +33 -0
  20. data/.data/spec/std/isa/csr/H/hideleg.yaml +120 -0
  21. data/.data/spec/std/isa/csr/H/hie.yaml +74 -0
  22. data/.data/spec/std/isa/csr/H/hip.yaml +88 -0
  23. data/.data/spec/std/isa/csr/H/hvip.yaml +46 -0
  24. data/.data/spec/std/isa/csr/H/vsie.yaml +86 -0
  25. data/.data/spec/std/isa/csr/H/vsip.yaml +98 -0
  26. data/.data/spec/std/isa/csr/H/vsscratch.yaml +29 -0
  27. data/.data/spec/std/isa/csr/I/pmpaddr0.yaml +7 -7
  28. data/.data/spec/std/isa/csr/I/pmpaddr1.yaml +7 -7
  29. data/.data/spec/std/isa/csr/I/pmpaddr10.yaml +7 -7
  30. data/.data/spec/std/isa/csr/I/pmpaddr11.yaml +7 -7
  31. data/.data/spec/std/isa/csr/I/pmpaddr12.yaml +7 -7
  32. data/.data/spec/std/isa/csr/I/pmpaddr13.yaml +7 -7
  33. data/.data/spec/std/isa/csr/I/pmpaddr14.yaml +7 -7
  34. data/.data/spec/std/isa/csr/I/pmpaddr15.yaml +7 -7
  35. data/.data/spec/std/isa/csr/I/pmpaddr16.yaml +7 -7
  36. data/.data/spec/std/isa/csr/I/pmpaddr17.yaml +7 -7
  37. data/.data/spec/std/isa/csr/I/pmpaddr18.yaml +7 -7
  38. data/.data/spec/std/isa/csr/I/pmpaddr19.yaml +7 -7
  39. data/.data/spec/std/isa/csr/I/pmpaddr2.yaml +7 -7
  40. data/.data/spec/std/isa/csr/I/pmpaddr20.yaml +7 -7
  41. data/.data/spec/std/isa/csr/I/pmpaddr21.yaml +7 -7
  42. data/.data/spec/std/isa/csr/I/pmpaddr22.yaml +7 -7
  43. data/.data/spec/std/isa/csr/I/pmpaddr23.yaml +7 -7
  44. data/.data/spec/std/isa/csr/I/pmpaddr24.yaml +7 -7
  45. data/.data/spec/std/isa/csr/I/pmpaddr25.yaml +7 -7
  46. data/.data/spec/std/isa/csr/I/pmpaddr26.yaml +7 -7
  47. data/.data/spec/std/isa/csr/I/pmpaddr27.yaml +7 -7
  48. data/.data/spec/std/isa/csr/I/pmpaddr28.yaml +7 -7
  49. data/.data/spec/std/isa/csr/I/pmpaddr29.yaml +7 -7
  50. data/.data/spec/std/isa/csr/I/pmpaddr3.yaml +7 -7
  51. data/.data/spec/std/isa/csr/I/pmpaddr30.yaml +7 -7
  52. data/.data/spec/std/isa/csr/I/pmpaddr31.yaml +7 -7
  53. data/.data/spec/std/isa/csr/I/pmpaddr32.yaml +7 -7
  54. data/.data/spec/std/isa/csr/I/pmpaddr33.yaml +7 -7
  55. data/.data/spec/std/isa/csr/I/pmpaddr34.yaml +7 -7
  56. data/.data/spec/std/isa/csr/I/pmpaddr35.yaml +7 -7
  57. data/.data/spec/std/isa/csr/I/pmpaddr36.yaml +7 -7
  58. data/.data/spec/std/isa/csr/I/pmpaddr37.yaml +7 -7
  59. data/.data/spec/std/isa/csr/I/pmpaddr38.yaml +7 -7
  60. data/.data/spec/std/isa/csr/I/pmpaddr39.yaml +7 -7
  61. data/.data/spec/std/isa/csr/I/pmpaddr4.yaml +7 -7
  62. data/.data/spec/std/isa/csr/I/pmpaddr40.yaml +7 -7
  63. data/.data/spec/std/isa/csr/I/pmpaddr41.yaml +7 -7
  64. data/.data/spec/std/isa/csr/I/pmpaddr42.yaml +7 -7
  65. data/.data/spec/std/isa/csr/I/pmpaddr43.yaml +7 -7
  66. data/.data/spec/std/isa/csr/I/pmpaddr44.yaml +7 -7
  67. data/.data/spec/std/isa/csr/I/pmpaddr45.yaml +7 -7
  68. data/.data/spec/std/isa/csr/I/pmpaddr46.yaml +7 -7
  69. data/.data/spec/std/isa/csr/I/pmpaddr47.yaml +7 -7
  70. data/.data/spec/std/isa/csr/I/pmpaddr48.yaml +7 -7
  71. data/.data/spec/std/isa/csr/I/pmpaddr49.yaml +7 -7
  72. data/.data/spec/std/isa/csr/I/pmpaddr5.yaml +7 -7
  73. data/.data/spec/std/isa/csr/I/pmpaddr50.yaml +7 -7
  74. data/.data/spec/std/isa/csr/I/pmpaddr51.yaml +7 -7
  75. data/.data/spec/std/isa/csr/I/pmpaddr52.yaml +7 -7
  76. data/.data/spec/std/isa/csr/I/pmpaddr53.yaml +7 -7
  77. data/.data/spec/std/isa/csr/I/pmpaddr54.yaml +7 -7
  78. data/.data/spec/std/isa/csr/I/pmpaddr55.yaml +7 -7
  79. data/.data/spec/std/isa/csr/I/pmpaddr56.yaml +7 -7
  80. data/.data/spec/std/isa/csr/I/pmpaddr57.yaml +7 -7
  81. data/.data/spec/std/isa/csr/I/pmpaddr58.yaml +7 -7
  82. data/.data/spec/std/isa/csr/I/pmpaddr59.yaml +7 -7
  83. data/.data/spec/std/isa/csr/I/pmpaddr6.yaml +7 -7
  84. data/.data/spec/std/isa/csr/I/pmpaddr60.yaml +7 -7
  85. data/.data/spec/std/isa/csr/I/pmpaddr61.yaml +7 -7
  86. data/.data/spec/std/isa/csr/I/pmpaddr62.yaml +7 -7
  87. data/.data/spec/std/isa/csr/I/pmpaddr63.yaml +7 -7
  88. data/.data/spec/std/isa/csr/I/pmpaddr7.yaml +7 -7
  89. data/.data/spec/std/isa/csr/I/pmpaddr8.yaml +7 -7
  90. data/.data/spec/std/isa/csr/I/pmpaddr9.yaml +7 -7
  91. data/.data/spec/std/isa/csr/I/pmpaddrN.layout +7 -7
  92. data/.data/spec/std/isa/csr/Smcsrind/mireg.yaml +2 -2
  93. data/.data/spec/std/isa/csr/Smcsrind/mireg2.yaml +2 -2
  94. data/.data/spec/std/isa/csr/Smcsrind/mireg3.yaml +2 -2
  95. data/.data/spec/std/isa/csr/Smcsrind/mireg4.yaml +2 -2
  96. data/.data/spec/std/isa/csr/Smcsrind/mireg5.yaml +2 -2
  97. data/.data/spec/std/isa/csr/Smcsrind/mireg6.yaml +2 -2
  98. data/.data/spec/std/isa/csr/Smcsrind/sireg.yaml +2 -2
  99. data/.data/spec/std/isa/csr/Smcsrind/sireg2.yaml +2 -2
  100. data/.data/spec/std/isa/csr/Smcsrind/sireg3.yaml +2 -2
  101. data/.data/spec/std/isa/csr/Smcsrind/sireg4.yaml +2 -2
  102. data/.data/spec/std/isa/csr/Smcsrind/sireg5.yaml +2 -2
  103. data/.data/spec/std/isa/csr/Smcsrind/sireg6.yaml +2 -2
  104. data/.data/spec/std/isa/csr/Smcsrind/vsireg.yaml +2 -2
  105. data/.data/spec/std/isa/csr/Smcsrind/vsireg2.yaml +2 -2
  106. data/.data/spec/std/isa/csr/Smcsrind/vsireg3.yaml +2 -2
  107. data/.data/spec/std/isa/csr/Smcsrind/vsireg4.yaml +2 -2
  108. data/.data/spec/std/isa/csr/Smcsrind/vsireg5.yaml +2 -2
  109. data/.data/spec/std/isa/csr/Smcsrind/vsireg6.yaml +2 -2
  110. data/.data/spec/std/isa/csr/Smctr/sctrctl.yaml +1 -1
  111. data/.data/spec/std/isa/csr/Smctr/sctrdepth.yaml +43 -0
  112. data/.data/spec/std/isa/csr/Smctr/sctrstatus.yaml +37 -0
  113. data/.data/spec/std/isa/csr/Smctr/vsctrctl.yaml +3 -1
  114. data/.data/spec/std/isa/csr/Sstc/stimecmp.yaml +42 -0
  115. data/.data/spec/std/isa/csr/Sstc/stimecmph.yaml +43 -0
  116. data/.data/spec/std/isa/csr/Sstc/vstimecmp.yaml +45 -0
  117. data/.data/spec/std/isa/csr/Sstc/vstimecmph.yaml +46 -0
  118. data/.data/spec/std/isa/csr/V/vcsr.yaml +1 -1
  119. data/.data/spec/std/isa/csr/V/vl.yaml +1 -1
  120. data/.data/spec/std/isa/csr/V/vlenb.yaml +1 -1
  121. data/.data/spec/std/isa/csr/V/vstart.yaml +1 -1
  122. data/.data/spec/std/isa/csr/V/vtype.yaml +20 -1
  123. data/.data/spec/std/isa/csr/V/vxrm.yaml +1 -1
  124. data/.data/spec/std/isa/csr/V/vxsat.yaml +1 -1
  125. data/.data/spec/std/isa/csr/Zicntr/mcountinhibit.layout +1 -15
  126. data/.data/spec/std/isa/csr/Zicntr/mcountinhibit.yaml +29 -267
  127. data/.data/spec/std/isa/csr/mideleg.yaml +57 -9
  128. data/.data/spec/std/isa/csr/mie.yaml +18 -9
  129. data/.data/spec/std/isa/csr/mip.yaml +21 -10
  130. data/.data/spec/std/isa/csr/misa.yaml +11 -7
  131. data/.data/spec/std/isa/csr/mstatus.yaml +2 -2
  132. data/.data/spec/std/isa/csr/schema.adoc +10 -4
  133. data/.data/spec/std/isa/csr/senvcfg.yaml +6 -12
  134. data/.data/spec/std/isa/csr/sstateen0.yaml +1 -1
  135. data/.data/spec/std/isa/csr/sstateen1.yaml +2 -3
  136. data/.data/spec/std/isa/csr/sstateen2.yaml +2 -3
  137. data/.data/spec/std/isa/csr/sstateen3.yaml +2 -3
  138. data/.data/spec/std/isa/csr/tcontrol.yaml +37 -0
  139. data/.data/spec/std/isa/csr/tinfo.yaml +44 -0
  140. data/.data/spec/std/isa/ext/Smctr.yaml +1 -1
  141. data/.data/spec/std/isa/ext/Ssctr.yaml +1 -1
  142. data/.data/spec/std/isa/ext/Ssstrict.yaml +2 -2
  143. data/.data/spec/std/isa/ext/Sv32.yaml +2 -2
  144. data/.data/spec/std/isa/ext/Svpbmt.yaml +2 -2
  145. data/.data/spec/std/isa/ext/Zaamo.yaml +1 -1
  146. data/.data/spec/std/isa/ext/Zbc.yaml +4 -0
  147. data/.data/spec/std/isa/ext/Zvfbfa.yaml +24 -0
  148. data/.data/spec/std/isa/ext/Zvfofp4min.yaml +21 -0
  149. data/.data/spec/std/isa/ext/Zvfofp8min.yaml +20 -0
  150. data/.data/spec/std/isa/inst/B/andn.yaml +0 -4
  151. data/.data/spec/std/isa/inst/B/orn.yaml +0 -4
  152. data/.data/spec/std/isa/inst/B/rev8.yaml +0 -4
  153. data/.data/spec/std/isa/inst/B/rol.yaml +0 -4
  154. data/.data/spec/std/isa/inst/B/rolw.yaml +0 -4
  155. data/.data/spec/std/isa/inst/B/ror.yaml +0 -4
  156. data/.data/spec/std/isa/inst/B/rori.yaml +0 -4
  157. data/.data/spec/std/isa/inst/B/roriw.yaml +0 -4
  158. data/.data/spec/std/isa/inst/B/rorw.yaml +0 -4
  159. data/.data/spec/std/isa/inst/B/xnor.yaml +0 -4
  160. data/.data/spec/std/isa/inst/C/c.addi.yaml +2 -2
  161. data/.data/spec/std/isa/inst/C/c.addi16sp.yaml +2 -2
  162. data/.data/spec/std/isa/inst/C/c.addi4spn.yaml +2 -2
  163. data/.data/spec/std/isa/inst/C/c.addiw.yaml +2 -2
  164. data/.data/spec/std/isa/inst/C/c.beqz.yaml +2 -2
  165. data/.data/spec/std/isa/inst/C/c.bnez.yaml +2 -2
  166. data/.data/spec/std/isa/inst/C/c.ebreak.yaml +2 -2
  167. data/.data/spec/std/isa/inst/C/c.j.yaml +2 -2
  168. data/.data/spec/std/isa/inst/C/c.jal.yaml +2 -2
  169. data/.data/spec/std/isa/inst/C/c.jalr.yaml +2 -2
  170. data/.data/spec/std/isa/inst/C/c.jr.yaml +2 -2
  171. data/.data/spec/std/isa/inst/C/c.ld.yaml +2 -2
  172. data/.data/spec/std/isa/inst/C/c.ldsp.yaml +2 -2
  173. data/.data/spec/std/isa/inst/C/c.li.yaml +2 -2
  174. data/.data/spec/std/isa/inst/C/c.lui.yaml +2 -2
  175. data/.data/spec/std/isa/inst/C/c.lw.yaml +2 -2
  176. data/.data/spec/std/isa/inst/C/c.lwsp.yaml +2 -2
  177. data/.data/spec/std/isa/inst/C/c.mv.yaml +2 -2
  178. data/.data/spec/std/isa/inst/C/c.nop.yaml +2 -2
  179. data/.data/spec/std/isa/inst/C/c.sd.yaml +2 -2
  180. data/.data/spec/std/isa/inst/C/c.sdsp.yaml +5 -5
  181. data/.data/spec/std/isa/inst/C/c.sw.yaml +2 -2
  182. data/.data/spec/std/isa/inst/C/c.swsp.yaml +2 -2
  183. data/.data/spec/std/isa/inst/I/ld.yaml +9 -4
  184. data/.data/spec/std/isa/inst/I/sd.yaml +9 -4
  185. data/.data/spec/std/isa/inst/I/wfi.yaml +1 -1
  186. data/.data/spec/std/isa/inst/M/div.yaml +2 -2
  187. data/.data/spec/std/isa/inst/M/divu.yaml +2 -2
  188. data/.data/spec/std/isa/inst/M/divuw.yaml +2 -2
  189. data/.data/spec/std/isa/inst/M/divw.yaml +2 -2
  190. data/.data/spec/std/isa/inst/M/mul.yaml +0 -4
  191. data/.data/spec/std/isa/inst/M/mulh.yaml +0 -4
  192. data/.data/spec/std/isa/inst/M/mulhsu.yaml +0 -4
  193. data/.data/spec/std/isa/inst/M/mulhu.yaml +0 -4
  194. data/.data/spec/std/isa/inst/M/mulw.yaml +0 -4
  195. data/.data/spec/std/isa/inst/M/rem.yaml +2 -2
  196. data/.data/spec/std/isa/inst/M/remu.yaml +2 -2
  197. data/.data/spec/std/isa/inst/M/remuw.yaml +2 -2
  198. data/.data/spec/std/isa/inst/M/remw.yaml +2 -2
  199. data/.data/spec/std/isa/inst/V/vfadd.vf.yaml +3 -1
  200. data/.data/spec/std/isa/inst/V/vfadd.vv.yaml +3 -1
  201. data/.data/spec/std/isa/inst/V/vfclass.v.yaml +3 -1
  202. data/.data/spec/std/isa/inst/V/vfmacc.vf.yaml +3 -1
  203. data/.data/spec/std/isa/inst/V/vfmacc.vv.yaml +3 -1
  204. data/.data/spec/std/isa/inst/V/vfmadd.vf.yaml +3 -1
  205. data/.data/spec/std/isa/inst/V/vfmadd.vv.yaml +3 -1
  206. data/.data/spec/std/isa/inst/V/vfmax.vf.yaml +3 -1
  207. data/.data/spec/std/isa/inst/V/vfmax.vv.yaml +3 -1
  208. data/.data/spec/std/isa/inst/V/vfmerge.vfm.yaml +3 -1
  209. data/.data/spec/std/isa/inst/V/vfmin.vf.yaml +3 -1
  210. data/.data/spec/std/isa/inst/V/vfmin.vv.yaml +3 -1
  211. data/.data/spec/std/isa/inst/V/vfmsac.vf.yaml +3 -1
  212. data/.data/spec/std/isa/inst/V/vfmsac.vv.yaml +3 -1
  213. data/.data/spec/std/isa/inst/V/vfmsub.vf.yaml +3 -1
  214. data/.data/spec/std/isa/inst/V/vfmsub.vv.yaml +3 -1
  215. data/.data/spec/std/isa/inst/V/vfmul.vf.yaml +3 -1
  216. data/.data/spec/std/isa/inst/V/vfmul.vv.yaml +3 -1
  217. data/.data/spec/std/isa/inst/V/vfmv.f.s.yaml +3 -1
  218. data/.data/spec/std/isa/inst/V/vfmv.s.f.yaml +3 -1
  219. data/.data/spec/std/isa/inst/V/vfmv.v.f.yaml +3 -1
  220. data/.data/spec/std/isa/inst/V/vfncvt.f.f.w.yaml +3 -1
  221. data/.data/spec/std/isa/inst/V/vfncvt.rod.f.f.w.yaml +3 -1
  222. data/.data/spec/std/isa/inst/V/vfncvt.rtz.x.f.w.yaml +3 -1
  223. data/.data/spec/std/isa/inst/V/vfncvt.rtz.xu.f.w.yaml +3 -1
  224. data/.data/spec/std/isa/inst/V/vfncvt.x.f.w.yaml +3 -1
  225. data/.data/spec/std/isa/inst/V/vfncvt.xu.f.w.yaml +3 -1
  226. data/.data/spec/std/isa/inst/V/vfnmacc.vf.yaml +3 -1
  227. data/.data/spec/std/isa/inst/V/vfnmacc.vv.yaml +3 -1
  228. data/.data/spec/std/isa/inst/V/vfnmadd.vf.yaml +3 -1
  229. data/.data/spec/std/isa/inst/V/vfnmadd.vv.yaml +3 -1
  230. data/.data/spec/std/isa/inst/V/vfnmsac.vf.yaml +3 -1
  231. data/.data/spec/std/isa/inst/V/vfnmsac.vv.yaml +3 -1
  232. data/.data/spec/std/isa/inst/V/vfnmsub.vf.yaml +3 -1
  233. data/.data/spec/std/isa/inst/V/vfnmsub.vv.yaml +3 -1
  234. data/.data/spec/std/isa/inst/V/vfrec7.v.yaml +3 -1
  235. data/.data/spec/std/isa/inst/V/vfrsqrt7.v.yaml +3 -1
  236. data/.data/spec/std/isa/inst/V/vfrsub.vf.yaml +3 -1
  237. data/.data/spec/std/isa/inst/V/vfsgnj.vf.yaml +3 -1
  238. data/.data/spec/std/isa/inst/V/vfsgnj.vv.yaml +3 -1
  239. data/.data/spec/std/isa/inst/V/vfsgnjn.vf.yaml +3 -1
  240. data/.data/spec/std/isa/inst/V/vfsgnjn.vv.yaml +3 -1
  241. data/.data/spec/std/isa/inst/V/vfsgnjx.vf.yaml +3 -1
  242. data/.data/spec/std/isa/inst/V/vfsgnjx.vv.yaml +3 -1
  243. data/.data/spec/std/isa/inst/V/vfslide1down.vf.yaml +3 -1
  244. data/.data/spec/std/isa/inst/V/vfslide1up.vf.yaml +3 -1
  245. data/.data/spec/std/isa/inst/V/vfsub.vf.yaml +3 -1
  246. data/.data/spec/std/isa/inst/V/vfsub.vv.yaml +3 -1
  247. data/.data/spec/std/isa/inst/V/vfwadd.vf.yaml +3 -1
  248. data/.data/spec/std/isa/inst/V/vfwadd.vv.yaml +3 -1
  249. data/.data/spec/std/isa/inst/V/vfwadd.wf.yaml +3 -1
  250. data/.data/spec/std/isa/inst/V/vfwadd.wv.yaml +3 -1
  251. data/.data/spec/std/isa/inst/V/vfwcvt.f.f.v.yaml +3 -1
  252. data/.data/spec/std/isa/inst/V/vfwcvt.f.x.v.yaml +3 -1
  253. data/.data/spec/std/isa/inst/V/vfwcvt.f.xu.v.yaml +3 -1
  254. data/.data/spec/std/isa/inst/V/vfwmacc.vf.yaml +3 -1
  255. data/.data/spec/std/isa/inst/V/vfwmacc.vv.yaml +3 -1
  256. data/.data/spec/std/isa/inst/V/vfwmsac.vf.yaml +3 -1
  257. data/.data/spec/std/isa/inst/V/vfwmsac.vv.yaml +3 -1
  258. data/.data/spec/std/isa/inst/V/vfwmul.vf.yaml +3 -1
  259. data/.data/spec/std/isa/inst/V/vfwmul.vv.yaml +3 -1
  260. data/.data/spec/std/isa/inst/V/vfwnmacc.vf.yaml +3 -1
  261. data/.data/spec/std/isa/inst/V/vfwnmacc.vv.yaml +3 -1
  262. data/.data/spec/std/isa/inst/V/vfwnmsac.vf.yaml +3 -1
  263. data/.data/spec/std/isa/inst/V/vfwnmsac.vv.yaml +3 -1
  264. data/.data/spec/std/isa/inst/V/vfwsub.vf.yaml +3 -1
  265. data/.data/spec/std/isa/inst/V/vfwsub.vv.yaml +3 -1
  266. data/.data/spec/std/isa/inst/V/vfwsub.wf.yaml +3 -1
  267. data/.data/spec/std/isa/inst/V/vfwsub.wv.yaml +3 -1
  268. data/.data/spec/std/isa/inst/V/vmfeq.vf.yaml +3 -1
  269. data/.data/spec/std/isa/inst/V/vmfeq.vv.yaml +3 -1
  270. data/.data/spec/std/isa/inst/V/vmfge.vf.yaml +3 -1
  271. data/.data/spec/std/isa/inst/V/vmfgt.vf.yaml +3 -1
  272. data/.data/spec/std/isa/inst/V/vmfle.vf.yaml +3 -1
  273. data/.data/spec/std/isa/inst/V/vmfle.vv.yaml +3 -1
  274. data/.data/spec/std/isa/inst/V/vmflt.vf.yaml +3 -1
  275. data/.data/spec/std/isa/inst/V/vmflt.vv.yaml +3 -1
  276. data/.data/spec/std/isa/inst/V/vmfne.vf.yaml +3 -1
  277. data/.data/spec/std/isa/inst/V/vmfne.vv.yaml +3 -1
  278. data/.data/spec/std/isa/inst/Zaamo/amoadd.SIZE.AQRL.layout +1 -5
  279. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.aq.yaml +0 -4
  280. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.aqrl.yaml +0 -4
  281. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.rl.yaml +0 -4
  282. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.yaml +0 -4
  283. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.aq.yaml +1 -5
  284. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.aqrl.yaml +1 -5
  285. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.rl.yaml +1 -5
  286. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.yaml +1 -5
  287. data/.data/spec/std/isa/inst/Zaamo/amoand.SIZE.AQRL.layout +1 -5
  288. data/.data/spec/std/isa/inst/Zaamo/amoand.d.aq.yaml +0 -4
  289. data/.data/spec/std/isa/inst/Zaamo/amoand.d.aqrl.yaml +0 -4
  290. data/.data/spec/std/isa/inst/Zaamo/amoand.d.rl.yaml +0 -4
  291. data/.data/spec/std/isa/inst/Zaamo/amoand.d.yaml +0 -4
  292. data/.data/spec/std/isa/inst/Zaamo/amoand.w.aq.yaml +1 -5
  293. data/.data/spec/std/isa/inst/Zaamo/amoand.w.aqrl.yaml +1 -5
  294. data/.data/spec/std/isa/inst/Zaamo/amoand.w.rl.yaml +1 -5
  295. data/.data/spec/std/isa/inst/Zaamo/amoand.w.yaml +1 -5
  296. data/.data/spec/std/isa/inst/Zaamo/amomax.SIZE.AQRL.layout +1 -5
  297. data/.data/spec/std/isa/inst/Zaamo/amomax.d.aq.yaml +0 -4
  298. data/.data/spec/std/isa/inst/Zaamo/amomax.d.aqrl.yaml +0 -4
  299. data/.data/spec/std/isa/inst/Zaamo/amomax.d.rl.yaml +0 -4
  300. data/.data/spec/std/isa/inst/Zaamo/amomax.d.yaml +0 -4
  301. data/.data/spec/std/isa/inst/Zaamo/amomax.w.aq.yaml +1 -5
  302. data/.data/spec/std/isa/inst/Zaamo/amomax.w.aqrl.yaml +1 -5
  303. data/.data/spec/std/isa/inst/Zaamo/amomax.w.rl.yaml +1 -5
  304. data/.data/spec/std/isa/inst/Zaamo/amomax.w.yaml +1 -5
  305. data/.data/spec/std/isa/inst/Zaamo/amomaxu.SIZE.AQRL.layout +1 -5
  306. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.aq.yaml +0 -4
  307. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.aqrl.yaml +0 -4
  308. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.rl.yaml +0 -4
  309. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.yaml +0 -4
  310. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.aq.yaml +1 -5
  311. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.aqrl.yaml +1 -5
  312. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.rl.yaml +1 -5
  313. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.yaml +1 -5
  314. data/.data/spec/std/isa/inst/Zaamo/amomin.SIZE.AQRL.layout +1 -5
  315. data/.data/spec/std/isa/inst/Zaamo/amomin.d.aq.yaml +0 -4
  316. data/.data/spec/std/isa/inst/Zaamo/amomin.d.aqrl.yaml +0 -4
  317. data/.data/spec/std/isa/inst/Zaamo/amomin.d.rl.yaml +0 -4
  318. data/.data/spec/std/isa/inst/Zaamo/amomin.d.yaml +0 -4
  319. data/.data/spec/std/isa/inst/Zaamo/amomin.w.aq.yaml +1 -5
  320. data/.data/spec/std/isa/inst/Zaamo/amomin.w.aqrl.yaml +1 -5
  321. data/.data/spec/std/isa/inst/Zaamo/amomin.w.rl.yaml +1 -5
  322. data/.data/spec/std/isa/inst/Zaamo/amomin.w.yaml +1 -5
  323. data/.data/spec/std/isa/inst/Zaamo/amominu.SIZE.AQRL.layout +1 -5
  324. data/.data/spec/std/isa/inst/Zaamo/amominu.d.aq.yaml +0 -4
  325. data/.data/spec/std/isa/inst/Zaamo/amominu.d.aqrl.yaml +0 -4
  326. data/.data/spec/std/isa/inst/Zaamo/amominu.d.rl.yaml +0 -4
  327. data/.data/spec/std/isa/inst/Zaamo/amominu.d.yaml +0 -4
  328. data/.data/spec/std/isa/inst/Zaamo/amominu.w.aq.yaml +1 -5
  329. data/.data/spec/std/isa/inst/Zaamo/amominu.w.aqrl.yaml +1 -5
  330. data/.data/spec/std/isa/inst/Zaamo/amominu.w.rl.yaml +1 -5
  331. data/.data/spec/std/isa/inst/Zaamo/amominu.w.yaml +1 -5
  332. data/.data/spec/std/isa/inst/Zaamo/amoor.SIZE.AQRL.layout +1 -5
  333. data/.data/spec/std/isa/inst/Zaamo/amoor.d.aq.yaml +0 -4
  334. data/.data/spec/std/isa/inst/Zaamo/amoor.d.aqrl.yaml +0 -4
  335. data/.data/spec/std/isa/inst/Zaamo/amoor.d.rl.yaml +0 -4
  336. data/.data/spec/std/isa/inst/Zaamo/amoor.d.yaml +0 -4
  337. data/.data/spec/std/isa/inst/Zaamo/amoor.w.aq.yaml +1 -5
  338. data/.data/spec/std/isa/inst/Zaamo/amoor.w.aqrl.yaml +1 -5
  339. data/.data/spec/std/isa/inst/Zaamo/amoor.w.rl.yaml +1 -5
  340. data/.data/spec/std/isa/inst/Zaamo/amoor.w.yaml +1 -5
  341. data/.data/spec/std/isa/inst/Zaamo/amoswap.SIZE.AQRL.layout +1 -5
  342. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.aq.yaml +0 -4
  343. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.aqrl.yaml +0 -4
  344. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.rl.yaml +0 -4
  345. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.yaml +0 -4
  346. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.aq.yaml +1 -5
  347. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.aqrl.yaml +1 -5
  348. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.rl.yaml +1 -5
  349. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.yaml +1 -5
  350. data/.data/spec/std/isa/inst/Zaamo/amoxor.SIZE.AQRL.layout +1 -5
  351. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.aq.yaml +0 -4
  352. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.aqrl.yaml +0 -4
  353. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.rl.yaml +0 -4
  354. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.yaml +0 -4
  355. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.aq.yaml +1 -5
  356. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.aqrl.yaml +1 -5
  357. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.rl.yaml +1 -5
  358. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.yaml +1 -5
  359. data/.data/spec/std/isa/inst/Zabha/amoadd.b.aq.yaml +1 -5
  360. data/.data/spec/std/isa/inst/Zabha/amoadd.b.aqrl.yaml +1 -5
  361. data/.data/spec/std/isa/inst/Zabha/amoadd.b.rl.yaml +1 -5
  362. data/.data/spec/std/isa/inst/Zabha/amoadd.b.yaml +1 -5
  363. data/.data/spec/std/isa/inst/Zabha/amoadd.h.aq.yaml +1 -5
  364. data/.data/spec/std/isa/inst/Zabha/amoadd.h.aqrl.yaml +1 -5
  365. data/.data/spec/std/isa/inst/Zabha/amoadd.h.rl.yaml +1 -5
  366. data/.data/spec/std/isa/inst/Zabha/amoadd.h.yaml +1 -5
  367. data/.data/spec/std/isa/inst/Zabha/amoand.b.aq.yaml +1 -5
  368. data/.data/spec/std/isa/inst/Zabha/amoand.b.aqrl.yaml +1 -5
  369. data/.data/spec/std/isa/inst/Zabha/amoand.b.rl.yaml +1 -5
  370. data/.data/spec/std/isa/inst/Zabha/amoand.b.yaml +1 -5
  371. data/.data/spec/std/isa/inst/Zabha/amoand.h.aq.yaml +1 -5
  372. data/.data/spec/std/isa/inst/Zabha/amoand.h.aqrl.yaml +1 -5
  373. data/.data/spec/std/isa/inst/Zabha/amoand.h.rl.yaml +1 -5
  374. data/.data/spec/std/isa/inst/Zabha/amoand.h.yaml +1 -5
  375. data/.data/spec/std/isa/inst/Zabha/amomax.b.aq.yaml +1 -5
  376. data/.data/spec/std/isa/inst/Zabha/amomax.b.aqrl.yaml +1 -5
  377. data/.data/spec/std/isa/inst/Zabha/amomax.b.rl.yaml +1 -5
  378. data/.data/spec/std/isa/inst/Zabha/amomax.b.yaml +1 -5
  379. data/.data/spec/std/isa/inst/Zabha/amomax.h.aq.yaml +1 -5
  380. data/.data/spec/std/isa/inst/Zabha/amomax.h.aqrl.yaml +1 -5
  381. data/.data/spec/std/isa/inst/Zabha/amomax.h.rl.yaml +1 -5
  382. data/.data/spec/std/isa/inst/Zabha/amomax.h.yaml +1 -5
  383. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.aq.yaml +1 -5
  384. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.aqrl.yaml +1 -5
  385. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.rl.yaml +1 -5
  386. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.yaml +1 -5
  387. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.aq.yaml +1 -5
  388. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.aqrl.yaml +1 -5
  389. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.rl.yaml +1 -5
  390. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.yaml +1 -5
  391. data/.data/spec/std/isa/inst/Zabha/amomin.b.aq.yaml +1 -5
  392. data/.data/spec/std/isa/inst/Zabha/amomin.b.aqrl.yaml +1 -5
  393. data/.data/spec/std/isa/inst/Zabha/amomin.b.rl.yaml +1 -5
  394. data/.data/spec/std/isa/inst/Zabha/amomin.b.yaml +1 -5
  395. data/.data/spec/std/isa/inst/Zabha/amomin.h.aq.yaml +1 -5
  396. data/.data/spec/std/isa/inst/Zabha/amomin.h.aqrl.yaml +1 -5
  397. data/.data/spec/std/isa/inst/Zabha/amomin.h.rl.yaml +1 -5
  398. data/.data/spec/std/isa/inst/Zabha/amomin.h.yaml +1 -5
  399. data/.data/spec/std/isa/inst/Zabha/amominu.b.aq.yaml +1 -5
  400. data/.data/spec/std/isa/inst/Zabha/amominu.b.aqrl.yaml +1 -5
  401. data/.data/spec/std/isa/inst/Zabha/amominu.b.rl.yaml +1 -5
  402. data/.data/spec/std/isa/inst/Zabha/amominu.b.yaml +1 -5
  403. data/.data/spec/std/isa/inst/Zabha/amominu.h.aq.yaml +1 -5
  404. data/.data/spec/std/isa/inst/Zabha/amominu.h.aqrl.yaml +1 -5
  405. data/.data/spec/std/isa/inst/Zabha/amominu.h.rl.yaml +1 -5
  406. data/.data/spec/std/isa/inst/Zabha/amominu.h.yaml +1 -5
  407. data/.data/spec/std/isa/inst/Zabha/amoor.b.aq.yaml +1 -5
  408. data/.data/spec/std/isa/inst/Zabha/amoor.b.aqrl.yaml +1 -5
  409. data/.data/spec/std/isa/inst/Zabha/amoor.b.rl.yaml +1 -5
  410. data/.data/spec/std/isa/inst/Zabha/amoor.b.yaml +1 -5
  411. data/.data/spec/std/isa/inst/Zabha/amoor.h.aq.yaml +1 -5
  412. data/.data/spec/std/isa/inst/Zabha/amoor.h.aqrl.yaml +1 -5
  413. data/.data/spec/std/isa/inst/Zabha/amoor.h.rl.yaml +1 -5
  414. data/.data/spec/std/isa/inst/Zabha/amoor.h.yaml +1 -5
  415. data/.data/spec/std/isa/inst/Zabha/amoswap.b.aq.yaml +1 -5
  416. data/.data/spec/std/isa/inst/Zabha/amoswap.b.aqrl.yaml +1 -5
  417. data/.data/spec/std/isa/inst/Zabha/amoswap.b.rl.yaml +1 -5
  418. data/.data/spec/std/isa/inst/Zabha/amoswap.b.yaml +1 -5
  419. data/.data/spec/std/isa/inst/Zabha/amoswap.h.aq.yaml +1 -5
  420. data/.data/spec/std/isa/inst/Zabha/amoswap.h.aqrl.yaml +1 -5
  421. data/.data/spec/std/isa/inst/Zabha/amoswap.h.rl.yaml +1 -5
  422. data/.data/spec/std/isa/inst/Zabha/amoswap.h.yaml +1 -5
  423. data/.data/spec/std/isa/inst/Zabha/amoxor.b.aq.yaml +1 -5
  424. data/.data/spec/std/isa/inst/Zabha/amoxor.b.aqrl.yaml +1 -5
  425. data/.data/spec/std/isa/inst/Zabha/amoxor.b.rl.yaml +1 -5
  426. data/.data/spec/std/isa/inst/Zabha/amoxor.b.yaml +1 -5
  427. data/.data/spec/std/isa/inst/Zabha/amoxor.h.aq.yaml +1 -5
  428. data/.data/spec/std/isa/inst/Zabha/amoxor.h.aqrl.yaml +1 -5
  429. data/.data/spec/std/isa/inst/Zabha/amoxor.h.rl.yaml +1 -5
  430. data/.data/spec/std/isa/inst/Zabha/amoxor.h.yaml +1 -5
  431. data/.data/spec/std/isa/inst/Zalrsc/lr.SIZE.AQRL.layout +1 -11
  432. data/.data/spec/std/isa/inst/Zalrsc/lr.d.aq.yaml +0 -6
  433. data/.data/spec/std/isa/inst/Zalrsc/lr.d.aqrl.yaml +0 -6
  434. data/.data/spec/std/isa/inst/Zalrsc/lr.d.rl.yaml +0 -6
  435. data/.data/spec/std/isa/inst/Zalrsc/lr.d.yaml +0 -6
  436. data/.data/spec/std/isa/inst/Zalrsc/lr.w.aq.yaml +1 -11
  437. data/.data/spec/std/isa/inst/Zalrsc/lr.w.aqrl.yaml +1 -11
  438. data/.data/spec/std/isa/inst/Zalrsc/lr.w.rl.yaml +1 -11
  439. data/.data/spec/std/isa/inst/Zalrsc/lr.w.yaml +1 -11
  440. data/.data/spec/std/isa/inst/Zalrsc/sc.SIZE.AQRL.layout +4 -10
  441. data/.data/spec/std/isa/inst/Zalrsc/sc.d.aq.yaml +4 -10
  442. data/.data/spec/std/isa/inst/Zalrsc/sc.d.aqrl.yaml +4 -10
  443. data/.data/spec/std/isa/inst/Zalrsc/sc.d.rl.yaml +4 -10
  444. data/.data/spec/std/isa/inst/Zalrsc/sc.d.yaml +4 -10
  445. data/.data/spec/std/isa/inst/Zalrsc/sc.w.aq.yaml +4 -10
  446. data/.data/spec/std/isa/inst/Zalrsc/sc.w.aqrl.yaml +4 -10
  447. data/.data/spec/std/isa/inst/Zalrsc/sc.w.rl.yaml +4 -10
  448. data/.data/spec/std/isa/inst/Zalrsc/sc.w.yaml +4 -10
  449. data/.data/spec/std/isa/inst/Zba/add.uw.yaml +0 -4
  450. data/.data/spec/std/isa/inst/Zba/sh1add.uw.yaml +0 -4
  451. data/.data/spec/std/isa/inst/Zba/sh1add.yaml +0 -4
  452. data/.data/spec/std/isa/inst/Zba/sh2add.uw.yaml +0 -4
  453. data/.data/spec/std/isa/inst/Zba/sh2add.yaml +0 -4
  454. data/.data/spec/std/isa/inst/Zba/sh3add.uw.yaml +0 -4
  455. data/.data/spec/std/isa/inst/Zba/sh3add.yaml +0 -4
  456. data/.data/spec/std/isa/inst/Zba/slli.uw.yaml +0 -4
  457. data/.data/spec/std/isa/inst/Zbb/clz.yaml +0 -4
  458. data/.data/spec/std/isa/inst/Zbb/clzw.yaml +0 -4
  459. data/.data/spec/std/isa/inst/Zbb/cpop.yaml +0 -4
  460. data/.data/spec/std/isa/inst/Zbb/cpopw.yaml +0 -4
  461. data/.data/spec/std/isa/inst/Zbb/ctz.yaml +0 -4
  462. data/.data/spec/std/isa/inst/Zbb/ctzw.yaml +0 -4
  463. data/.data/spec/std/isa/inst/Zbb/max.yaml +0 -4
  464. data/.data/spec/std/isa/inst/Zbb/maxu.yaml +0 -4
  465. data/.data/spec/std/isa/inst/Zbb/min.yaml +0 -4
  466. data/.data/spec/std/isa/inst/Zbb/minu.yaml +0 -4
  467. data/.data/spec/std/isa/inst/Zbb/orc.b.yaml +0 -4
  468. data/.data/spec/std/isa/inst/Zbb/sext.b.yaml +0 -4
  469. data/.data/spec/std/isa/inst/Zbb/sext.h.yaml +0 -4
  470. data/.data/spec/std/isa/inst/Zbb/zext.h.yaml +0 -4
  471. data/.data/spec/std/isa/inst/Zbc/clmulr.yaml +0 -4
  472. data/.data/spec/std/isa/inst/{B → Zbkc}/clmul.yaml +1 -7
  473. data/.data/spec/std/isa/inst/{B → Zbkc}/clmulh.yaml +1 -7
  474. data/.data/spec/std/isa/inst/Zbs/bclr.yaml +0 -4
  475. data/.data/spec/std/isa/inst/Zbs/bclri.yaml +0 -4
  476. data/.data/spec/std/isa/inst/Zbs/bext.yaml +0 -4
  477. data/.data/spec/std/isa/inst/Zbs/bexti.yaml +0 -4
  478. data/.data/spec/std/isa/inst/Zbs/binv.yaml +0 -4
  479. data/.data/spec/std/isa/inst/Zbs/binvi.yaml +0 -4
  480. data/.data/spec/std/isa/inst/Zbs/bset.yaml +0 -4
  481. data/.data/spec/std/isa/inst/Zbs/bseti.yaml +0 -4
  482. data/.data/spec/std/isa/inst/Zcb/c.lbu.yaml +2 -2
  483. data/.data/spec/std/isa/inst/Zcb/c.lh.yaml +2 -2
  484. data/.data/spec/std/isa/inst/Zcb/c.lhu.yaml +2 -2
  485. data/.data/spec/std/isa/inst/Zcb/c.mul.yaml +2 -6
  486. data/.data/spec/std/isa/inst/Zcb/c.not.yaml +2 -2
  487. data/.data/spec/std/isa/inst/Zcb/c.sb.yaml +2 -2
  488. data/.data/spec/std/isa/inst/Zcb/c.sext.b.yaml +2 -6
  489. data/.data/spec/std/isa/inst/Zcb/c.sext.h.yaml +2 -6
  490. data/.data/spec/std/isa/inst/Zcb/c.sh.yaml +2 -2
  491. data/.data/spec/std/isa/inst/Zcb/c.zext.b.yaml +2 -2
  492. data/.data/spec/std/isa/inst/Zcb/c.zext.h.yaml +2 -6
  493. data/.data/spec/std/isa/inst/Zcb/c.zext.w.yaml +2 -6
  494. data/.data/spec/std/isa/inst/Zcd/c.fld.yaml +3 -3
  495. data/.data/spec/std/isa/inst/Zcd/c.fldsp.yaml +4 -4
  496. data/.data/spec/std/isa/inst/Zcd/c.fsd.yaml +3 -3
  497. data/.data/spec/std/isa/inst/Zcd/c.fsdsp.yaml +4 -4
  498. data/.data/spec/std/isa/inst/Zcf/c.flw.yaml +3 -3
  499. data/.data/spec/std/isa/inst/Zcf/c.flwsp.yaml +4 -4
  500. data/.data/spec/std/isa/inst/Zcf/c.fsw.yaml +3 -3
  501. data/.data/spec/std/isa/inst/Zcf/c.fswsp.yaml +4 -4
  502. data/.data/spec/std/isa/inst/Zcmp/cm.mva01s.yaml +2 -2
  503. data/.data/spec/std/isa/inst/Zcmp/cm.mvsa01.yaml +2 -2
  504. data/.data/spec/std/isa/inst/Zcmp/cm.pop.yaml +2 -2
  505. data/.data/spec/std/isa/inst/Zcmp/cm.popret.yaml +2 -2
  506. data/.data/spec/std/isa/inst/Zcmp/cm.popretz.yaml +2 -2
  507. data/.data/spec/std/isa/inst/Zcmp/cm.push.yaml +2 -2
  508. data/.data/spec/std/isa/inst/Zicbom/cbo.clean.yaml +2 -2
  509. data/.data/spec/std/isa/inst/Zicbom/cbo.flush.yaml +2 -2
  510. data/.data/spec/std/isa/inst/Zicbom/cbo.inval.yaml +2 -2
  511. data/.data/spec/std/isa/inst/Zicboz/cbo.zero.yaml +2 -2
  512. data/.data/spec/std/isa/inst/Zvfbfmin/vfncvtbf16.f.f.w.yaml +3 -1
  513. data/.data/spec/std/isa/inst/Zvfbfmin/vfwcvtbf16.f.f.v.yaml +3 -1
  514. data/.data/spec/std/isa/inst/Zvfofp4min/vfext.vf2.yaml +35 -0
  515. data/.data/spec/std/isa/inst/Zvfofp8min/vfncvt.f.f.q.yaml +31 -0
  516. data/.data/spec/std/isa/inst/Zvfofp8min/vfncvt.sat.f.f.q.yaml +32 -0
  517. data/.data/spec/std/isa/inst/Zvfofp8min/vfncvtbf16.sat.f.f.w.yaml +32 -0
  518. data/.data/spec/std/isa/isa/builtin_functions.idl +3 -1
  519. data/.data/spec/std/isa/isa/util.idl +1 -0
  520. data/.data/spec/std/isa/param/COUNTINHIBIT_EN.yaml +2 -10
  521. data/.data/spec/std/isa/param/HCOUNTENABLE_EN.yaml +2 -5
  522. data/.data/spec/std/isa/param/HPM_COUNTER10_WIDTH.yaml +29 -0
  523. data/.data/spec/std/isa/param/HPM_COUNTER11_WIDTH.yaml +29 -0
  524. data/.data/spec/std/isa/param/HPM_COUNTER12_WIDTH.yaml +29 -0
  525. data/.data/spec/std/isa/param/HPM_COUNTER13_WIDTH.yaml +29 -0
  526. data/.data/spec/std/isa/param/HPM_COUNTER14_WIDTH.yaml +29 -0
  527. data/.data/spec/std/isa/param/HPM_COUNTER15_WIDTH.yaml +29 -0
  528. data/.data/spec/std/isa/param/HPM_COUNTER16_WIDTH.yaml +29 -0
  529. data/.data/spec/std/isa/param/HPM_COUNTER17_WIDTH.yaml +29 -0
  530. data/.data/spec/std/isa/param/HPM_COUNTER18_WIDTH.yaml +29 -0
  531. data/.data/spec/std/isa/param/HPM_COUNTER19_WIDTH.yaml +29 -0
  532. data/.data/spec/std/isa/param/HPM_COUNTER20_WIDTH.yaml +29 -0
  533. data/.data/spec/std/isa/param/HPM_COUNTER21_WIDTH.yaml +29 -0
  534. data/.data/spec/std/isa/param/HPM_COUNTER22_WIDTH.yaml +29 -0
  535. data/.data/spec/std/isa/param/HPM_COUNTER23_WIDTH.yaml +29 -0
  536. data/.data/spec/std/isa/param/HPM_COUNTER24_WIDTH.yaml +29 -0
  537. data/.data/spec/std/isa/param/HPM_COUNTER25_WIDTH.yaml +29 -0
  538. data/.data/spec/std/isa/param/HPM_COUNTER26_WIDTH.yaml +29 -0
  539. data/.data/spec/std/isa/param/HPM_COUNTER27_WIDTH.yaml +29 -0
  540. data/.data/spec/std/isa/param/HPM_COUNTER28_WIDTH.yaml +29 -0
  541. data/.data/spec/std/isa/param/HPM_COUNTER29_WIDTH.yaml +29 -0
  542. data/.data/spec/std/isa/param/HPM_COUNTER30_WIDTH.yaml +29 -0
  543. data/.data/spec/std/isa/param/HPM_COUNTER31_WIDTH.yaml +29 -0
  544. data/.data/spec/std/isa/param/HPM_COUNTER3_WIDTH.yaml +29 -0
  545. data/.data/spec/std/isa/param/HPM_COUNTER4_WIDTH.yaml +29 -0
  546. data/.data/spec/std/isa/param/HPM_COUNTER5_WIDTH.yaml +29 -0
  547. data/.data/spec/std/isa/param/HPM_COUNTER6_WIDTH.yaml +29 -0
  548. data/.data/spec/std/isa/param/HPM_COUNTER7_WIDTH.yaml +29 -0
  549. data/.data/spec/std/isa/param/HPM_COUNTER8_WIDTH.yaml +29 -0
  550. data/.data/spec/std/isa/param/HPM_COUNTER9_WIDTH.yaml +29 -0
  551. data/.data/spec/std/isa/param/HPM_COUNTERN_WIDTH.layout +27 -0
  552. data/.data/spec/std/isa/param/HW_MSTATUS_FS_DIRTY_UPDATE.yaml +2 -4
  553. data/.data/spec/std/isa/param/HW_MSTATUS_VS_DIRTY_UPDATE.yaml +2 -4
  554. data/.data/spec/std/isa/param/LRSC_FAIL_ON_NON_EXACT_LRSC.yaml +1 -1
  555. data/.data/spec/std/isa/param/LRSC_FAIL_ON_VA_SYNONYM.yaml +1 -1
  556. data/.data/spec/std/isa/param/LRSC_MISALIGNED_BEHAVIOR.yaml +4 -4
  557. data/.data/spec/std/isa/param/LRSC_RESERVATION_STRATEGY.yaml +1 -1
  558. data/.data/spec/std/isa/param/MCOUNTENABLE_EN.yaml +2 -5
  559. data/.data/spec/std/isa/param/MEI_INTR_IMPL.yaml +28 -0
  560. data/.data/spec/std/isa/param/MSI_INTR_IMPL.yaml +28 -0
  561. data/.data/spec/std/isa/param/MSTATUS_FS_LEGAL_VALUES.yaml +8 -15
  562. data/.data/spec/std/isa/param/MSTATUS_VS_LEGAL_VALUES.yaml +7 -15
  563. data/.data/spec/std/isa/param/MTI_INTR_IMPL.yaml +28 -0
  564. data/.data/spec/std/isa/param/MTVAL_WIDTH.yaml +17 -5
  565. data/.data/spec/std/isa/param/MUTABLE_MISA_A.yaml +1 -1
  566. data/.data/spec/std/isa/param/MUTABLE_MISA_B.yaml +1 -1
  567. data/.data/spec/std/isa/param/MUTABLE_MISA_C.yaml +1 -1
  568. data/.data/spec/std/isa/param/MUTABLE_MISA_D.yaml +1 -1
  569. data/.data/spec/std/isa/param/MUTABLE_MISA_F.yaml +1 -1
  570. data/.data/spec/std/isa/param/MUTABLE_MISA_M.yaml +1 -1
  571. data/.data/spec/std/isa/param/MUTABLE_MISA_Q.yaml +1 -1
  572. data/.data/spec/std/isa/param/MUTABLE_MISA_U.yaml +1 -1
  573. data/.data/spec/std/isa/param/MUTABLE_MISA_V.yaml +1 -1
  574. data/.data/spec/std/isa/param/{PMLEN.yaml → NON_STANDARD_EXTENSION_IMPLEMENTED.yaml} +6 -9
  575. data/.data/spec/std/isa/param/NUM_EXTERNAL_GUEST_INTERRUPTS.yaml +1 -1
  576. data/.data/spec/std/isa/param/NUM_PMP_ENTRIES.yaml +1 -1
  577. data/.data/spec/std/isa/param/REPORT_CAUSE_IN_MTVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
  578. data/.data/spec/std/isa/param/REPORT_CAUSE_IN_STVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
  579. data/.data/spec/std/isa/param/REPORT_CAUSE_IN_VSTVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
  580. data/.data/spec/std/isa/param/SCOUNTENABLE_EN.yaml +2 -6
  581. data/.data/spec/std/isa/param/SCTRDEPTH_DEPTH_LEGAL_VALUES.yaml +27 -0
  582. data/.data/spec/std/isa/param/SEI_INTR_IMPL.yaml +28 -0
  583. data/.data/spec/std/isa/param/SSI_INTR_IMPL.yaml +28 -0
  584. data/.data/spec/std/isa/param/STI_INTR_IMPL.yaml +33 -0
  585. data/.data/spec/std/isa/param/STVAL_WIDTH.yaml +81 -0
  586. data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SMMPM.yaml +40 -0
  587. data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SMNPM.yaml +42 -0
  588. data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SSNPM.yaml +42 -0
  589. data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_S.yaml +1 -1
  590. data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_U.yaml +1 -1
  591. data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_VS.yaml +1 -1
  592. data/.data/spec/std/isa/param/TRAP_ON_SFENCE_VMA_WHEN_SATP_MODE_IS_READ_ONLY.yaml +1 -1
  593. data/.data/spec/std/isa/param/VSEI_INTR_IMPL.yaml +28 -0
  594. data/.data/spec/std/isa/param/VSSI_INTR_IMPL.yaml +28 -0
  595. data/.data/spec/std/isa/param/VSTI_INTR_IMPL.yaml +33 -0
  596. data/.data/spec/std/isa/param/WFI_FINITE.yaml +20 -0
  597. data/.data/spec/std/isa/param/WFI_U_MODE.yaml +20 -0
  598. data/lib/udb/Z3_VERSION +1 -1
  599. data/lib/udb/log.rb +16 -0
  600. data/lib/udb/obj/csr.rb +38 -45
  601. data/lib/udb/obj/database_obj.rb +1 -1
  602. data/lib/udb/obj/exception_code.rb +3 -3
  603. data/lib/udb/version.rb +1 -1
  604. metadata +79 -10
@@ -101,8 +101,16 @@ fields:
101
101
  *Supervisor Software Interrupt delegation*
102
102
 
103
103
  When 1, Supervisor Software interrupts are delegated to HS/S-mode.
104
- type: RW
104
+ type(): |
105
+ return SSI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
105
106
  reset_value: 0
107
+ sw_write(csr_value): |
108
+ if (csr_value.SSI == 0) {
109
+ if (implemented?(ExtensionName::H)) {
110
+ CSR[hideleg].SSI = 0;
111
+ }
112
+ }
113
+ return csr_value.SSI;
106
114
  VSSI:
107
115
  location: 2
108
116
  description: |
@@ -116,13 +124,22 @@ fields:
116
124
  definedBy:
117
125
  extension:
118
126
  name: H
127
+ sw_write(csr_value): |
128
+ if (csr_value.VSSI == 0) {
129
+ CSR[hie].VSSIE = 0;
130
+ CSR[hip].VSSIP = 0;
131
+ CSR[hideleg].VSSI = 0;
132
+ }
133
+ return csr_value.VSSI;
119
134
  MSI:
120
135
  location: 3
121
136
  description: |
122
137
  *Machine Software interrupt delegation*
123
138
 
124
- Since M-mode interrupts cannot be delegated, this field is read-only zero.
125
- type: RO
139
+ When 1, Machine Software interrupts are delegated to HS/S-mode.
140
+ This is unusual but permitted. See https://github.com/riscv/riscv-isa-manual/issues/3162.
141
+ type(): |
142
+ return MSI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
126
143
  reset_value: 0
127
144
  STI:
128
145
  location: 5
@@ -130,7 +147,8 @@ fields:
130
147
  *Supervisor Timer interrupt delegation*
131
148
 
132
149
  When 1, Supervisor Timer interrupts are delegated to HS/S-mode.
133
- type: RW
150
+ type(): |
151
+ return STI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
134
152
  reset_value: 0
135
153
  VSTI:
136
154
  location: 6
@@ -145,13 +163,22 @@ fields:
145
163
  definedBy:
146
164
  extension:
147
165
  name: H
166
+ sw_write(csr_value): |
167
+ if (csr_value.VSTI == 0) {
168
+ CSR[hie].VSTIE = 0;
169
+ CSR[hip].VSTIP = 0;
170
+ CSR[hideleg].VSTI = 0;
171
+ }
172
+ return csr_value.VSTI;
148
173
  MTI:
149
174
  location: 7
150
175
  description: |
151
176
  *Machine Timer interrupt delegation*
152
177
 
153
- Since M-mode interrupts cannot be delegated, this field is read-only zero.
154
- type: RO
178
+ When 1, Machine Timer interrupts are delegated to HS/S-mode.
179
+ This is unusual but permitted. See https://github.com/riscv/riscv-isa-manual/issues/3162.
180
+ type(): |
181
+ return MTI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
155
182
  reset_value: 0
156
183
  SEI:
157
184
  location: 9
@@ -159,7 +186,8 @@ fields:
159
186
  *Supervisor External interrupt delegation*
160
187
 
161
188
  When 1, Supervisor External interrupts are delegated to HS/S-mode.
162
- type: RW
189
+ type(): |
190
+ return SEI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
163
191
  reset_value: 0
164
192
  VSEI:
165
193
  location: 10
@@ -172,13 +200,22 @@ fields:
172
200
  definedBy:
173
201
  extension:
174
202
  name: H
203
+ sw_write(csr_value): |
204
+ if (csr_value.VSEI == 0) {
205
+ CSR[hie].VSEIE = 0;
206
+ CSR[hip].VSEIP = 0;
207
+ CSR[hideleg].VSEI = 0;
208
+ }
209
+ return csr_value.VSEI;
175
210
  MEI:
176
211
  location: 11
177
212
  description: |
178
213
  *Machine External interrupt delegation*
179
214
 
180
- Since M-mode interrupts cannot be delegated, this field is read-only zero.
181
- type: RO
215
+ When 1, Machine External interrupts are delegated to HS/S-mode.
216
+ This is unusual but permitted. See https://github.com/riscv/riscv-isa-manual/issues/3162.
217
+ type(): |
218
+ return MEI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
182
219
  reset_value: 0
183
220
  SGEI:
184
221
  location: 12
@@ -191,6 +228,12 @@ fields:
191
228
  definedBy:
192
229
  extension:
193
230
  name: H
231
+ sw_write(csr_value): |
232
+ if (csr_value.SGEI == 0) {
233
+ CSR[hie].SGEIE = 0;
234
+ CSR[hip].SGEIP = 0;
235
+ }
236
+ return csr_value.SGEI;
194
237
  LCOFI:
195
238
  location: 13
196
239
  description: |
@@ -202,3 +245,8 @@ fields:
202
245
  definedBy:
203
246
  extension:
204
247
  name: Sscofpmf
248
+ sw_write(csr_value): |
249
+ if (csr_value.LCOFI == 0) {
250
+ CSR[hideleg].LCOFI = 0;
251
+ }
252
+ return csr_value.LCOFI;
@@ -20,7 +20,8 @@ fields:
20
20
  location: 1
21
21
  description: |
22
22
  Enables Supervisor Software Interrupts.
23
- type: RW
23
+ type(): |
24
+ return SSI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
24
25
  definedBy:
25
26
  extension:
26
27
  name: S
@@ -29,7 +30,8 @@ fields:
29
30
  location: 2
30
31
  description: |
31
32
  Enables Virtual Supervisor Software Interrupts.
32
- type: RW
33
+ type(): |
34
+ return VSSI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
33
35
  definedBy:
34
36
  extension:
35
37
  name: H
@@ -37,13 +39,15 @@ fields:
37
39
  MSIE:
38
40
  location: 3
39
41
  description: Enables Machine Software Interrupts.
40
- type: RW
42
+ type(): |
43
+ return MSI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
41
44
  reset_value: 0
42
45
  STIE:
43
46
  location: 5
44
47
  description: |
45
48
  Enables Supervisor Timer Interrupts.
46
- type: RW
49
+ type(): |
50
+ return STI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
47
51
  definedBy:
48
52
  extension:
49
53
  name: S
@@ -52,7 +56,8 @@ fields:
52
56
  location: 6
53
57
  description: |
54
58
  Enables Virtual Supervisor Timer Interrupts.
55
- type: RW
59
+ type(): |
60
+ return VSTI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
56
61
  definedBy:
57
62
  extension:
58
63
  name: H
@@ -60,13 +65,15 @@ fields:
60
65
  MTIE:
61
66
  location: 7
62
67
  description: Enables Machine Timer Interrupts.
63
- type: RW
68
+ type(): |
69
+ return MTI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
64
70
  reset_value: 0
65
71
  SEIE:
66
72
  location: 9
67
73
  description: |
68
74
  Enables Supervisor External Interrupts.
69
- type: RW
75
+ type(): |
76
+ return SEI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
70
77
  definedBy:
71
78
  extension:
72
79
  name: S
@@ -75,7 +82,8 @@ fields:
75
82
  location: 10
76
83
  description: |
77
84
  Enables Virtual Supervisor External Interrupts.
78
- type: RW
85
+ type(): |
86
+ return VSEI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
79
87
  definedBy:
80
88
  extension:
81
89
  name: H
@@ -83,7 +91,8 @@ fields:
83
91
  MEIE:
84
92
  location: 11
85
93
  description: Enables Machine External Interrupts.
86
- type: RW
94
+ type(): |
95
+ return MEI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
87
96
  reset_value: 0
88
97
  SGEIE:
89
98
  location: 12
@@ -185,7 +185,8 @@ fields:
185
185
  <%- if ext?(:Smaia) -%>
186
186
  * `mvip.SSIP`
187
187
  <%- end -%>
188
- type: RW
188
+ type(): |
189
+ return SSI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
189
190
  reset_value: 0
190
191
  definedBy:
191
192
  extension:
@@ -214,7 +215,8 @@ fields:
214
215
  * `hip.VSSIP`
215
216
  * `hvip.VSSIP`
216
217
  * `vsip.SSIP` when `hideleg.VSSI` is set
217
- type: RW
218
+ type(): |
219
+ return VSSI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
218
220
  reset_value: 0
219
221
  definedBy:
220
222
  extension:
@@ -225,13 +227,16 @@ fields:
225
227
  description: |
226
228
  *Machine Software Interrupt Pending*
227
229
 
228
- Unused field.
230
+ Interrupt-pending bit for machine-level software interrupts.
231
+ MSIP is read-only in mip, and is written by accesses to memory-mapped control registers,
232
+ which are used to provide machine-level interprocessor interrupts.
229
233
 
230
234
  <%- if ext?(:Smaia) -%>
231
235
  With AIA/IMSIC, IPIs are delivered as external interrupts. As a result, this bit is
232
236
  unused and hardwired to 0.
233
237
  <%- end -%>
234
- type: RO
238
+ type(): |
239
+ return MSI_INTR_IMPL ? CsrFieldType::ROH : CsrFieldType::RO;
235
240
  reset_value: 0
236
241
  STIP:
237
242
  location: 5
@@ -261,7 +266,8 @@ fields:
261
266
  * `mvip.STIP` when when `menvcfg.STCE` is clear
262
267
  <%- end -%>
263
268
 
264
- type: RW
269
+ type(): |
270
+ return STI_INTR_IMPL ? CsrFieldType::RW : CsrFieldType::RO;
265
271
  reset_value: 0
266
272
  definedBy:
267
273
  extension:
@@ -298,7 +304,8 @@ fields:
298
304
  * `hip.VSTIP`
299
305
  * `vsip.STIP` when `hideleg.VSTI` is set
300
306
  * `hvip.VSTIP` <% if ext?(:Sstc) %>when `menvcfg.STCE` is clear<% end %> (though `hvip.VSTIP` is writable)
301
- type: RO-H
307
+ type(): |
308
+ return VSTI_INTR_IMPL ? CsrFieldType::ROH : CsrFieldType::RO;
302
309
  reset_value: 0
303
310
  definedBy:
304
311
  extension:
@@ -312,7 +319,8 @@ fields:
312
319
  Reports the current pending state of an M-mode timer interrupt.
313
320
 
314
321
  Bit is controlled by the timer device (using `mtimecmp`), and is not writable.
315
- type: RO-H
322
+ type(): |
323
+ return MTI_INTR_IMPL ? CsrFieldType::ROH : CsrFieldType::RO;
316
324
  reset_value: 0
317
325
  SEIP:
318
326
  location: 9
@@ -334,7 +342,8 @@ fields:
334
342
  _Alias_:
335
343
 
336
344
  * `sip.SEIP` when `mideleg.SEI` is set (though `sip.SEIP` is read-only)
337
- type: RW-H
345
+ type(): |
346
+ return SEI_INTR_IMPL ? CsrFieldType::RWH : CsrFieldType::RO;
338
347
  definedBy:
339
348
  extension:
340
349
  name: S
@@ -363,7 +372,8 @@ fields:
363
372
 
364
373
  * `hip.VSEIP`
365
374
  * `vsip.SEIP` when `hideleg.VSEI` is set
366
- type: RO-H
375
+ type(): |
376
+ return VSEI_INTR_IMPL ? CsrFieldType::ROH : CsrFieldType::RO;
367
377
  reset_value: 0
368
378
  definedBy:
369
379
  extension:
@@ -378,7 +388,8 @@ fields:
378
388
 
379
389
  MEIP is controlled by the external interrupt controller <% if ext?(:Smaia) %>(AIA) <% end %>.
380
390
  It is not writable by software.
381
- type: RO-H
391
+ type(): |
392
+ return MEI_INTR_IMPL ? CsrFieldType::ROH : CsrFieldType::RO;
382
393
  reset_value: 0
383
394
  SGEIP:
384
395
  location: 12
@@ -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(): |
@@ -157,7 +151,9 @@ fields:
157
151
  Indicates support for the `M` (integer multiply/divide) extension.
158
152
 
159
153
  [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.
154
+ Writing 0 to this field will cause all attempts to execute an integer divide or
155
+ remainder instruction to raise an `IllegalInstruction` exception. The multiply
156
+ instructions are provided by `Zmmul` and are unaffected.
161
157
  type(): |
162
158
  return (implemented?(ExtensionName::M) && MUTABLE_MISA_M) ? CsrFieldType::RW : CsrFieldType::RO;
163
159
  reset_value(): |
@@ -229,9 +225,17 @@ fields:
229
225
  definedBy:
230
226
  extension:
231
227
  name: Zvl32b
228
+ X:
229
+ location: 23
230
+ description: |
231
+ The `X` bit will be set if there are any non-standard extensions.
232
+ type: RO
233
+ reset_value(): |
234
+ return NON_STANDARD_EXTENSION_IMPLEMENTED ? 1 : 0;
232
235
  sw_read(): |
233
236
  return (
234
237
  (CSR[misa].MXL `<< (xlen() - 2)) |
238
+ (CSR[misa].X `<< 23) |
235
239
  (CSR[misa].V `<< 21) |
236
240
  (CSR[misa].U `<< 20) |
237
241
  (CSR[misa].S `<< 18) |
@@ -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;
@@ -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::
@@ -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,37 @@
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
+ extension:
17
+ name: Sdtrig
18
+ fields:
19
+ MPTE:
20
+ location: 7
21
+ description: |
22
+ M-mode previous trigger enable field.
23
+ MPTE and MTE provide one solution to a problem regarding triggers with action=0
24
+ firing in M-mode trap handlers.
25
+ When any trap into M-mode is taken, MPTE is set to the value of MTE.
26
+ type: RW-H
27
+ reset_value: 0
28
+ MTE:
29
+ location: 3
30
+ description: |
31
+ M-mode trigger enable field.
32
+ 0 (disabled):: Triggers with action=0 do not match/fire while the hart is in M-mode.
33
+ 1 (enabled):: Triggers do match/fire while the hart is in M-mode.
34
+ When any trap into M-mode is taken, MTE is set to 0. When `mret` is executed, MTE is
35
+ set to the value of MPTE.
36
+ type: RW-H
37
+ reset_value: 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
@@ -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
@@ -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
@@ -43,9 +43,9 @@ versions:
43
43
  requirements:
44
44
  allOf:
45
45
  - param:
46
- name: TRAP_ON_UNIMPLEMENTED_INSTRUCTION
46
+ name: TRAP_ON_RESERVED_INSTRUCTION
47
47
  equal: true
48
- reason: Ssstrict requires unimplemented opcodes to trap
48
+ reason: Ssstrict requires unimplemented opcodes in the standard or reserved encoding spaces to trap
49
49
  - param:
50
50
  name: TRAP_ON_UNIMPLEMENTED_CSR
51
51
  equal: true
@@ -6,8 +6,8 @@
6
6
  $schema: "ext_schema.json#"
7
7
  kind: extension
8
8
  name: Sv32
9
- long_name: 32-bit virtual address translation (3 level)
10
- description: 32-bit virtual address translation (3 level)
9
+ long_name: 32-bit virtual address translation (2 level)
10
+ description: 32-bit virtual address translation (2 level)
11
11
  type: privileged
12
12
  versions:
13
13
  - version: "1.0"
@@ -8,8 +8,8 @@ kind: extension
8
8
  name: Svpbmt
9
9
  long_name: Page-based memory types
10
10
  description: |
11
- This extension mandates that the `satp` mode Bare must
12
- be supported.
11
+ This extension specifies page-based memory types, adding the PBMT field
12
+ to page-table entries to control memory type, cacheability, and ordering attributes.
13
13
  type: privileged
14
14
  versions:
15
15
  - version: "1.0.0"
@@ -6,7 +6,7 @@
6
6
  $schema: "ext_schema.json#"
7
7
  kind: extension
8
8
  name: Zaamo
9
- long_name: Load-acquire/Store-release atomic instructions
9
+ long_name: Atomic Memory Operations
10
10
  type: unprivileged
11
11
  versions:
12
12
  - version: "1.0.0"
@@ -17,6 +17,10 @@ versions:
17
17
  - version: "1.0.0"
18
18
  state: ratified
19
19
  ratification_date: 2021-06
20
+ requirements:
21
+ extension:
22
+ name: Zbkc
23
+ version: "~> 1.0.0"
20
24
  repositories:
21
25
  - url: https://github.com/riscv/riscv-bitmanip
22
26
  branch: main