udb 0.1.15 → 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 (692) hide show
  1. checksums.yaml +4 -4
  2. data/.data/cfgs/example_rv64_with_overlay.yaml +21 -0
  3. data/.data/cfgs/mc100-32-full-example.yaml +7 -0
  4. data/.data/cfgs/profile/RVA20S64.yaml +2 -0
  5. data/.data/cfgs/profile/RVA20U64.yaml +2 -0
  6. data/.data/cfgs/profile/RVA22S64.yaml +2 -0
  7. data/.data/cfgs/profile/RVA22U64.yaml +2 -0
  8. data/.data/cfgs/profile/RVA23S64.yaml +2 -0
  9. data/.data/cfgs/profile/RVA23U64.yaml +2 -0
  10. data/.data/cfgs/profile/RVB23S64.yaml +2 -0
  11. data/.data/cfgs/profile/RVB23U64.yaml +2 -0
  12. data/.data/cfgs/qc_iu.yaml +15 -0
  13. data/.data/cfgs/rv32-riscv-tests.yaml +10 -0
  14. data/.data/cfgs/rv32-vector.yaml +11 -1
  15. data/.data/cfgs/rv64-riscv-tests.yaml +10 -0
  16. data/.data/cfgs/rv64-vector.yaml +12 -2
  17. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.mva01s.yaml +2 -2
  18. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.mvsa01.yaml +2 -2
  19. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.pop.yaml +2 -2
  20. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.popret.yaml +2 -2
  21. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.popretz.yaml +2 -2
  22. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.push.yaml +2 -2
  23. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.pushfp.yaml +2 -2
  24. data/.data/spec/schemas/README.adoc +4 -1
  25. data/.data/spec/schemas/csr_schema.json +2 -2
  26. data/.data/spec/std/isa/csr/H/henvcfg.yaml +1 -1
  27. data/.data/spec/std/isa/csr/H/hgeie.yaml +38 -0
  28. data/.data/spec/std/isa/csr/H/hgeip.yaml +33 -0
  29. data/.data/spec/std/isa/csr/H/hideleg.yaml +120 -0
  30. data/.data/spec/std/isa/csr/H/hie.yaml +74 -0
  31. data/.data/spec/std/isa/csr/H/hip.yaml +88 -0
  32. data/.data/spec/std/isa/csr/H/htimedeltah.yaml +1 -1
  33. data/.data/spec/std/isa/csr/H/hvip.yaml +46 -0
  34. data/.data/spec/std/isa/csr/H/vsie.yaml +86 -0
  35. data/.data/spec/std/isa/csr/H/vsip.yaml +98 -0
  36. data/.data/spec/std/isa/csr/H/vsscratch.yaml +29 -0
  37. data/.data/spec/std/isa/csr/I/pmpaddr0.yaml +7 -7
  38. data/.data/spec/std/isa/csr/I/pmpaddr1.yaml +7 -7
  39. data/.data/spec/std/isa/csr/I/pmpaddr10.yaml +7 -7
  40. data/.data/spec/std/isa/csr/I/pmpaddr11.yaml +7 -7
  41. data/.data/spec/std/isa/csr/I/pmpaddr12.yaml +7 -7
  42. data/.data/spec/std/isa/csr/I/pmpaddr13.yaml +7 -7
  43. data/.data/spec/std/isa/csr/I/pmpaddr14.yaml +7 -7
  44. data/.data/spec/std/isa/csr/I/pmpaddr15.yaml +7 -7
  45. data/.data/spec/std/isa/csr/I/pmpaddr16.yaml +7 -7
  46. data/.data/spec/std/isa/csr/I/pmpaddr17.yaml +7 -7
  47. data/.data/spec/std/isa/csr/I/pmpaddr18.yaml +7 -7
  48. data/.data/spec/std/isa/csr/I/pmpaddr19.yaml +7 -7
  49. data/.data/spec/std/isa/csr/I/pmpaddr2.yaml +7 -7
  50. data/.data/spec/std/isa/csr/I/pmpaddr20.yaml +7 -7
  51. data/.data/spec/std/isa/csr/I/pmpaddr21.yaml +7 -7
  52. data/.data/spec/std/isa/csr/I/pmpaddr22.yaml +7 -7
  53. data/.data/spec/std/isa/csr/I/pmpaddr23.yaml +7 -7
  54. data/.data/spec/std/isa/csr/I/pmpaddr24.yaml +7 -7
  55. data/.data/spec/std/isa/csr/I/pmpaddr25.yaml +7 -7
  56. data/.data/spec/std/isa/csr/I/pmpaddr26.yaml +7 -7
  57. data/.data/spec/std/isa/csr/I/pmpaddr27.yaml +7 -7
  58. data/.data/spec/std/isa/csr/I/pmpaddr28.yaml +7 -7
  59. data/.data/spec/std/isa/csr/I/pmpaddr29.yaml +7 -7
  60. data/.data/spec/std/isa/csr/I/pmpaddr3.yaml +7 -7
  61. data/.data/spec/std/isa/csr/I/pmpaddr30.yaml +7 -7
  62. data/.data/spec/std/isa/csr/I/pmpaddr31.yaml +7 -7
  63. data/.data/spec/std/isa/csr/I/pmpaddr32.yaml +7 -7
  64. data/.data/spec/std/isa/csr/I/pmpaddr33.yaml +7 -7
  65. data/.data/spec/std/isa/csr/I/pmpaddr34.yaml +7 -7
  66. data/.data/spec/std/isa/csr/I/pmpaddr35.yaml +7 -7
  67. data/.data/spec/std/isa/csr/I/pmpaddr36.yaml +7 -7
  68. data/.data/spec/std/isa/csr/I/pmpaddr37.yaml +7 -7
  69. data/.data/spec/std/isa/csr/I/pmpaddr38.yaml +7 -7
  70. data/.data/spec/std/isa/csr/I/pmpaddr39.yaml +7 -7
  71. data/.data/spec/std/isa/csr/I/pmpaddr4.yaml +7 -7
  72. data/.data/spec/std/isa/csr/I/pmpaddr40.yaml +7 -7
  73. data/.data/spec/std/isa/csr/I/pmpaddr41.yaml +7 -7
  74. data/.data/spec/std/isa/csr/I/pmpaddr42.yaml +7 -7
  75. data/.data/spec/std/isa/csr/I/pmpaddr43.yaml +7 -7
  76. data/.data/spec/std/isa/csr/I/pmpaddr44.yaml +7 -7
  77. data/.data/spec/std/isa/csr/I/pmpaddr45.yaml +7 -7
  78. data/.data/spec/std/isa/csr/I/pmpaddr46.yaml +7 -7
  79. data/.data/spec/std/isa/csr/I/pmpaddr47.yaml +7 -7
  80. data/.data/spec/std/isa/csr/I/pmpaddr48.yaml +7 -7
  81. data/.data/spec/std/isa/csr/I/pmpaddr49.yaml +7 -7
  82. data/.data/spec/std/isa/csr/I/pmpaddr5.yaml +7 -7
  83. data/.data/spec/std/isa/csr/I/pmpaddr50.yaml +7 -7
  84. data/.data/spec/std/isa/csr/I/pmpaddr51.yaml +7 -7
  85. data/.data/spec/std/isa/csr/I/pmpaddr52.yaml +7 -7
  86. data/.data/spec/std/isa/csr/I/pmpaddr53.yaml +7 -7
  87. data/.data/spec/std/isa/csr/I/pmpaddr54.yaml +7 -7
  88. data/.data/spec/std/isa/csr/I/pmpaddr55.yaml +7 -7
  89. data/.data/spec/std/isa/csr/I/pmpaddr56.yaml +7 -7
  90. data/.data/spec/std/isa/csr/I/pmpaddr57.yaml +7 -7
  91. data/.data/spec/std/isa/csr/I/pmpaddr58.yaml +7 -7
  92. data/.data/spec/std/isa/csr/I/pmpaddr59.yaml +7 -7
  93. data/.data/spec/std/isa/csr/I/pmpaddr6.yaml +7 -7
  94. data/.data/spec/std/isa/csr/I/pmpaddr60.yaml +7 -7
  95. data/.data/spec/std/isa/csr/I/pmpaddr61.yaml +7 -7
  96. data/.data/spec/std/isa/csr/I/pmpaddr62.yaml +7 -7
  97. data/.data/spec/std/isa/csr/I/pmpaddr63.yaml +7 -7
  98. data/.data/spec/std/isa/csr/I/pmpaddr7.yaml +7 -7
  99. data/.data/spec/std/isa/csr/I/pmpaddr8.yaml +7 -7
  100. data/.data/spec/std/isa/csr/I/pmpaddr9.yaml +7 -7
  101. data/.data/spec/std/isa/csr/I/pmpaddrN.layout +7 -7
  102. data/.data/spec/std/isa/csr/Smcsrind/mireg.yaml +2 -2
  103. data/.data/spec/std/isa/csr/Smcsrind/mireg2.yaml +2 -2
  104. data/.data/spec/std/isa/csr/Smcsrind/mireg3.yaml +2 -2
  105. data/.data/spec/std/isa/csr/Smcsrind/mireg4.yaml +2 -2
  106. data/.data/spec/std/isa/csr/Smcsrind/mireg5.yaml +2 -2
  107. data/.data/spec/std/isa/csr/Smcsrind/mireg6.yaml +2 -2
  108. data/.data/spec/std/isa/csr/Smcsrind/sireg.yaml +2 -2
  109. data/.data/spec/std/isa/csr/Smcsrind/sireg2.yaml +2 -2
  110. data/.data/spec/std/isa/csr/Smcsrind/sireg3.yaml +2 -2
  111. data/.data/spec/std/isa/csr/Smcsrind/sireg4.yaml +2 -2
  112. data/.data/spec/std/isa/csr/Smcsrind/sireg5.yaml +2 -2
  113. data/.data/spec/std/isa/csr/Smcsrind/sireg6.yaml +2 -2
  114. data/.data/spec/std/isa/csr/Smcsrind/vsireg.yaml +2 -2
  115. data/.data/spec/std/isa/csr/Smcsrind/vsireg2.yaml +2 -2
  116. data/.data/spec/std/isa/csr/Smcsrind/vsireg3.yaml +2 -2
  117. data/.data/spec/std/isa/csr/Smcsrind/vsireg4.yaml +2 -2
  118. data/.data/spec/std/isa/csr/Smcsrind/vsireg5.yaml +2 -2
  119. data/.data/spec/std/isa/csr/Smcsrind/vsireg6.yaml +2 -2
  120. data/.data/spec/std/isa/csr/Smctr/sctrctl.yaml +1 -1
  121. data/.data/spec/std/isa/csr/Smctr/sctrdepth.yaml +43 -0
  122. data/.data/spec/std/isa/csr/Smctr/sctrstatus.yaml +37 -0
  123. data/.data/spec/std/isa/csr/Smctr/vsctrctl.yaml +4 -2
  124. data/.data/spec/std/isa/csr/Sstc/stimecmp.yaml +42 -0
  125. data/.data/spec/std/isa/csr/Sstc/stimecmph.yaml +43 -0
  126. data/.data/spec/std/isa/csr/Sstc/vstimecmp.yaml +45 -0
  127. data/.data/spec/std/isa/csr/Sstc/vstimecmph.yaml +46 -0
  128. data/.data/spec/std/isa/csr/V/vcsr.yaml +1 -1
  129. data/.data/spec/std/isa/csr/V/vl.yaml +1 -1
  130. data/.data/spec/std/isa/csr/V/vlenb.yaml +1 -1
  131. data/.data/spec/std/isa/csr/V/vstart.yaml +1 -1
  132. data/.data/spec/std/isa/csr/V/vtype.yaml +20 -1
  133. data/.data/spec/std/isa/csr/V/vxrm.yaml +1 -1
  134. data/.data/spec/std/isa/csr/V/vxsat.yaml +1 -1
  135. data/.data/spec/std/isa/csr/Zicntr/mcountinhibit.layout +1 -15
  136. data/.data/spec/std/isa/csr/Zicntr/mcountinhibit.yaml +29 -267
  137. data/.data/spec/std/isa/csr/hstateen0h.yaml +1 -1
  138. data/.data/spec/std/isa/csr/hstateen1h.yaml +1 -1
  139. data/.data/spec/std/isa/csr/hstateen2h.yaml +1 -1
  140. data/.data/spec/std/isa/csr/hstateen3h.yaml +1 -1
  141. data/.data/spec/std/isa/csr/instreth.yaml +1 -3
  142. data/.data/spec/std/isa/csr/mideleg.yaml +57 -9
  143. data/.data/spec/std/isa/csr/mie.yaml +18 -9
  144. data/.data/spec/std/isa/csr/minstreth.yaml +1 -1
  145. data/.data/spec/std/isa/csr/mip.yaml +21 -10
  146. data/.data/spec/std/isa/csr/misa.yaml +11 -7
  147. data/.data/spec/std/isa/csr/mstatus.yaml +3 -3
  148. data/.data/spec/std/isa/csr/mstatush.yaml +1 -1
  149. data/.data/spec/std/isa/csr/schema.adoc +10 -4
  150. data/.data/spec/std/isa/csr/senvcfg.yaml +7 -13
  151. data/.data/spec/std/isa/csr/sepc.yaml +4 -3
  152. data/.data/spec/std/isa/csr/sip.yaml +1 -1
  153. data/.data/spec/std/isa/csr/sscratch.yaml +3 -2
  154. data/.data/spec/std/isa/csr/sstateen0.yaml +1 -1
  155. data/.data/spec/std/isa/csr/sstateen1.yaml +2 -3
  156. data/.data/spec/std/isa/csr/sstateen2.yaml +2 -3
  157. data/.data/spec/std/isa/csr/sstateen3.yaml +2 -3
  158. data/.data/spec/std/isa/csr/stval.yaml +3 -2
  159. data/.data/spec/std/isa/csr/stvec.yaml +5 -4
  160. data/.data/spec/std/isa/csr/tcontrol.yaml +37 -0
  161. data/.data/spec/std/isa/csr/time.yaml +1 -1
  162. data/.data/spec/std/isa/csr/timeh.yaml +1 -1
  163. data/.data/spec/std/isa/csr/tinfo.yaml +44 -0
  164. data/.data/spec/std/isa/csr/vsepc.yaml +6 -5
  165. data/.data/spec/std/isa/csr/vstvec.yaml +5 -4
  166. data/.data/spec/std/isa/ext/M.yaml +4 -0
  167. data/.data/spec/std/isa/ext/Shgatpa.yaml +1 -0
  168. data/.data/spec/std/isa/ext/Smctr.yaml +1 -1
  169. data/.data/spec/std/isa/ext/Ssctr.yaml +1 -1
  170. data/.data/spec/std/isa/ext/Ssstrict.yaml +2 -2
  171. data/.data/spec/std/isa/ext/Sv32.yaml +2 -2
  172. data/.data/spec/std/isa/ext/Svpbmt.yaml +2 -2
  173. data/.data/spec/std/isa/ext/Zaamo.yaml +1 -1
  174. data/.data/spec/std/isa/ext/Zbc.yaml +4 -0
  175. data/.data/spec/std/isa/ext/Zibi.yaml +29 -0
  176. data/.data/spec/std/isa/ext/Zvfbfa.yaml +24 -0
  177. data/.data/spec/std/isa/ext/Zvfofp4min.yaml +21 -0
  178. data/.data/spec/std/isa/ext/Zvfofp8min.yaml +20 -0
  179. data/.data/spec/std/isa/inst/B/andn.yaml +0 -4
  180. data/.data/spec/std/isa/inst/B/orn.yaml +0 -4
  181. data/.data/spec/std/isa/inst/B/rev8.yaml +0 -4
  182. data/.data/spec/std/isa/inst/B/rol.yaml +0 -4
  183. data/.data/spec/std/isa/inst/B/rolw.yaml +0 -4
  184. data/.data/spec/std/isa/inst/B/ror.yaml +0 -4
  185. data/.data/spec/std/isa/inst/B/rori.yaml +0 -4
  186. data/.data/spec/std/isa/inst/B/roriw.yaml +1 -5
  187. data/.data/spec/std/isa/inst/B/rorw.yaml +1 -5
  188. data/.data/spec/std/isa/inst/B/xnor.yaml +0 -4
  189. data/.data/spec/std/isa/inst/C/c.addi.yaml +2 -2
  190. data/.data/spec/std/isa/inst/C/c.addi16sp.yaml +2 -2
  191. data/.data/spec/std/isa/inst/C/c.addi4spn.yaml +2 -2
  192. data/.data/spec/std/isa/inst/C/c.addiw.yaml +2 -2
  193. data/.data/spec/std/isa/inst/C/c.beqz.yaml +2 -2
  194. data/.data/spec/std/isa/inst/C/c.bnez.yaml +2 -2
  195. data/.data/spec/std/isa/inst/C/c.ebreak.yaml +2 -2
  196. data/.data/spec/std/isa/inst/C/c.j.yaml +2 -2
  197. data/.data/spec/std/isa/inst/C/c.jal.yaml +2 -2
  198. data/.data/spec/std/isa/inst/C/c.jalr.yaml +2 -2
  199. data/.data/spec/std/isa/inst/C/c.jr.yaml +2 -2
  200. data/.data/spec/std/isa/inst/C/c.ld.yaml +2 -2
  201. data/.data/spec/std/isa/inst/C/c.ldsp.yaml +2 -2
  202. data/.data/spec/std/isa/inst/C/c.li.yaml +2 -2
  203. data/.data/spec/std/isa/inst/C/c.lui.yaml +2 -2
  204. data/.data/spec/std/isa/inst/C/c.lw.yaml +2 -2
  205. data/.data/spec/std/isa/inst/C/c.lwsp.yaml +2 -2
  206. data/.data/spec/std/isa/inst/C/c.mv.yaml +2 -2
  207. data/.data/spec/std/isa/inst/C/c.nop.yaml +2 -2
  208. data/.data/spec/std/isa/inst/C/c.sd.yaml +2 -2
  209. data/.data/spec/std/isa/inst/C/c.sdsp.yaml +5 -5
  210. data/.data/spec/std/isa/inst/C/c.sw.yaml +2 -2
  211. data/.data/spec/std/isa/inst/C/c.swsp.yaml +2 -2
  212. data/.data/spec/std/isa/inst/F/fmv.w.x.yaml +3 -0
  213. data/.data/spec/std/isa/inst/F/fmv.x.w.yaml +3 -0
  214. data/.data/spec/std/isa/inst/I/ld.yaml +9 -4
  215. data/.data/spec/std/isa/inst/I/sd.yaml +9 -4
  216. data/.data/spec/std/isa/inst/I/wfi.yaml +1 -1
  217. data/.data/spec/std/isa/inst/M/div.yaml +2 -2
  218. data/.data/spec/std/isa/inst/M/divu.yaml +2 -2
  219. data/.data/spec/std/isa/inst/M/divuw.yaml +2 -2
  220. data/.data/spec/std/isa/inst/M/divw.yaml +2 -2
  221. data/.data/spec/std/isa/inst/M/mul.yaml +1 -7
  222. data/.data/spec/std/isa/inst/M/mulh.yaml +1 -7
  223. data/.data/spec/std/isa/inst/M/mulhsu.yaml +1 -7
  224. data/.data/spec/std/isa/inst/M/mulhu.yaml +1 -7
  225. data/.data/spec/std/isa/inst/M/mulw.yaml +1 -7
  226. data/.data/spec/std/isa/inst/M/rem.yaml +2 -2
  227. data/.data/spec/std/isa/inst/M/remu.yaml +2 -2
  228. data/.data/spec/std/isa/inst/M/remuw.yaml +2 -2
  229. data/.data/spec/std/isa/inst/M/remw.yaml +2 -2
  230. data/.data/spec/std/isa/inst/V/vfadd.vf.yaml +3 -1
  231. data/.data/spec/std/isa/inst/V/vfadd.vv.yaml +3 -1
  232. data/.data/spec/std/isa/inst/V/vfclass.v.yaml +3 -1
  233. data/.data/spec/std/isa/inst/V/vfmacc.vf.yaml +3 -1
  234. data/.data/spec/std/isa/inst/V/vfmacc.vv.yaml +3 -1
  235. data/.data/spec/std/isa/inst/V/vfmadd.vf.yaml +3 -1
  236. data/.data/spec/std/isa/inst/V/vfmadd.vv.yaml +3 -1
  237. data/.data/spec/std/isa/inst/V/vfmax.vf.yaml +3 -1
  238. data/.data/spec/std/isa/inst/V/vfmax.vv.yaml +3 -1
  239. data/.data/spec/std/isa/inst/V/vfmerge.vfm.yaml +3 -1
  240. data/.data/spec/std/isa/inst/V/vfmin.vf.yaml +3 -1
  241. data/.data/spec/std/isa/inst/V/vfmin.vv.yaml +3 -1
  242. data/.data/spec/std/isa/inst/V/vfmsac.vf.yaml +3 -1
  243. data/.data/spec/std/isa/inst/V/vfmsac.vv.yaml +3 -1
  244. data/.data/spec/std/isa/inst/V/vfmsub.vf.yaml +3 -1
  245. data/.data/spec/std/isa/inst/V/vfmsub.vv.yaml +3 -1
  246. data/.data/spec/std/isa/inst/V/vfmul.vf.yaml +3 -1
  247. data/.data/spec/std/isa/inst/V/vfmul.vv.yaml +3 -1
  248. data/.data/spec/std/isa/inst/V/vfmv.f.s.yaml +3 -1
  249. data/.data/spec/std/isa/inst/V/vfmv.s.f.yaml +3 -1
  250. data/.data/spec/std/isa/inst/V/vfmv.v.f.yaml +3 -1
  251. data/.data/spec/std/isa/inst/V/vfncvt.f.f.w.yaml +3 -1
  252. data/.data/spec/std/isa/inst/V/vfncvt.rod.f.f.w.yaml +3 -1
  253. data/.data/spec/std/isa/inst/V/vfncvt.rtz.x.f.w.yaml +3 -1
  254. data/.data/spec/std/isa/inst/V/vfncvt.rtz.xu.f.w.yaml +3 -1
  255. data/.data/spec/std/isa/inst/V/vfncvt.x.f.w.yaml +3 -1
  256. data/.data/spec/std/isa/inst/V/vfncvt.xu.f.w.yaml +3 -1
  257. data/.data/spec/std/isa/inst/V/vfnmacc.vf.yaml +3 -1
  258. data/.data/spec/std/isa/inst/V/vfnmacc.vv.yaml +3 -1
  259. data/.data/spec/std/isa/inst/V/vfnmadd.vf.yaml +3 -1
  260. data/.data/spec/std/isa/inst/V/vfnmadd.vv.yaml +3 -1
  261. data/.data/spec/std/isa/inst/V/vfnmsac.vf.yaml +3 -1
  262. data/.data/spec/std/isa/inst/V/vfnmsac.vv.yaml +3 -1
  263. data/.data/spec/std/isa/inst/V/vfnmsub.vf.yaml +3 -1
  264. data/.data/spec/std/isa/inst/V/vfnmsub.vv.yaml +3 -1
  265. data/.data/spec/std/isa/inst/V/vfrec7.v.yaml +3 -1
  266. data/.data/spec/std/isa/inst/V/vfrsqrt7.v.yaml +3 -1
  267. data/.data/spec/std/isa/inst/V/vfrsub.vf.yaml +3 -1
  268. data/.data/spec/std/isa/inst/V/vfsgnj.vf.yaml +3 -1
  269. data/.data/spec/std/isa/inst/V/vfsgnj.vv.yaml +3 -1
  270. data/.data/spec/std/isa/inst/V/vfsgnjn.vf.yaml +3 -1
  271. data/.data/spec/std/isa/inst/V/vfsgnjn.vv.yaml +3 -1
  272. data/.data/spec/std/isa/inst/V/vfsgnjx.vf.yaml +3 -1
  273. data/.data/spec/std/isa/inst/V/vfsgnjx.vv.yaml +3 -1
  274. data/.data/spec/std/isa/inst/V/vfslide1down.vf.yaml +3 -1
  275. data/.data/spec/std/isa/inst/V/vfslide1up.vf.yaml +3 -1
  276. data/.data/spec/std/isa/inst/V/vfsub.vf.yaml +3 -1
  277. data/.data/spec/std/isa/inst/V/vfsub.vv.yaml +3 -1
  278. data/.data/spec/std/isa/inst/V/vfwadd.vf.yaml +3 -1
  279. data/.data/spec/std/isa/inst/V/vfwadd.vv.yaml +3 -1
  280. data/.data/spec/std/isa/inst/V/vfwadd.wf.yaml +3 -1
  281. data/.data/spec/std/isa/inst/V/vfwadd.wv.yaml +3 -1
  282. data/.data/spec/std/isa/inst/V/vfwcvt.f.f.v.yaml +3 -1
  283. data/.data/spec/std/isa/inst/V/vfwcvt.f.x.v.yaml +3 -1
  284. data/.data/spec/std/isa/inst/V/vfwcvt.f.xu.v.yaml +3 -1
  285. data/.data/spec/std/isa/inst/V/vfwmacc.vf.yaml +3 -1
  286. data/.data/spec/std/isa/inst/V/vfwmacc.vv.yaml +3 -1
  287. data/.data/spec/std/isa/inst/V/vfwmsac.vf.yaml +3 -1
  288. data/.data/spec/std/isa/inst/V/vfwmsac.vv.yaml +3 -1
  289. data/.data/spec/std/isa/inst/V/vfwmul.vf.yaml +3 -1
  290. data/.data/spec/std/isa/inst/V/vfwmul.vv.yaml +3 -1
  291. data/.data/spec/std/isa/inst/V/vfwnmacc.vf.yaml +3 -1
  292. data/.data/spec/std/isa/inst/V/vfwnmacc.vv.yaml +3 -1
  293. data/.data/spec/std/isa/inst/V/vfwnmsac.vf.yaml +3 -1
  294. data/.data/spec/std/isa/inst/V/vfwnmsac.vv.yaml +3 -1
  295. data/.data/spec/std/isa/inst/V/vfwsub.vf.yaml +3 -1
  296. data/.data/spec/std/isa/inst/V/vfwsub.vv.yaml +3 -1
  297. data/.data/spec/std/isa/inst/V/vfwsub.wf.yaml +3 -1
  298. data/.data/spec/std/isa/inst/V/vfwsub.wv.yaml +3 -1
  299. data/.data/spec/std/isa/inst/V/vmfeq.vf.yaml +3 -1
  300. data/.data/spec/std/isa/inst/V/vmfeq.vv.yaml +3 -1
  301. data/.data/spec/std/isa/inst/V/vmfge.vf.yaml +3 -1
  302. data/.data/spec/std/isa/inst/V/vmfgt.vf.yaml +3 -1
  303. data/.data/spec/std/isa/inst/V/vmfle.vf.yaml +3 -1
  304. data/.data/spec/std/isa/inst/V/vmfle.vv.yaml +3 -1
  305. data/.data/spec/std/isa/inst/V/vmflt.vf.yaml +3 -1
  306. data/.data/spec/std/isa/inst/V/vmflt.vv.yaml +3 -1
  307. data/.data/spec/std/isa/inst/V/vmfne.vf.yaml +3 -1
  308. data/.data/spec/std/isa/inst/V/vmfne.vv.yaml +3 -1
  309. data/.data/spec/std/isa/inst/Zaamo/amoadd.SIZE.AQRL.layout +1 -5
  310. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.aq.yaml +0 -4
  311. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.aqrl.yaml +0 -4
  312. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.rl.yaml +0 -4
  313. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.yaml +0 -4
  314. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.aq.yaml +1 -5
  315. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.aqrl.yaml +1 -5
  316. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.rl.yaml +1 -5
  317. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.yaml +1 -5
  318. data/.data/spec/std/isa/inst/Zaamo/amoand.SIZE.AQRL.layout +1 -5
  319. data/.data/spec/std/isa/inst/Zaamo/amoand.d.aq.yaml +0 -4
  320. data/.data/spec/std/isa/inst/Zaamo/amoand.d.aqrl.yaml +0 -4
  321. data/.data/spec/std/isa/inst/Zaamo/amoand.d.rl.yaml +0 -4
  322. data/.data/spec/std/isa/inst/Zaamo/amoand.d.yaml +0 -4
  323. data/.data/spec/std/isa/inst/Zaamo/amoand.w.aq.yaml +1 -5
  324. data/.data/spec/std/isa/inst/Zaamo/amoand.w.aqrl.yaml +1 -5
  325. data/.data/spec/std/isa/inst/Zaamo/amoand.w.rl.yaml +1 -5
  326. data/.data/spec/std/isa/inst/Zaamo/amoand.w.yaml +1 -5
  327. data/.data/spec/std/isa/inst/Zaamo/amomax.SIZE.AQRL.layout +1 -5
  328. data/.data/spec/std/isa/inst/Zaamo/amomax.d.aq.yaml +0 -4
  329. data/.data/spec/std/isa/inst/Zaamo/amomax.d.aqrl.yaml +0 -4
  330. data/.data/spec/std/isa/inst/Zaamo/amomax.d.rl.yaml +0 -4
  331. data/.data/spec/std/isa/inst/Zaamo/amomax.d.yaml +0 -4
  332. data/.data/spec/std/isa/inst/Zaamo/amomax.w.aq.yaml +1 -5
  333. data/.data/spec/std/isa/inst/Zaamo/amomax.w.aqrl.yaml +1 -5
  334. data/.data/spec/std/isa/inst/Zaamo/amomax.w.rl.yaml +1 -5
  335. data/.data/spec/std/isa/inst/Zaamo/amomax.w.yaml +1 -5
  336. data/.data/spec/std/isa/inst/Zaamo/amomaxu.SIZE.AQRL.layout +1 -5
  337. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.aq.yaml +0 -4
  338. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.aqrl.yaml +0 -4
  339. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.rl.yaml +0 -4
  340. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.yaml +0 -4
  341. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.aq.yaml +1 -5
  342. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.aqrl.yaml +1 -5
  343. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.rl.yaml +1 -5
  344. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.yaml +1 -5
  345. data/.data/spec/std/isa/inst/Zaamo/amomin.SIZE.AQRL.layout +1 -5
  346. data/.data/spec/std/isa/inst/Zaamo/amomin.d.aq.yaml +0 -4
  347. data/.data/spec/std/isa/inst/Zaamo/amomin.d.aqrl.yaml +0 -4
  348. data/.data/spec/std/isa/inst/Zaamo/amomin.d.rl.yaml +0 -4
  349. data/.data/spec/std/isa/inst/Zaamo/amomin.d.yaml +0 -4
  350. data/.data/spec/std/isa/inst/Zaamo/amomin.w.aq.yaml +1 -5
  351. data/.data/spec/std/isa/inst/Zaamo/amomin.w.aqrl.yaml +1 -5
  352. data/.data/spec/std/isa/inst/Zaamo/amomin.w.rl.yaml +1 -5
  353. data/.data/spec/std/isa/inst/Zaamo/amomin.w.yaml +1 -5
  354. data/.data/spec/std/isa/inst/Zaamo/amominu.SIZE.AQRL.layout +1 -5
  355. data/.data/spec/std/isa/inst/Zaamo/amominu.d.aq.yaml +0 -4
  356. data/.data/spec/std/isa/inst/Zaamo/amominu.d.aqrl.yaml +0 -4
  357. data/.data/spec/std/isa/inst/Zaamo/amominu.d.rl.yaml +0 -4
  358. data/.data/spec/std/isa/inst/Zaamo/amominu.d.yaml +0 -4
  359. data/.data/spec/std/isa/inst/Zaamo/amominu.w.aq.yaml +1 -5
  360. data/.data/spec/std/isa/inst/Zaamo/amominu.w.aqrl.yaml +1 -5
  361. data/.data/spec/std/isa/inst/Zaamo/amominu.w.rl.yaml +1 -5
  362. data/.data/spec/std/isa/inst/Zaamo/amominu.w.yaml +1 -5
  363. data/.data/spec/std/isa/inst/Zaamo/amoor.SIZE.AQRL.layout +1 -5
  364. data/.data/spec/std/isa/inst/Zaamo/amoor.d.aq.yaml +0 -4
  365. data/.data/spec/std/isa/inst/Zaamo/amoor.d.aqrl.yaml +0 -4
  366. data/.data/spec/std/isa/inst/Zaamo/amoor.d.rl.yaml +0 -4
  367. data/.data/spec/std/isa/inst/Zaamo/amoor.d.yaml +0 -4
  368. data/.data/spec/std/isa/inst/Zaamo/amoor.w.aq.yaml +1 -5
  369. data/.data/spec/std/isa/inst/Zaamo/amoor.w.aqrl.yaml +1 -5
  370. data/.data/spec/std/isa/inst/Zaamo/amoor.w.rl.yaml +1 -5
  371. data/.data/spec/std/isa/inst/Zaamo/amoor.w.yaml +1 -5
  372. data/.data/spec/std/isa/inst/Zaamo/amoswap.SIZE.AQRL.layout +1 -5
  373. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.aq.yaml +0 -4
  374. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.aqrl.yaml +0 -4
  375. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.rl.yaml +0 -4
  376. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.yaml +0 -4
  377. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.aq.yaml +1 -5
  378. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.aqrl.yaml +1 -5
  379. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.rl.yaml +1 -5
  380. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.yaml +1 -5
  381. data/.data/spec/std/isa/inst/Zaamo/amoxor.SIZE.AQRL.layout +1 -5
  382. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.aq.yaml +0 -4
  383. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.aqrl.yaml +0 -4
  384. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.rl.yaml +0 -4
  385. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.yaml +0 -4
  386. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.aq.yaml +1 -5
  387. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.aqrl.yaml +1 -5
  388. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.rl.yaml +1 -5
  389. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.yaml +1 -5
  390. data/.data/spec/std/isa/inst/Zabha/amoadd.b.aq.yaml +1 -5
  391. data/.data/spec/std/isa/inst/Zabha/amoadd.b.aqrl.yaml +1 -5
  392. data/.data/spec/std/isa/inst/Zabha/amoadd.b.rl.yaml +1 -5
  393. data/.data/spec/std/isa/inst/Zabha/amoadd.b.yaml +1 -5
  394. data/.data/spec/std/isa/inst/Zabha/amoadd.h.aq.yaml +1 -5
  395. data/.data/spec/std/isa/inst/Zabha/amoadd.h.aqrl.yaml +1 -5
  396. data/.data/spec/std/isa/inst/Zabha/amoadd.h.rl.yaml +1 -5
  397. data/.data/spec/std/isa/inst/Zabha/amoadd.h.yaml +1 -5
  398. data/.data/spec/std/isa/inst/Zabha/amoand.b.aq.yaml +1 -5
  399. data/.data/spec/std/isa/inst/Zabha/amoand.b.aqrl.yaml +1 -5
  400. data/.data/spec/std/isa/inst/Zabha/amoand.b.rl.yaml +1 -5
  401. data/.data/spec/std/isa/inst/Zabha/amoand.b.yaml +1 -5
  402. data/.data/spec/std/isa/inst/Zabha/amoand.h.aq.yaml +1 -5
  403. data/.data/spec/std/isa/inst/Zabha/amoand.h.aqrl.yaml +1 -5
  404. data/.data/spec/std/isa/inst/Zabha/amoand.h.rl.yaml +1 -5
  405. data/.data/spec/std/isa/inst/Zabha/amoand.h.yaml +1 -5
  406. data/.data/spec/std/isa/inst/Zabha/amomax.b.aq.yaml +1 -5
  407. data/.data/spec/std/isa/inst/Zabha/amomax.b.aqrl.yaml +1 -5
  408. data/.data/spec/std/isa/inst/Zabha/amomax.b.rl.yaml +1 -5
  409. data/.data/spec/std/isa/inst/Zabha/amomax.b.yaml +1 -5
  410. data/.data/spec/std/isa/inst/Zabha/amomax.h.aq.yaml +1 -5
  411. data/.data/spec/std/isa/inst/Zabha/amomax.h.aqrl.yaml +1 -5
  412. data/.data/spec/std/isa/inst/Zabha/amomax.h.rl.yaml +1 -5
  413. data/.data/spec/std/isa/inst/Zabha/amomax.h.yaml +1 -5
  414. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.aq.yaml +1 -5
  415. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.aqrl.yaml +1 -5
  416. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.rl.yaml +1 -5
  417. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.yaml +1 -5
  418. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.aq.yaml +1 -5
  419. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.aqrl.yaml +1 -5
  420. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.rl.yaml +1 -5
  421. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.yaml +1 -5
  422. data/.data/spec/std/isa/inst/Zabha/amomin.b.aq.yaml +1 -5
  423. data/.data/spec/std/isa/inst/Zabha/amomin.b.aqrl.yaml +1 -5
  424. data/.data/spec/std/isa/inst/Zabha/amomin.b.rl.yaml +1 -5
  425. data/.data/spec/std/isa/inst/Zabha/amomin.b.yaml +1 -5
  426. data/.data/spec/std/isa/inst/Zabha/amomin.h.aq.yaml +1 -5
  427. data/.data/spec/std/isa/inst/Zabha/amomin.h.aqrl.yaml +1 -5
  428. data/.data/spec/std/isa/inst/Zabha/amomin.h.rl.yaml +1 -5
  429. data/.data/spec/std/isa/inst/Zabha/amomin.h.yaml +1 -5
  430. data/.data/spec/std/isa/inst/Zabha/amominu.b.aq.yaml +1 -5
  431. data/.data/spec/std/isa/inst/Zabha/amominu.b.aqrl.yaml +1 -5
  432. data/.data/spec/std/isa/inst/Zabha/amominu.b.rl.yaml +1 -5
  433. data/.data/spec/std/isa/inst/Zabha/amominu.b.yaml +1 -5
  434. data/.data/spec/std/isa/inst/Zabha/amominu.h.aq.yaml +1 -5
  435. data/.data/spec/std/isa/inst/Zabha/amominu.h.aqrl.yaml +1 -5
  436. data/.data/spec/std/isa/inst/Zabha/amominu.h.rl.yaml +1 -5
  437. data/.data/spec/std/isa/inst/Zabha/amominu.h.yaml +1 -5
  438. data/.data/spec/std/isa/inst/Zabha/amoor.b.aq.yaml +1 -5
  439. data/.data/spec/std/isa/inst/Zabha/amoor.b.aqrl.yaml +1 -5
  440. data/.data/spec/std/isa/inst/Zabha/amoor.b.rl.yaml +1 -5
  441. data/.data/spec/std/isa/inst/Zabha/amoor.b.yaml +1 -5
  442. data/.data/spec/std/isa/inst/Zabha/amoor.h.aq.yaml +1 -5
  443. data/.data/spec/std/isa/inst/Zabha/amoor.h.aqrl.yaml +1 -5
  444. data/.data/spec/std/isa/inst/Zabha/amoor.h.rl.yaml +1 -5
  445. data/.data/spec/std/isa/inst/Zabha/amoor.h.yaml +1 -5
  446. data/.data/spec/std/isa/inst/Zabha/amoswap.b.aq.yaml +1 -5
  447. data/.data/spec/std/isa/inst/Zabha/amoswap.b.aqrl.yaml +1 -5
  448. data/.data/spec/std/isa/inst/Zabha/amoswap.b.rl.yaml +1 -5
  449. data/.data/spec/std/isa/inst/Zabha/amoswap.b.yaml +1 -5
  450. data/.data/spec/std/isa/inst/Zabha/amoswap.h.aq.yaml +1 -5
  451. data/.data/spec/std/isa/inst/Zabha/amoswap.h.aqrl.yaml +1 -5
  452. data/.data/spec/std/isa/inst/Zabha/amoswap.h.rl.yaml +1 -5
  453. data/.data/spec/std/isa/inst/Zabha/amoswap.h.yaml +1 -5
  454. data/.data/spec/std/isa/inst/Zabha/amoxor.b.aq.yaml +1 -5
  455. data/.data/spec/std/isa/inst/Zabha/amoxor.b.aqrl.yaml +1 -5
  456. data/.data/spec/std/isa/inst/Zabha/amoxor.b.rl.yaml +1 -5
  457. data/.data/spec/std/isa/inst/Zabha/amoxor.b.yaml +1 -5
  458. data/.data/spec/std/isa/inst/Zabha/amoxor.h.aq.yaml +1 -5
  459. data/.data/spec/std/isa/inst/Zabha/amoxor.h.aqrl.yaml +1 -5
  460. data/.data/spec/std/isa/inst/Zabha/amoxor.h.rl.yaml +1 -5
  461. data/.data/spec/std/isa/inst/Zabha/amoxor.h.yaml +1 -5
  462. data/.data/spec/std/isa/inst/Zalrsc/lr.SIZE.AQRL.layout +1 -11
  463. data/.data/spec/std/isa/inst/Zalrsc/lr.d.aq.yaml +0 -6
  464. data/.data/spec/std/isa/inst/Zalrsc/lr.d.aqrl.yaml +0 -6
  465. data/.data/spec/std/isa/inst/Zalrsc/lr.d.rl.yaml +0 -6
  466. data/.data/spec/std/isa/inst/Zalrsc/lr.d.yaml +0 -6
  467. data/.data/spec/std/isa/inst/Zalrsc/lr.w.aq.yaml +1 -11
  468. data/.data/spec/std/isa/inst/Zalrsc/lr.w.aqrl.yaml +1 -11
  469. data/.data/spec/std/isa/inst/Zalrsc/lr.w.rl.yaml +1 -11
  470. data/.data/spec/std/isa/inst/Zalrsc/lr.w.yaml +1 -11
  471. data/.data/spec/std/isa/inst/Zalrsc/sc.SIZE.AQRL.layout +4 -10
  472. data/.data/spec/std/isa/inst/Zalrsc/sc.d.aq.yaml +4 -10
  473. data/.data/spec/std/isa/inst/Zalrsc/sc.d.aqrl.yaml +4 -10
  474. data/.data/spec/std/isa/inst/Zalrsc/sc.d.rl.yaml +4 -10
  475. data/.data/spec/std/isa/inst/Zalrsc/sc.d.yaml +4 -10
  476. data/.data/spec/std/isa/inst/Zalrsc/sc.w.aq.yaml +4 -10
  477. data/.data/spec/std/isa/inst/Zalrsc/sc.w.aqrl.yaml +4 -10
  478. data/.data/spec/std/isa/inst/Zalrsc/sc.w.rl.yaml +4 -10
  479. data/.data/spec/std/isa/inst/Zalrsc/sc.w.yaml +4 -10
  480. data/.data/spec/std/isa/inst/Zba/add.uw.yaml +0 -4
  481. data/.data/spec/std/isa/inst/Zba/sh1add.uw.yaml +0 -4
  482. data/.data/spec/std/isa/inst/Zba/sh1add.yaml +0 -4
  483. data/.data/spec/std/isa/inst/Zba/sh2add.uw.yaml +0 -4
  484. data/.data/spec/std/isa/inst/Zba/sh2add.yaml +0 -4
  485. data/.data/spec/std/isa/inst/Zba/sh3add.uw.yaml +0 -4
  486. data/.data/spec/std/isa/inst/Zba/sh3add.yaml +0 -4
  487. data/.data/spec/std/isa/inst/Zba/slli.uw.yaml +0 -4
  488. data/.data/spec/std/isa/inst/Zbb/clz.yaml +0 -4
  489. data/.data/spec/std/isa/inst/Zbb/clzw.yaml +0 -4
  490. data/.data/spec/std/isa/inst/Zbb/cpop.yaml +0 -4
  491. data/.data/spec/std/isa/inst/Zbb/cpopw.yaml +0 -4
  492. data/.data/spec/std/isa/inst/Zbb/ctz.yaml +0 -4
  493. data/.data/spec/std/isa/inst/Zbb/ctzw.yaml +5 -4
  494. data/.data/spec/std/isa/inst/Zbb/max.yaml +0 -4
  495. data/.data/spec/std/isa/inst/Zbb/maxu.yaml +0 -4
  496. data/.data/spec/std/isa/inst/Zbb/min.yaml +0 -4
  497. data/.data/spec/std/isa/inst/Zbb/minu.yaml +0 -4
  498. data/.data/spec/std/isa/inst/Zbb/orc.b.yaml +0 -4
  499. data/.data/spec/std/isa/inst/Zbb/sext.b.yaml +0 -4
  500. data/.data/spec/std/isa/inst/Zbb/sext.h.yaml +0 -4
  501. data/.data/spec/std/isa/inst/Zbb/zext.h.yaml +0 -4
  502. data/.data/spec/std/isa/inst/Zbc/clmulr.yaml +0 -4
  503. data/.data/spec/std/isa/inst/{B → Zbkc}/clmul.yaml +1 -7
  504. data/.data/spec/std/isa/inst/{B → Zbkc}/clmulh.yaml +1 -7
  505. data/.data/spec/std/isa/inst/Zbs/bclr.yaml +0 -4
  506. data/.data/spec/std/isa/inst/Zbs/bclri.yaml +0 -4
  507. data/.data/spec/std/isa/inst/Zbs/bext.yaml +0 -4
  508. data/.data/spec/std/isa/inst/Zbs/bexti.yaml +0 -4
  509. data/.data/spec/std/isa/inst/Zbs/binv.yaml +0 -4
  510. data/.data/spec/std/isa/inst/Zbs/binvi.yaml +0 -4
  511. data/.data/spec/std/isa/inst/Zbs/bset.yaml +0 -4
  512. data/.data/spec/std/isa/inst/Zbs/bseti.yaml +0 -4
  513. data/.data/spec/std/isa/inst/Zcb/c.lbu.yaml +2 -2
  514. data/.data/spec/std/isa/inst/Zcb/c.lh.yaml +2 -2
  515. data/.data/spec/std/isa/inst/Zcb/c.lhu.yaml +2 -2
  516. data/.data/spec/std/isa/inst/Zcb/c.mul.yaml +2 -6
  517. data/.data/spec/std/isa/inst/Zcb/c.not.yaml +2 -2
  518. data/.data/spec/std/isa/inst/Zcb/c.sb.yaml +2 -2
  519. data/.data/spec/std/isa/inst/Zcb/c.sext.b.yaml +2 -6
  520. data/.data/spec/std/isa/inst/Zcb/c.sext.h.yaml +2 -6
  521. data/.data/spec/std/isa/inst/Zcb/c.sh.yaml +2 -2
  522. data/.data/spec/std/isa/inst/Zcb/c.zext.b.yaml +2 -2
  523. data/.data/spec/std/isa/inst/Zcb/c.zext.h.yaml +2 -6
  524. data/.data/spec/std/isa/inst/Zcb/c.zext.w.yaml +2 -6
  525. data/.data/spec/std/isa/inst/Zcd/c.fld.yaml +3 -3
  526. data/.data/spec/std/isa/inst/Zcd/c.fldsp.yaml +4 -4
  527. data/.data/spec/std/isa/inst/Zcd/c.fsd.yaml +3 -3
  528. data/.data/spec/std/isa/inst/Zcd/c.fsdsp.yaml +4 -4
  529. data/.data/spec/std/isa/inst/Zcf/c.flw.yaml +3 -3
  530. data/.data/spec/std/isa/inst/Zcf/c.flwsp.yaml +4 -4
  531. data/.data/spec/std/isa/inst/Zcf/c.fsw.yaml +3 -3
  532. data/.data/spec/std/isa/inst/Zcf/c.fswsp.yaml +4 -4
  533. data/.data/spec/std/isa/inst/Zcmp/cm.mva01s.yaml +2 -2
  534. data/.data/spec/std/isa/inst/Zcmp/cm.mvsa01.yaml +2 -2
  535. data/.data/spec/std/isa/inst/Zcmp/cm.pop.yaml +2 -2
  536. data/.data/spec/std/isa/inst/Zcmp/cm.popret.yaml +2 -2
  537. data/.data/spec/std/isa/inst/Zcmp/cm.popretz.yaml +2 -2
  538. data/.data/spec/std/isa/inst/Zcmp/cm.push.yaml +2 -2
  539. data/.data/spec/std/isa/inst/{Q → Zfa}/fltq.q.yaml +2 -2
  540. data/.data/spec/std/isa/inst/Zibi/beqi.yaml +45 -0
  541. data/.data/spec/std/isa/inst/Zibi/bnei.yaml +45 -0
  542. data/.data/spec/std/isa/inst/Zicbom/cbo.clean.yaml +2 -2
  543. data/.data/spec/std/isa/inst/Zicbom/cbo.flush.yaml +2 -2
  544. data/.data/spec/std/isa/inst/Zicbom/cbo.inval.yaml +3 -3
  545. data/.data/spec/std/isa/inst/Zicboz/cbo.zero.yaml +2 -2
  546. data/.data/spec/std/isa/inst/Zicfiss/ssamoswap.d.yaml +1 -1
  547. data/.data/spec/std/isa/inst/Zicfiss/ssamoswap.w.yaml +1 -1
  548. data/.data/spec/std/isa/inst/Zicfiss/sspopchk.yaml +63 -0
  549. data/.data/spec/std/isa/inst/Zicfiss/sspush.yaml +63 -0
  550. data/.data/spec/std/isa/inst/Zimop/mop.r.28.yaml +1 -2
  551. data/.data/spec/std/isa/inst/Zimop/mop.r.N.layout +1 -2
  552. data/.data/spec/std/isa/inst/Zimop/mop.rr.7.yaml +1 -2
  553. data/.data/spec/std/isa/inst/Zimop/mop.rr.N.layout +1 -2
  554. data/.data/spec/std/isa/inst/Zvfbfmin/vfncvtbf16.f.f.w.yaml +3 -1
  555. data/.data/spec/std/isa/inst/Zvfbfmin/vfwcvtbf16.f.f.v.yaml +3 -1
  556. data/.data/spec/std/isa/inst/Zvfofp4min/vfext.vf2.yaml +35 -0
  557. data/.data/spec/std/isa/inst/Zvfofp8min/vfncvt.f.f.q.yaml +31 -0
  558. data/.data/spec/std/isa/inst/Zvfofp8min/vfncvt.sat.f.f.q.yaml +32 -0
  559. data/.data/spec/std/isa/inst/Zvfofp8min/vfncvtbf16.sat.f.f.w.yaml +32 -0
  560. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vandn.vv.yaml +1 -1
  561. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vandn.vx.yaml +1 -1
  562. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vbrev8.v.yaml +1 -1
  563. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vrev8.v.yaml +1 -1
  564. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vrol.vv.yaml +1 -1
  565. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vrol.vx.yaml +1 -1
  566. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vror.vi.yaml +1 -1
  567. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vror.vv.yaml +1 -1
  568. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vror.vx.yaml +1 -1
  569. data/.data/spec/std/isa/isa/builtin_functions.idl +3 -1
  570. data/.data/spec/std/isa/isa/globals.isa +1 -1
  571. data/.data/spec/std/isa/isa/util.idl +4 -3
  572. data/.data/spec/std/isa/param/COUNTINHIBIT_EN.yaml +3 -2
  573. data/.data/spec/std/isa/param/HCONTEXT_AVAILABLE.yaml +1 -1
  574. data/.data/spec/std/isa/param/HCOUNTENABLE_EN.yaml +2 -5
  575. data/.data/spec/std/isa/param/HPM_COUNTER10_WIDTH.yaml +29 -0
  576. data/.data/spec/std/isa/param/HPM_COUNTER11_WIDTH.yaml +29 -0
  577. data/.data/spec/std/isa/param/HPM_COUNTER12_WIDTH.yaml +29 -0
  578. data/.data/spec/std/isa/param/HPM_COUNTER13_WIDTH.yaml +29 -0
  579. data/.data/spec/std/isa/param/HPM_COUNTER14_WIDTH.yaml +29 -0
  580. data/.data/spec/std/isa/param/HPM_COUNTER15_WIDTH.yaml +29 -0
  581. data/.data/spec/std/isa/param/HPM_COUNTER16_WIDTH.yaml +29 -0
  582. data/.data/spec/std/isa/param/HPM_COUNTER17_WIDTH.yaml +29 -0
  583. data/.data/spec/std/isa/param/HPM_COUNTER18_WIDTH.yaml +29 -0
  584. data/.data/spec/std/isa/param/HPM_COUNTER19_WIDTH.yaml +29 -0
  585. data/.data/spec/std/isa/param/HPM_COUNTER20_WIDTH.yaml +29 -0
  586. data/.data/spec/std/isa/param/HPM_COUNTER21_WIDTH.yaml +29 -0
  587. data/.data/spec/std/isa/param/HPM_COUNTER22_WIDTH.yaml +29 -0
  588. data/.data/spec/std/isa/param/HPM_COUNTER23_WIDTH.yaml +29 -0
  589. data/.data/spec/std/isa/param/HPM_COUNTER24_WIDTH.yaml +29 -0
  590. data/.data/spec/std/isa/param/HPM_COUNTER25_WIDTH.yaml +29 -0
  591. data/.data/spec/std/isa/param/HPM_COUNTER26_WIDTH.yaml +29 -0
  592. data/.data/spec/std/isa/param/HPM_COUNTER27_WIDTH.yaml +29 -0
  593. data/.data/spec/std/isa/param/HPM_COUNTER28_WIDTH.yaml +29 -0
  594. data/.data/spec/std/isa/param/HPM_COUNTER29_WIDTH.yaml +29 -0
  595. data/.data/spec/std/isa/param/HPM_COUNTER30_WIDTH.yaml +29 -0
  596. data/.data/spec/std/isa/param/HPM_COUNTER31_WIDTH.yaml +29 -0
  597. data/.data/spec/std/isa/param/HPM_COUNTER3_WIDTH.yaml +29 -0
  598. data/.data/spec/std/isa/param/HPM_COUNTER4_WIDTH.yaml +29 -0
  599. data/.data/spec/std/isa/param/HPM_COUNTER5_WIDTH.yaml +29 -0
  600. data/.data/spec/std/isa/param/HPM_COUNTER6_WIDTH.yaml +29 -0
  601. data/.data/spec/std/isa/param/HPM_COUNTER7_WIDTH.yaml +29 -0
  602. data/.data/spec/std/isa/param/HPM_COUNTER8_WIDTH.yaml +29 -0
  603. data/.data/spec/std/isa/param/HPM_COUNTER9_WIDTH.yaml +29 -0
  604. data/.data/spec/std/isa/param/HPM_COUNTERN_WIDTH.layout +27 -0
  605. data/.data/spec/std/isa/param/HW_MSTATUS_FS_DIRTY_UPDATE.yaml +2 -4
  606. data/.data/spec/std/isa/param/HW_MSTATUS_VS_DIRTY_UPDATE.yaml +2 -4
  607. data/.data/spec/std/isa/param/LRSC_FAIL_ON_NON_EXACT_LRSC.yaml +1 -1
  608. data/.data/spec/std/isa/param/LRSC_FAIL_ON_VA_SYNONYM.yaml +1 -1
  609. data/.data/spec/std/isa/param/LRSC_MISALIGNED_BEHAVIOR.yaml +4 -4
  610. data/.data/spec/std/isa/param/LRSC_RESERVATION_STRATEGY.yaml +1 -1
  611. data/.data/spec/std/isa/param/MCOUNTENABLE_EN.yaml +2 -5
  612. data/.data/spec/std/isa/param/MEI_INTR_IMPL.yaml +28 -0
  613. data/.data/spec/std/isa/param/MSI_INTR_IMPL.yaml +28 -0
  614. data/.data/spec/std/isa/param/MSTATUS_FS_LEGAL_VALUES.yaml +8 -15
  615. data/.data/spec/std/isa/param/MSTATUS_VS_LEGAL_VALUES.yaml +7 -15
  616. data/.data/spec/std/isa/param/MTI_INTR_IMPL.yaml +28 -0
  617. data/.data/spec/std/isa/param/MTVAL_WIDTH.yaml +17 -5
  618. data/.data/spec/std/isa/param/MUTABLE_MISA_A.yaml +1 -1
  619. data/.data/spec/std/isa/param/MUTABLE_MISA_B.yaml +1 -1
  620. data/.data/spec/std/isa/param/MUTABLE_MISA_C.yaml +1 -1
  621. data/.data/spec/std/isa/param/MUTABLE_MISA_D.yaml +1 -1
  622. data/.data/spec/std/isa/param/MUTABLE_MISA_F.yaml +1 -1
  623. data/.data/spec/std/isa/param/MUTABLE_MISA_H.yaml +1 -1
  624. data/.data/spec/std/isa/param/MUTABLE_MISA_M.yaml +1 -1
  625. data/.data/spec/std/isa/param/MUTABLE_MISA_Q.yaml +1 -1
  626. data/.data/spec/std/isa/param/MUTABLE_MISA_S.yaml +1 -1
  627. data/.data/spec/std/isa/param/MUTABLE_MISA_U.yaml +1 -1
  628. data/.data/spec/std/isa/param/MUTABLE_MISA_V.yaml +1 -1
  629. data/.data/spec/std/isa/param/{PMLEN.yaml → NON_STANDARD_EXTENSION_IMPLEMENTED.yaml} +6 -9
  630. data/.data/spec/std/isa/param/NUM_EXTERNAL_GUEST_INTERRUPTS.yaml +1 -1
  631. data/.data/spec/std/isa/param/NUM_PMP_ENTRIES.yaml +1 -1
  632. data/.data/spec/std/isa/param/REPORT_CAUSE_IN_MTVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
  633. data/.data/spec/std/isa/param/REPORT_CAUSE_IN_STVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
  634. data/.data/spec/std/isa/param/REPORT_CAUSE_IN_VSTVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
  635. data/.data/spec/std/isa/param/SCOUNTENABLE_EN.yaml +2 -6
  636. data/.data/spec/std/isa/param/SCTRDEPTH_DEPTH_LEGAL_VALUES.yaml +27 -0
  637. data/.data/spec/std/isa/param/SEI_INTR_IMPL.yaml +28 -0
  638. data/.data/spec/std/isa/param/SSI_INTR_IMPL.yaml +28 -0
  639. data/.data/spec/std/isa/param/STI_INTR_IMPL.yaml +33 -0
  640. data/.data/spec/std/isa/param/STVAL_WIDTH.yaml +81 -0
  641. data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SMMPM.yaml +40 -0
  642. data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SMNPM.yaml +42 -0
  643. data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SSNPM.yaml +42 -0
  644. data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_S.yaml +1 -1
  645. data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_U.yaml +1 -1
  646. data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_VS.yaml +1 -1
  647. data/.data/spec/std/isa/param/TRAP_ON_SFENCE_VMA_WHEN_SATP_MODE_IS_READ_ONLY.yaml +1 -1
  648. data/.data/spec/std/isa/param/VSEI_INTR_IMPL.yaml +28 -0
  649. data/.data/spec/std/isa/param/VSSI_INTR_IMPL.yaml +28 -0
  650. data/.data/spec/std/isa/param/VSTI_INTR_IMPL.yaml +33 -0
  651. data/.data/spec/std/isa/param/WFI_FINITE.yaml +20 -0
  652. data/.data/spec/std/isa/param/WFI_U_MODE.yaml +20 -0
  653. data/lib/udb/Z3_VERSION +1 -1
  654. data/lib/udb/config.rb +1 -1
  655. data/lib/udb/log.rb +16 -0
  656. data/lib/udb/obj/csr.rb +38 -45
  657. data/lib/udb/obj/database_obj.rb +1 -1
  658. data/lib/udb/obj/exception_code.rb +3 -3
  659. data/lib/udb/version.rb +1 -1
  660. metadata +122 -52
  661. data/.data/spec/std/isa/inst/Zicfiss/sspopchk.x1.yaml +0 -25
  662. data/.data/spec/std/isa/inst/Zicfiss/sspopchk.x5.yaml +0 -25
  663. data/.data/spec/std/isa/inst/Zicfiss/sspush.x1.yaml +0 -25
  664. data/.data/spec/std/isa/inst/Zicfiss/sspush.x5.yaml +0 -25
  665. /data/.data/spec/std/isa/inst/{Smdbltrp → Smctr}/sctrclr.yaml +0 -0
  666. /data/.data/spec/std/isa/inst/{D → Zfa}/fcvtmod.w.d.yaml +0 -0
  667. /data/.data/spec/std/isa/inst/{D → Zfa}/fleq.d.yaml +0 -0
  668. /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fleq.h.yaml +0 -0
  669. /data/.data/spec/std/isa/inst/{Q → Zfa}/fleq.q.yaml +0 -0
  670. /data/.data/spec/std/isa/inst/{F → Zfa}/fleq.s.yaml +0 -0
  671. /data/.data/spec/std/isa/inst/{D → Zfa}/fli.d.yaml +0 -0
  672. /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fli.h.yaml +0 -0
  673. /data/.data/spec/std/isa/inst/{Q → Zfa}/fli.q.yaml +0 -0
  674. /data/.data/spec/std/isa/inst/{D → Zfa}/fltq.d.yaml +0 -0
  675. /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fltq.h.yaml +0 -0
  676. /data/.data/spec/std/isa/inst/{F → Zfa}/fltq.s.yaml +0 -0
  677. /data/.data/spec/std/isa/inst/{D → Zfa}/fmaxm.d.yaml +0 -0
  678. /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fmaxm.h.yaml +0 -0
  679. /data/.data/spec/std/isa/inst/{Q → Zfa}/fmaxm.q.yaml +0 -0
  680. /data/.data/spec/std/isa/inst/{D → Zfa}/fminm.d.yaml +0 -0
  681. /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fminm.h.yaml +0 -0
  682. /data/.data/spec/std/isa/inst/{Q → Zfa}/fminm.q.yaml +0 -0
  683. /data/.data/spec/std/isa/inst/{D → Zfa}/fmvh.x.d.yaml +0 -0
  684. /data/.data/spec/std/isa/inst/{Q → Zfa}/fmvh.x.q.yaml +0 -0
  685. /data/.data/spec/std/isa/inst/{D → Zfa}/fmvp.d.x.yaml +0 -0
  686. /data/.data/spec/std/isa/inst/{Q → Zfa}/fmvp.q.x.yaml +0 -0
  687. /data/.data/spec/std/isa/inst/{D → Zfa}/fround.d.yaml +0 -0
  688. /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fround.h.yaml +0 -0
  689. /data/.data/spec/std/isa/inst/{Q → Zfa}/fround.q.yaml +0 -0
  690. /data/.data/spec/std/isa/inst/{D → Zfa}/froundnx.d.yaml +0 -0
  691. /data/.data/spec/std/isa/inst/{Zfh → Zfa}/froundnx.h.yaml +0 -0
  692. /data/.data/spec/std/isa/inst/{Q → Zfa}/froundnx.q.yaml +0 -0
