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,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
@@ -79,7 +79,7 @@ sw_read(): |
79
79
  }
80
80
  } else if (mode() == PrivilegeMode::VU) {
81
81
  # access in VU mode
82
- if (((CSR[hcounteren].TM & CSR[scounteren].TM) == 1'b0) && (CSR[mcounteren].IR == 1'b1)) {
82
+ if (((CSR[hcounteren].TM & CSR[scounteren].TM) == 1'b0) && (CSR[mcounteren].TM == 1'b1)) {
83
83
  raise(ExceptionCode::VirtualInstruction, mode(), $encoding);
84
84
  } else if (CSR[mcounteren].TM == 1'b0) {
85
85
  raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
@@ -80,7 +80,7 @@ sw_read(): |
80
80
  }
81
81
  } else if (mode() == PrivilegeMode::VU) {
82
82
  # access in VU mode
83
- if (((CSR[hcounteren].TM & CSR[scounteren].TM) == 1'b0) && (CSR[mcounteren].IR == 1'b1)) {
83
+ if (((CSR[hcounteren].TM & CSR[scounteren].TM) == 1'b0) && (CSR[mcounteren].TM == 1'b1)) {
84
84
  raise(ExceptionCode::VirtualInstruction, mode(), $encoding);
85
85
  } else if (CSR[mcounteren].TM == 1'b0) {
86
86
  raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
@@ -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
@@ -11,7 +11,7 @@ address: 0x241
11
11
  writable: true
12
12
  virtual_address: 0x141
13
13
  priv_mode: VS
14
- length: 64
14
+ length: VSXLEN
15
15
  description: |
16
16
  Written with the PC of an instruction on an exception or interrupt taken in VS-mode.
17
17
 
@@ -21,7 +21,8 @@ definedBy:
21
21
  name: H
22
22
  fields:
23
23
  PC:
24
- location: 63-0
24
+ location_rv32: 31-0
25
+ location_rv64: 63-0
25
26
  description: |
26
27
  When a trap is taken into VS-mode, `vsepc.PC` is written with the virtual address of the
27
28
  instruction that was interrupted or that encountered the exception.
@@ -39,14 +40,14 @@ fields:
39
40
  When `misa.C` is clear, bit 1 is masked to zero. Writes to bit 1 are still captured, and
40
41
  may be visible on the next read with `misa.C` is set.
41
42
 
42
- Holds bits 63:<%= ext?(:C) ? 2 : 1 %> of the virtual address associated with an exception.
43
+ Holds bits [VSXLEN-1:<%= ext?(:C) ? 2 : 1 %>] of the virtual address associated with an exception.
43
44
  type: RW-RH
44
45
  sw_write(csr_value): |
45
46
  return csr_value.PC & ~64'b1;
46
47
  reset_value: UNDEFINED_LEGAL
47
48
  sw_read(): |
48
49
  if (implemented?(ExtensionName::C) && CSR[misa].C == 1'b1) {
49
- return CSR[sepc].PC & ~64'b1;
50
+ return CSR[vsepc].PC & ~64'b1;
50
51
  } else {
51
- return CSR[sepc].PC;
52
+ return CSR[vsepc].PC;
52
53
  }
@@ -11,19 +11,20 @@ address: 0x205
11
11
  writable: true
12
12
  virtual_address: 0x105
13
13
  priv_mode: VS
14
- length: 64
14
+ length: VSXLEN
15
15
  description: Controls where traps jump.
16
16
  definedBy:
17
17
  extension:
18
18
  name: H
19
19
  fields:
20
20
  BASE:
21
- location: 63-2
21
+ location_rv32: 31-2
22
+ location_rv64: 63-2
22
23
  description: |
23
24
  <%- va_size = ext?(:Sv57) ? 57 : (ext?(:Sv48) ? 48 : 39) -%>
24
- Bits 63:2 of the virtual address of the exception vector for any trap taken into VS-mode.
25
+ Bits [VSXLEN-1:2] of the virtual address of the exception vector for any trap taken into VS-mode.
25
26
 
26
- If the base address is written with a non-canonical address (_i.e._, bits 63:<%= va_size %> do not match bit <%= va_size-1 %>),
27
+ If the base address is written with a non-canonical address (_i.e._, bits [VSXLEN-1:<%= va_size %>] do not match bit <%= va_size-1 %>),
27
28
  the write should be ignored.
28
29
 
29
30
  type: RW-R
@@ -12,6 +12,10 @@ versions:
12
12
  - version: "2.0.0"
13
13
  state: ratified
14
14
  ratification_date: 2019-12
15
+ requirements:
16
+ extension:
17
+ name: Zmmul
18
+ version: "~> 1.0.0"
15
19
  description: |
16
20
  This chapter describes the standard integer multiplication and division
17
21
  instruction extension, which is named `M` and contains instructions
@@ -26,6 +26,7 @@ requirements:
26
26
  implemented?(ExtensionName::Sv39) -> SV39X4_TRANSLATION;
27
27
  implemented?(ExtensionName::Sv48) -> SV48X4_TRANSLATION;
28
28
  implemented?(ExtensionName::Sv57) -> SV57X4_TRANSLATION;
29
+ -> GSTAGE_MODE_BARE;
29
30
  reason: |
30
31
  Shgatpa mandates that or each supported virtual memory scheme SvNN supported in
31
32
  `satp`, the corresponding hgatp SvNNx4 mode must be supported.
@@ -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
@@ -0,0 +1,29 @@
1
+ # Copyright (c) RISC-V International
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+
4
+ # yaml-language-server: $schema=../../../schemas/ext_schema.json
5
+
6
+ $schema: "ext_schema.json#"
7
+ kind: extension
8
+ name: Zibi
9
+ long_name: Branch with Immediate
10
+ description: |
11
+ The Zibi extension adds conditional branch instructions that compare an
12
+ integer register with a small immediate constant.
13
+
14
+ Existing conditional branch instructions, such as `beq` and `bne`, compare two
15
+ integer registers. When a branch compares against a constant, software must
16
+ otherwise materialize that constant in an integer register before branching,
17
+ which can increase register pressure and potentially cause register spills and
18
+ reloads.
19
+
20
+ The `beqi` and `bnei` instructions use the B-type instruction format. The
21
+ instruction bits that would otherwise carry _rs2_ in a B-type branch carry a
22
+ 5-bit _cimm_ field. All _cimm_ encodings are valid: the _cimm_ field is not
23
+ sign-extended; it decodes to an XLEN-bit comparison constant where `cimm=0`
24
+ encodes the value -1, and `cimm` values 1 through 31 encode the corresponding
25
+ positive integer values 1 through 31.
26
+ type: unprivileged
27
+ versions:
28
+ - version: "0.7.0"
29
+ state: frozen
@@ -0,0 +1,24 @@
1
+ # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+ # yaml-language-server: $schema=../../../schemas/ext_schema.json
4
+ $schema: "ext_schema.json#"
5
+ kind: extension
6
+ name: Zvfbfa
7
+ long_name: Vector Extension for Additional BF16 Computation
8
+ type: unprivileged
9
+ description: |
10
+ The Zvfbfa extension adds more complete BF16 vector compute support.
11
+ Zvfbfa is compatible with, but does not require, Zvfbfwma and Zvfbfmin.
12
+ versions:
13
+ - version: "0.8.0"
14
+ # date: 2026-06-08
15
+ # commit: f15df74e95e56ad5fabdc9edcf0f1c907d29040a
16
+ state: development
17
+ repositories:
18
+ - url: https://github.com/riscv/riscv-isa-manual
19
+ branch: zvfbfa
20
+ requirements:
21
+ extension:
22
+ allOf:
23
+ - name: Zve32f
24
+ - name: Zfbfmin
@@ -0,0 +1,21 @@
1
+ # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+ # yaml-language-server: $schema=../../../schemas/ext_schema.json
4
+ $schema: "ext_schema.json#"
5
+ kind: extension
6
+ name: Zvfofp4min
7
+ long_name: Vector OFP4 Conversion Extension
8
+ type: unprivileged
9
+ description: |
10
+ The Zvfofp4min extension provides basic vector conversion support for
11
+ the OFP4 E2M1 format.
12
+ versions:
13
+ - version: "0.1.0"
14
+ state: development
15
+ # commit: e1e20a75c9a9fa797519fcc11ee997c7a7be4503
16
+ repositories:
17
+ - url: https://github.com/aswaterman/riscv-misc
18
+ branch: main
19
+ requirements:
20
+ extension:
21
+ name: Zve32f
@@ -0,0 +1,20 @@
1
+ # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+ # yaml-language-server: $schema=../../../schemas/ext_schema.json
4
+ $schema: "ext_schema.json#"
5
+ kind: extension
6
+ name: Zvfofp8min
7
+ long_name: Vector OFP8 Conversion Extension
8
+ description: |
9
+ The Zvfofp8min extension provides basic vector conversion support for the
10
+ 8-bit floating-point formats OFP8 E4M3 and OFP8 E5M2.
11
+ type: unprivileged
12
+ versions:
13
+ - version: "0.9.0"
14
+ state: development
15
+ repositories:
16
+ - url: https://github.com/riscv/riscv-isa-manual
17
+ branch: zvfofp8min
18
+ requirements:
19
+ extension:
20
+ name: Zve32f
@@ -32,8 +32,4 @@ access:
32
32
  vu: always
33
33
  data_independent_timing: true
34
34
  operation(): |
35
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
36
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
37
- }
38
-
39
35
  X[xd] = X[xs1] & ~X[xs2];
@@ -31,8 +31,4 @@ access:
31
31
  vu: always
32
32
  data_independent_timing: true
33
33
  operation(): |
34
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
35
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
36
- }
37
-
38
34
  X[xd] = X[xs1] | ~X[xs2];
@@ -45,10 +45,6 @@ access:
45
45
  vu: always
46
46
  data_independent_timing: true
47
47
  operation(): |
48
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
49
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
50
- }
51
-
52
48
  XReg input = X[xs1];
53
49
  XReg output = 0;
54
50
 
@@ -31,10 +31,6 @@ access:
31
31
  vu: always
32
32
  data_independent_timing: true
33
33
  operation(): |
34
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
35
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
36
- }
37
-
38
34
  XReg shamt = (xlen() == 32) ? X[xs2][4:0] : X[xs2][5:0];