@@ -0,0 +1,40 @@
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: SUPPORTED_PMLEN_SMMPM
9
+ description: |
10
+ The `PMLEN` values supported by the `Smmpm` pointer masking facility
11
+ for M-mode, selected via the `PMM` field in `mseccfg`. `PMLEN` is the
12
+ number of high-order bits of an address that are masked.
13
+
14
+ Options:
15
+
16
+ 0::
17
+ PMLEN=0 (pointer masking is disabled)
18
+ 7::
19
+ PMLEN=XLEN-57 (i.e., PMLEN=7 on RV64)
20
+ 16::
21
+ PMLEN=XLEN-48 (i.e., PMLEN=16 on RV64)
22
+
23
+ The current standard only supports these values (`zpm.adoc`, tag
24
+ `norm:pmlen_supported_values`). `PMM`=00 (pointer masking disabled,
25
+ PMLEN=0) is mandatory and always available, so it is mandatory
26
+ here.
27
+ long_name: Pointer mask length for M mode
28
+ schema:
29
+ type: array
30
+ items:
31
+ type: integer
32
+ enum: [0, 7, 16]
33
+ contains:
34
+ const: 0
35
+ minItems: 1
36
+ maxItems: 3
37
+ uniqueItems: true
38
+ definedBy:
39
+ extension:
40
+ name: Smmpm
@@ -0,0 +1,42 @@
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: SUPPORTED_PMLEN_SMNPM
9
+ description: |
10
+ The `PMLEN` values supported by the `Smnpm` pointer masking facility
11
+ for the next privilege mode below M-mode (S/HS if S-mode is
12
+ implemented, or U-mode otherwise), selected via the `PMM` field in
13
+ `menvcfg`. `PMLEN` is the number of high-order bits of an address
14
+ that are masked.
15
+
16
+ Options:
17
+
18
+ 0::
19
+ PMLEN=0 (pointer masking is disabled)
20
+ 7::
21
+ PMLEN=XLEN-57 (i.e., PMLEN=7 on RV64)
22
+ 16::
23
+ PMLEN=XLEN-48 (i.e., PMLEN=16 on RV64)
24
+
25
+ The current standard only supports these values (`zpm.adoc`, tag
26
+ `norm:pmlen_supported_values`). `PMM`=00 (pointer masking disabled,
27
+ PMLEN=0) is mandatory and always available, so it is mandatory
28
+ here.
29
+ long_name: Pointer mask length for next mode below M mode
30
+ schema:
31
+ type: array
32
+ items:
33
+ type: integer
34
+ enum: [0, 7, 16]
35
+ contains:
36
+ const: 0
37
+ minItems: 1
38
+ maxItems: 3
39
+ uniqueItems: true
40
+ definedBy:
41
+ extension:
42
+ name: Smnpm
@@ -0,0 +1,42 @@
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: SUPPORTED_PMLEN_SSNPM
9
+ description: |
10
+ The `PMLEN` values supported by the `Ssnpm` pointer masking facility
11
+ for the next privilege mode below S-mode (U-mode, and VS-/VU-modes if
12
+ the H extension is present), selected via the `PMM` field in
13
+ `senvcfg`. `PMLEN` is the number of high-order bits of an address
14
+ that are masked.
15
+
16
+ Options:
17
+
18
+ 0::
19
+ PMLEN=0 (pointer masking is disabled)
20
+ 7::
21
+ PMLEN=XLEN-57 (i.e., PMLEN=7 on RV64)
22
+ 16::
23
+ PMLEN=XLEN-48 (i.e., PMLEN=16 on RV64)
24
+
25
+ The current standard only supports these values (`zpm.adoc`, tag
26
+ `norm:pmlen_supported_values`). `PMM`=00 (pointer masking disabled,
27
+ PMLEN=0) is mandatory and always available, so it is mandatory
28
+ here.
29
+ long_name: Pointer mask length for next mode below S-mode
30
+ schema:
31
+ type: array
32
+ items:
33
+ type: integer
34
+ enum: [0, 7, 16]
35
+ contains:
36
+ const: 0
37
+ minItems: 1
38
+ maxItems: 3
39
+ uniqueItems: true
40
+ definedBy:
41
+ extension:
42
+ name: Ssnpm
@@ -11,7 +11,7 @@ description: |
11
11
 
12
12
  The spec states that implementations may handle ECALLs transparently
13
13
  without raising a trap, in which case the EEI must provide a builtin.
14
- long_name: TODO
14
+ long_name: "Trap on ECALL from S-mode"
15
15
  schema:
16
16
  type: boolean
17
17
  default: true
@@ -11,7 +11,7 @@ description: |
11
11
 
12
12
  The spec states that implementations may handle ECALLs transparently
13
13
  without raising a trap, in which case the EEI must provide a builtin.
14
- long_name: TODO
14
+ long_name: "Trap on ECALL from U-mode"
15
15
  schema:
16
16
  type: boolean
17
17
  default: true
@@ -11,7 +11,7 @@ description: |
11
11
 
12
12
  The spec states that implementations may handle ECALLs transparently
13
13
  without raising a trap, in which case the EEI must provide a builtin.
14
- long_name: TODO
14
+ long_name: "Trap on ECALL from VS-mode"
15
15
  schema:
16
16
  type: boolean
17
17
  default: true
@@ -17,7 +17,7 @@ description: |
17
17
 
18
18
  TRAP_ON_SFENCE_VMA_WHEN_SATP_MODE_IS_READ_ONLY has no effect when
19
19
  some virtual translation mode is supported.
20
- long_name: TODO
20
+ long_name: "Trap on SFENCE.VMA when satp.MODE is read-only"
21
21
  schema:
22
22
  type: boolean
23
23
  default: false
@@ -0,0 +1,28 @@
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: VSEI_INTR_IMPL
9
+ description: |
10
+ Whether or not virtual supervisor-level external interrupts are implemented.
11
+
12
+ Possible values:
13
+
14
+ true::
15
+ Virtual supervisor-level external interrupts are implemented.
16
+ `mie.VSEIE` and `mideleg.VSEI` are writable.
17
+
18
+ false::
19
+ Virtual supervisor-level external interrupts are not implemented.
20
+ `mie.VSEIE`, `mip.VSEIP`, and `mideleg.VSEI` are read-only zero.
21
+ long_name: Virtual supervisor-level external interrupts are implemented
22
+ schema:
23
+ type: boolean
24
+ definedBy:
25
+ extension:
26
+ allOf:
27
+ - name: Zicsr
28
+ - name: H
@@ -0,0 +1,28 @@
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: VSSI_INTR_IMPL
9
+ description: |
10
+ Whether or not virtual supervisor-level software interrupts are implemented.
11
+
12
+ Possible values:
13
+
14
+ true::
15
+ Virtual supervisor-level software interrupts are implemented.
16
+ `mie.VSSIE` and `mideleg.VSSI` are writable.
17
+
18
+ false::
19
+ Virtual supervisor-level software interrupts are not implemented.
20
+ `mie.VSSIE`, `mip.VSSIP`, and `mideleg.VSSI` are read-only zero.
21
+ long_name: Virtual supervisor-level software interrupts are implemented
22
+ schema:
23
+ type: boolean
24
+ definedBy:
25
+ extension:
26
+ allOf:
27
+ - name: Zicsr
28
+ - name: H
@@ -0,0 +1,33 @@
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: VSTI_INTR_IMPL
9
+ description: |
10
+ Whether or not virtual supervisor-level timer interrupts are implemented.
11
+ If Sstc is implemented, then VSTI_INTR_IMPL must be true.
12
+
13
+ Possible values:
14
+
15
+ true::
16
+ Virtual supervisor-level timer interrupts are implemented.
17
+ `mie.VSTIE` and `mdeleg.VSTI` are writable.
18
+
19
+ false::
20
+ Virtual supervisor-level timer interrupts are not implemented.
21
+ `mie.VSTIE`, `mip.VSTIP`, and and `mdeleg.VSTI` are read-only zero.
22
+ long_name: Virtual supervisor-level timer interrupts are implemented.
23
+ schema:
24
+ type: boolean
25
+ requirements:
26
+ idl(): |
27
+ implemented?(ExtensionName::Sstc) -> VSTI_INTR_IMPL;
28
+ reason: "When the Sstc extension is implemented, VSTIP reflects the timer interrupt signal resulting from `vstimecmp`."
29
+ definedBy:
30
+ extension:
31
+ allOf:
32
+ - name: Zicsr
33
+ - name: H
@@ -0,0 +1,20 @@
1
+ # Copyright (c) 2026 Neel Kumar
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: WFI_FINITE
9
+ long_name: |
10
+ Whether WFI resumes execution after a finite amount of time
11
+ definedBy:
12
+ extension:
13
+ name: Sm
14
+ description: |
15
+ Options:
16
+
17
+ * true: WFI resumes execution after waiting for a finite amount of time
18
+ * false: WFI may continue waiting until another event causes execution to resume
19
+ schema:
20
+ type: boolean
@@ -0,0 +1,20 @@
1
+ # Copyright (c) 2026 Neel Kumar
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: WFI_U_MODE
9
+ long_name: |
10
+ Whether WFI is supported in U mode
11
+ definedBy:
12
+ extension:
13
+ name: Sm
14
+ description: |
15
+ Options:
16
+
17
+ * true: WFI can be executed in U mode
18
+ * false: Executing WFI in U mode raises an illegal instruction exception
19
+ schema:
20
+ type: boolean
data/lib/udb/Z3_VERSION CHANGED
@@ -1 +1 @@
1
- z3-5.0.0
1
+ z3-5.1.0
data/lib/udb/config.rb CHANGED
@@ -238,7 +238,7 @@ module Udb
238
238
  def initialize(data, info)