39
35
 
40
36
  X[xd] = (X[xs1] << shamt) | (X[xs1] >> (xlen() - shamt));
@@ -34,10 +34,6 @@ access:
34
34
  vu: always
35
35
  data_independent_timing: true
36
36
  operation(): |
37
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
38
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
39
- }
40
-
41
37
  XReg xs1_word = X[xs1][31:0];
42
38
  XReg shamt = X[xs2][4:0];
43
39
 
@@ -31,10 +31,6 @@ access:
31
31
  vu: always
32
32
  data_independent_timing: true
33
33
  operation(): |
34
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
35
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
36
- }
37
-
38
34
  XReg shamt = (xlen() == 32) ? X[xs2][4:0] : X[xs2][5:0];
39
35
 
40
36
  X[xd] = (X[xs1] >> shamt) | (X[xs1] << (xlen() - shamt));
@@ -42,10 +42,6 @@ access:
42
42
  vu: always
43
43
  data_independent_timing: true
44
44
  operation(): |
45
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
46
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
47
- }
48
-
49
45
  XReg shamt = (xlen() == 32) ? shamt[4:0] : shamt[5:0];
50
46
 
51
47
  X[xd] = (X[xs1] >> shamt) | (X[xs1] << (xlen() - shamt));
@@ -35,11 +35,7 @@ access:
35
35
  vu: always
36
36
  data_independent_timing: true
37
37
  operation(): |
38
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
39
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
40
- }
41
-
42
38
  XReg xs1_word = X[xs1][31:0];
43
39
 
44
- XReg unextended_result = (X[xs1] >> shamt) | (X[xs1] << (32 - shamt));
40
+ XReg unextended_result = (xs1_word >> shamt) | (xs1_word << (32 - shamt));
45
41
  X[xd] = {{32{unextended_result[31]}}, unextended_result};
@@ -35,12 +35,8 @@ access:
35
35
  vu: always
36
36
  data_independent_timing: true
37
37
  operation(): |
38
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
39
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
40
- }
41
-
42
38
  XReg xs1_word = X[xs1][31:0];
43
39
  XReg shamt = X[xs2][4:0];
44
40
 
45
- XReg unextended_result = (X[xs1] >> shamt) | (X[xs1] << (32 - shamt));
41
+ XReg unextended_result = (xs1_word >> shamt) | (xs1_word << (32 - shamt));
46
42
  X[xd] = {{32{unextended_result[31]}}, unextended_result};
@@ -31,8 +31,4 @@ access:
31
31
  vu: always
32
32
  data_independent_timing: true
33
33
  operation(): |
34
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
35
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
36
- }
37
-
38
34
  X[xd] = ~(X[xs1] ^ X[xs2]);
@@ -33,8 +33,8 @@ access:
33
33
  vu: always
34
34
  data_independent_timing: true
35
35
  operation(): |