239
239
  super(data, info)
240
240
 
241
- @param_values = @data.key?("params") ? @data["params"] : [].freeze
241
+ @param_values = @data.key?("params") ? @data["params"] : {}.freeze
242
242
 
243
243
  @mxlen = @data.dig("params", "MXLEN")
244
244
 
data/lib/udb/log.rb CHANGED
@@ -132,6 +132,8 @@ module Udb
132
132
 
133
133
  sig { params(fmt: String, options: T.untyped).returns(T.any(TTY::ProgressBar, DummyProgressBar)) }
134
134
  def self.create_progressbar(fmt, **options)
135
+ fmt = progressbar_format_for_terminal(fmt, **options)
136
+
135
137
  if @top_level_progressbar.nil?
136
138
 
137
139
  target_level = options.key?(:level) ? LogLevel.deserialize(options[:level].to_s) : LogLevel::Info
@@ -144,4 +146,18 @@ module Udb
144
146
  @top_level_progressbar.register(fmt, **options)
145
147
  end
146
148
  end
149
+
150
+ sig { params(fmt: String, options: T.untyped).returns(String) }
151
+ def self.progressbar_format_for_terminal(fmt, **options)
152
+ return fmt unless fmt.match?(/:bar/i)
153
+ return fmt unless options[:total].nil?
154
+
155
+ inset = options.fetch(:inset, 0).to_i
156
+ without_bar = fmt.gsub(/:bar/i, "")
157
+ available_space = TTY::ProgressBar.max_columns - TTY::ProgressBar.display_columns(without_bar) - inset
158
+ return fmt if available_space >= 1
159
+
160
+ fmt.gsub(/\s*\[:bar\]\s*/i, " ").gsub(/\s*:bar\s*/i, " ").squeeze(" ").strip
161
+ end
162
+ private_class_method :progressbar_format_for_terminal
147
163
  end
data/lib/udb/obj/csr.rb CHANGED
@@ -20,6 +20,17 @@ module Udb
20
20
  BITS6_CONST_TYPE = Idl::Type.new(:bits, width: 6, qualifiers: [:const]).freeze
21
21
  BITS128_TYPE = Idl::Type.new(:bits, width: 128).freeze
22
22
  ENCODING_SIZE_VAR = Idl::Var.new("__instruction_encoding_size", BITS6_TYPE, 32).freeze
23
+ # Privilege mode => IDL expression naming the field that selects the effective
24
+ # XLEN in that mode. Debug mode executes at MXLEN, so it shares M-mode's field.
25
+ MODE_TO_XLEN_FIELD = {
26
+ "M" => "CSR[misa].MXL",
27
+ "D" => "CSR[misa].MXL",
28
+ "S" => "CSR[mstatus].SXL",
29
+ "U" => "CSR[mstatus].UXL",
30
+ "VS" => "CSR[hstatus].VSXL",
31
+ "VU" => "CSR[vsstatus].UXL"
32
+ }.freeze
33
+ XLEN_TO_ENCODING = { 32 => 0, 64 => 1 }.freeze
23
34
  # Add all methods in this module to this type of database object.
24
35
  include HasFields
25
36
 
@@ -193,14 +204,7 @@ module Udb
193
204
  # dynamic if either we don't know VSXLEN or VSXLEN is explicitly mutable