36
- if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) {
37
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
36
+ if (implemented?(ExtensionName::C) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
37
+ reserved_instruction($encoding);
38
38
  }
39
39
 
40
40
  X[xd] = X[xd] + $signed(imm);
@@ -30,8 +30,8 @@ access:
30
30
  vs: always
31
31
  vu: always
32
32
  operation(): |
33
- if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) {
34
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
33
+ if (implemented?(ExtensionName::C) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
34
+ reserved_instruction($encoding);
35
35
  }
36
36
 
37
37
  X[2] = X[2] + $signed(imm);
@@ -31,8 +31,8 @@ access:
31
31
  vs: always
32
32
  vu: always
33
33
  operation(): |
34
- if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) {
35
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
34
+ if (implemented?(ExtensionName::C) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
35
+ reserved_instruction($encoding);
36
36
  }
37
37
 
38
38
  X[creg2reg(xd)] = X[2] + imm;
@@ -34,8 +34,8 @@ access:
34
34
  vu: always
35
35
  data_independent_timing: true
36
36
  operation(): |
37
- if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) {
38
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
37
+ if (implemented?(ExtensionName::C) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
38
+ reserved_instruction($encoding);
39
39
  }
40
40
 
41
41
  X[xd] = sext((X[xd] + sext(imm, 6)), 32);
@@ -29,8 +29,8 @@ access:
29
29
  vs: always
30
30
  vu: always
31
31
  operation(): |
32
- if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) {
33
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
32
+ if (implemented?(ExtensionName::C) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
33
+ reserved_instruction($encoding);
34
34
  }
35
35
  if (X[creg2reg(xs1)] == 0) {
36
36
  jump($pc + $signed(imm));
@@ -29,8 +29,8 @@ access:
29
29
  vs: always
30
30
  vu: always
31
31
  operation(): |
32
- if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) {
33
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
32
+ if (implemented?(ExtensionName::C) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
33
+ reserved_instruction($encoding);
34
34
  }
35
35
  if (X[creg2reg(xs1)] != 0) {
36
36
  jump($pc + $signed(imm));
@@ -32,8 +32,8 @@ access:
32
32
  vs: always
33
33
  vu: always
34
34
  operation(): |
35
- if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) {
36
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
35
+ if (implemented?(ExtensionName::C) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
36
+ reserved_instruction($encoding);
37
37
  }
38
38
  if (TRAP_ON_EBREAK) {
39
39
  raise_precise(ExceptionCode::Breakpoint, mode(), $pc);
@@ -27,8 +27,8 @@ access:
27
27
  vs: always
28
28
  vu: always
29
29
  operation(): |
30
- if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) {
31
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
30
+ if (implemented?(ExtensionName::C) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
31
+ reserved_instruction($encoding);
32
32
  }
33
33
 
34
34
  jump($pc + $signed(imm));
@@ -29,8 +29,8 @@ access:
29
29
  vs: always
30
30
  vu: always
31
31
  operation(): |
32
- if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) {
33
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
32
+ if (implemented?(ExtensionName::C) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
33
+ reserved_instruction($encoding);
34
34
  }
35
35
 
36
36
  XReg return_addr = $pc + 2;
@@ -26,8 +26,8 @@ access:
26
26
  vs: always
27
27
  vu: always
28
28
  operation(): |
29
- if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) {
30
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
29
+ if (implemented?(ExtensionName::C) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
30
+ reserved_instruction($encoding);
31
31
  }
32
32
  XReg addr = X[xs1];
33
33
  XReg returnaddr;
@@ -26,8 +26,8 @@ access:
26
26
  vs: always
27
27
  vu: always
28
28
  operation(): |
29
- if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) {
30
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
29
+ if (implemented?(ExtensionName::C) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
30
+ reserved_instruction($encoding);
31
31
  }
32
32
 
33
33
  jump(X[xs1]);
@@ -50,8 +50,8 @@ access:
50
50
  vs: always
51
51
  vu: always
52
52
  operation(): |
53
- if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) {
54
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
53
+ if (implemented?(ExtensionName::C) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
54
+ reserved_instruction($encoding);
55
55
  }
56
56
 
57
57
  if (xlen() == 32) {
@@ -49,8 +49,8 @@ access:
49
49
  vs: always
50
50
  vu: always
51
51
  operation(): |
52
- if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) {
53
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
52
+ if (implemented?(ExtensionName::C) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
53
+ reserved_instruction($encoding);
54
54
  }
55
55
 
56
56
  XReg virtual_address = X[2] + imm;