194
205
  !cfg_arch.param_values.key?("VSXLEN") || cfg_arch.param_values["VSXLEN"].size > 1
195
206
  when "XLEN"
196
- # must always have M-mode
197
- # SXLEN condition applies if S-mode is possible
198
- # VSXLEN condition applies if VS-mode is possible
199
- (cfg_arch.mxlen.nil?) || \
200
- (cfg_arch.possible_extensions.map(&:name).include?("S") && \
201
- (cfg_arch.param_values["SXLEN"].nil? || cfg_arch.param_values["SXLEN"].size > 1)) || \
202
- (cfg_arch.possible_extensions.map(&:name).include?("H") && \
203
- (cfg_arch.param_values["VSXLEN"].nil? || cfg_arch.param_values["VSXLEN"].size > 1))
207
+ modes_with_dynamic_xlen.any?
204
208
  else
205
209
  raise "Unexpected length"
206
210
  end
@@ -299,7 +303,7 @@ module Udb
299
303
  64
300
304
  end
301
305
  when "XLEN"
302
- if cfg_arch.possible_extensions.map(&:name).include?("M")
306
+ if cfg_arch.possible_extensions.map(&:name).include?("Sm")
303
307
  cfg_arch.mxlen || 64
304
308
  elsif cfg_arch.possible_extensions.map(&:name).include?("S")
305
309
  if cfg_arch.param_values.key?("SXLEN")
@@ -341,61 +345,50 @@ module Udb
341
345
  end
342
346
  end
343
347
 
344
- # @return [String] IDL condition of when the effective xlen is 32
345
- def length_cond32
348
+ # @return [Array<String>] Modes with access to this CSR whose effective XLEN can
349
+ # vary in this configuration
350
+ def modes_with_dynamic_xlen
351
+ modes_with_access.select { |mode| cfg_arch.multi_xlen_in_mode?(mode) }
352
+ end
353
+
354
+ # @param xlen [Integer] 32 or 64
355
+ # @return [String] IDL condition of when the effective xlen is +xlen+
356
+ def length_cond(xlen)
357
+ encoding = XLEN_TO_ENCODING.fetch(xlen)
346
358
  case @data["length"]
347
359
  when "MXLEN"
348
- "CSR[misa].MXL == 0"
360
+ "#{MODE_TO_XLEN_FIELD['M']} == #{encoding}"
349
361
  when "SXLEN"
350
- "CSR[mstatus].SXL == 0"
362
+ "#{MODE_TO_XLEN_FIELD['S']} == #{encoding}"
351
363
  when "VSXLEN"
352
- "CSR[hstatus].VSXL == 0"
364
+ "#{MODE_TO_XLEN_FIELD['VS']} == #{encoding}"
353
365
  when "XLEN"
354
- "(priv_mode() == PrivilegeMode::M && CSR[misa].MXL == 0) || (priv_mode() == PrivilegeMode::S && CSR[mstatus].SXL == 0) || (priv_mode() == PrivilegeMode::VS && CSR[hstatus].VSXL == 0)"
366
+ modes = modes_with_dynamic_xlen
367
+ raise "No mode with access to #{name} has a dynamic XLEN" if modes.empty?
368
+
369
+ modes.map { |mode|
370
+ "(priv_mode() == PrivilegeMode::#{mode} && #{MODE_TO_XLEN_FIELD.fetch(mode)} == #{encoding})"
371
+ }.join(" || ")
355
372
  else
356
373
  raise "Unexpected length #{@data['length']} for #{name}"
357
374
  end
358
375
  end
359
376
 
377
+ # @return [String] IDL condition of when the effective xlen is 32
378
+ def length_cond32 = length_cond(32)
379
+
360
380
  # @return [String] IDL condition of when the effective xlen is 64
361
- def length_cond64
362
- case @data["length"]
363
- when "MXLEN"
364
- "CSR[misa].MXL == 1"
365
- when "SXLEN"
366
- "CSR[mstatus].SXL == 1"
367
- when "VSXLEN"
368
- "CSR[hstatus].VSXL == 1"
369
- when "XLEN"
370
- "(priv_mode() == PrivilegeMode::M && CSR[misa].MXL == 1) || (priv_mode() == PrivilegeMode::S && CSR[mstatus].SXL == 1) || (priv_mode() == PrivilegeMode::VS && CSR[hstatus].VSXL == 1)"
371
- else
372
- raise "Unexpected length"
373
- end
374
- end
381
+ def length_cond64 = length_cond(64)
375
382
 
376
383
  # @param effective_xlen [Integer or nil] 32 or 64 for fixed xlen, nil for dynamic
377
384
  # @return [String] Pretty-printed length string
378
385
  def length_pretty(effective_xlen = nil)
379
386
  raise ArgumentError, "effective_xlen is non-nil and is a #{effective_xlen.class} but must be an Integer" unless effective_xlen.nil? || effective_xlen.is_a?(Integer)
380
387
  if dynamic_length?
381
- cond =
382
- case @data["length"]
383
- when "MXLEN"
384
- "CSR[misa].MXL == %%"
385
- when "SXLEN"
386
- "CSR[mstatus].SXL == %%"
387
- when "VSXLEN"
388
- "CSR[hstatus].VSXL == %%"
389
- when "XLEN"
390
- "(priv_mode() == PrivilegeMode::M && CSR[misa].MXL == %%) || (priv_mode() == PrivilegeMode::S && CSR[mstatus].SXL == %%) || (priv_mode() == PrivilegeMode::VS && CSR[hstatus].VSXL == %%)"
391
- else
392
- raise "Unexpected length '#{@data['length']}'"
393
- end
394
-
395
388
  if effective_xlen.nil?
396
389
  [
397
- "* #{length(32)} when #{cond.sub('%%', '0')}",
398
- "* #{length(64)} when #{cond.sub('%%', '1')}"
390
+ "* #{length(32)} when #{length_cond(32)}",
391
+ "* #{length(64)} when #{length_cond(64)}"
399
392
  ].join("\n")
400
393
  else
401
394
  "#{length(effective_xlen)}-bit"
@@ -115,7 +115,7 @@ module Udb
115
115
  sig { override.params(other: T.untyped).returns(T.nilable(Integer)) }
116
116
  def <=>(other)
117
117
  return nil unless other.is_a?(DatabaseObject)
118
- return nil unless @Kind == other.kind
118
+ return nil unless kind == other.kind
119
119
 
120
120
  @name <=> other.name
121
121
  end
@@ -82,9 +82,9 @@ module Udb
82
82
 
83
83
  sig { override.params(other: BasicObject).returns(T.nilable(Integer)) }
84
84
  def <=>(other)
85
- return nil unless T.cast(other, Object).is_a?(ExceptionCode)
85
+ return nil unless T.cast(other, Object).is_a?(InterruptCode)
86
86
 
87
- num <=> T.cast(other, ExceptionCode).num
87
+ num <=> T.cast(other, InterruptCode).num
88
88
  end
89
89
 
90
90
  sig { override.params(other: BasicObject).returns(T::Boolean) }
@@ -93,6 +93,6 @@ module Udb
93
93
  end
94
94
 
95
95
  sig { override.returns(Integer) }
96
- def hash = [ExceptionCode, num].hash
96
+ def hash = [InterruptCode, num].hash
97
97
  end
98
98
  end
data/lib/udb/version.rb CHANGED
@@ -5,5 +5,5 @@
5
5
  # frozen_string_literal: true
6
6
 
7
7
  module Udb
8
- def self.version = "0.1.15"
8
+ def self.version = "0.1.17"
9
9
  end