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
@@ -31,12 +31,8 @@ access:
31
31
  vu: always
32
32
  operation(): |2
33
33
 
34
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
35
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
36
- }
37
-
38
- if (implemented?(ExtensionName::C) && (CSR[misa].C == 1'b0)) {
39
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
34
+ if (implemented?(ExtensionName::C) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
35
+ reserved_instruction($encoding);
40
36
  }
41
37
 
42
38
  X[creg2reg(xd)] = X[creg2reg(xd)][31:0];
@@ -32,10 +32,10 @@ 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
 
39
39
  XReg virtual_address = X[creg2reg(xs1)] + imm;
40
40
 
41
- F[fd] = sext(read_memory(64, virtual_address, $encoding), 64);
41
+ F[creg2reg(fd)] = sext(read_memory(64, virtual_address, $encoding), 64);
@@ -30,11 +30,11 @@ 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
- if (implemented?(ExtensionName::D) && (CSR[misa].D == 1'b0)) {
37
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
36
+ if (implemented?(ExtensionName::D) && MISA_CSR_IMPLEMENTED && (CSR[misa].D == 1'b0)) {
37
+ reserved_instruction($encoding);
38
38
  }
39
39
 
40
40
  XReg virtual_address = X[2] + imm;
@@ -32,10 +32,10 @@ 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
 
39
39
  XReg virtual_address = X[creg2reg(xs1)] + imm;
40
40
 
41
- write_memory(64, virtual_address, X[creg2reg(fs2)], $encoding);
41
+ write_memory(64, virtual_address, F[creg2reg(fs2)][63:0], $encoding);
@@ -30,11 +30,11 @@ 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
- if (implemented?(ExtensionName::D) && (CSR[misa].D == 1'b0)) {
37
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
36
+ if (implemented?(ExtensionName::D) && MISA_CSR_IMPLEMENTED && (CSR[misa].D == 1'b0)) {
37
+ reserved_instruction($encoding);
38
38
  }
39
39
 
40
40
  XReg virtual_address = X[2] + imm;
@@ -32,10 +32,10 @@ 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
 
39
39
  XReg virtual_address = X[creg2reg(xs1)] + imm;
40
40
 
41
- X[creg2reg(fd)] = sext(read_memory(32, virtual_address, $encoding), 32);
41
+ F[creg2reg(fd)] = read_memory(32, virtual_address, $encoding);
@@ -30,11 +30,11 @@ 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
- if (implemented?(ExtensionName::F) && (CSR[misa].F == 1'b0)) {
37
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
36
+ if (implemented?(ExtensionName::F) && MISA_CSR_IMPLEMENTED && (CSR[misa].F == 1'b0)) {
37
+ reserved_instruction($encoding);
38
38
  }
39
39
 
40
40
  XReg virtual_address = X[2] + imm;
@@ -32,10 +32,10 @@ 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
 
39
39
  XReg virtual_address = X[creg2reg(xs1)] + imm;
40
40
 
41
- write_memory(32, virtual_address, X[creg2reg(fs2)][31:0], $encoding);
41
+ write_memory(32, virtual_address, F[creg2reg(fs2)][31:0], $encoding);
@@ -30,11 +30,11 @@ 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
- if (implemented?(ExtensionName::F) && (CSR[misa].F == 1'b0)) {
37
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
36
+ if (implemented?(ExtensionName::F) && MISA_CSR_IMPLEMENTED && (CSR[misa].F == 1'b0)) {
37
+ reserved_instruction($encoding);
38
38
  }
39
39
 
40
40
  XReg virtual_address = X[2] + imm;
@@ -27,8 +27,8 @@ access:
27
27
  vs: always
28
28
  vu: always
29
29
  operation(): |
30
- if (implemented?(ExtensionName::Zcmp) && (CSR[misa].C == 1'b0)) {
31
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
30
+ if (implemented?(ExtensionName::Zcmp) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
31
+ reserved_instruction($encoding);
32
32
  }
33
33
  XReg xreg1 = (r1s[2:1]>0) ? {1,0,r1s[2:0]} : {0,1,r1s[2:0]};
34
34
  XReg xreg2 = (r2s[2:1]>0) ? {1,0,r2s[2:0]} : {0,1,r2s[2:0]};
@@ -29,8 +29,8 @@ access:
29
29
  vs: always
30
30
  vu: always
31
31
  operation(): |
32
- if (implemented?(ExtensionName::Zcmp) && (CSR[misa].C == 1'b0)) {
33
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
32
+ if (implemented?(ExtensionName::Zcmp) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
33
+ reserved_instruction($encoding);
34
34
  }
35
35
  XReg xreg1 = (r1s[2:1]>0) ? {1,0,r1s[2:0]} : {0,1,r1s[2:0]};
36
36
  XReg xreg2 = (r2s[2:1]>0) ? {1,0,r2s[2:0]} : {0,1,r2s[2:0]};
@@ -36,8 +36,8 @@ access:
36
36
  vs: always
37
37
  vu: always
38
38
  operation(): |
39
- if (implemented?(ExtensionName::Zcmp) && (CSR[misa].C == 1'b0)) {
40
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
39
+ if (implemented?(ExtensionName::Zcmp) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
40
+ reserved_instruction($encoding);
41
41
  }
42
42
 
43
43
  XReg size = xlen() / 8;
@@ -36,8 +36,8 @@ access:
36
36
  vs: always
37
37
  vu: always
38
38
  operation(): |
39
- if (implemented?(ExtensionName::Zcmp) && (CSR[misa].C == 1'b0)) {
40
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
39
+ if (implemented?(ExtensionName::Zcmp) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
40
+ reserved_instruction($encoding);
41
41
  }
42
42
 
43
43
  XReg size = xlen() / 8;
@@ -36,8 +36,8 @@ access:
36
36
  vs: always
37
37
  vu: always
38
38
  operation(): |
39
- if (implemented?(ExtensionName::Zcmp) && (CSR[misa].C == 1'b0)) {
40
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
39
+ if (implemented?(ExtensionName::Zcmp) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
40
+ reserved_instruction($encoding);
41
41
  }
42
42
 
43
43
  XReg size = xlen() / 8;
@@ -36,8 +36,8 @@ access:
36
36
  vs: always
37
37
  vu: always
38
38
  operation(): |
39
- if (implemented?(ExtensionName::Zcmp) && (CSR[misa].C == 1'b0)) {
40
- raise(ExceptionCode::IllegalInstruction, mode(), $encoding);
39
+ if (implemented?(ExtensionName::Zcmp) && MISA_CSR_IMPLEMENTED && (CSR[misa].C == 1'b0)) {
40
+ reserved_instruction($encoding);
41
41
  }
42
42
 
43
43
  XReg size = xlen() / 8;
@@ -18,7 +18,7 @@ definedBy:
18
18
  allOf:
19
19
  - name: Q
20
20
  - name: Zfa
21
- assembly: fd, fs1, fs2
21
+ assembly: xd, fs1, fs2
22
22
  encoding:
23
23
  match: 1010011----------101-----1010011
24
24
  variables:
@@ -26,7 +26,7 @@ encoding:
26
26
  location: 24-20
27
27
  - name: fs1
28
28
  location: 19-15
29
- - name: fd
29
+ - name: xd
30
30
  location: 11-7
31
31
  access:
32
32
  s: always
@@ -0,0 +1,45 @@
1
+ # Copyright (c) RISC-V International
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+
4
+ # yaml-language-server: $schema=../../../../schemas/inst_schema.json
5
+
6
+ $schema: "inst_schema.json#"
7
+ kind: instruction
8
+ name: beqi
9
+ long_name: Branch if equal immediate
10
+ description: |
11
+ Branch to PC + offset if the value in register xs1 is equal to the XLEN-bit
12
+ comparison constant decoded from cimm.
13
+
14
+ The cimm field is not sign-extended: cimm == 0 encodes the value -1, and
15
+ cimm values 1 through 31 encode the corresponding positive integer values.
16
+
17
+ Raise a `MisalignedAddress` exception if the branch is taken and PC + offset is
18
+ misaligned.
19
+ definedBy:
20
+ extension:
21
+ name: Zibi
22
+ assembly: xs1, cimm, offset
23
+ encoding:
24
+ match: "-----------------010-----1100011"
25
+ variables:
26
+ - name: offset
27
+ location: 31|7|30-25|11-8
28
+ left_shift: 1
29
+ sign_extend: true
30
+ - name: cimm
31
+ location: 24-20
32
+ - name: xs1
33
+ location: 19-15
34
+ access:
35
+ s: always
36
+ u: always
37
+ vs: always
38
+ vu: always
39
+ operation(): |
40
+ XReg lhs = X[xs1];
41
+ XReg rhs = (cimm == 0) ? {MXLEN{1'b1}} : cimm;
42
+
43
+ if (lhs == rhs) {
44
+ jump_halfword($pc + $signed(offset));
45
+ }
@@ -0,0 +1,45 @@
1
+ # Copyright (c) RISC-V International
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+
4
+ # yaml-language-server: $schema=../../../../schemas/inst_schema.json
5
+
6
+ $schema: "inst_schema.json#"
7
+ kind: instruction
8
+ name: bnei
9
+ long_name: Branch if not equal immediate
10
+ description: |
11
+ Branch to PC + offset if the value in register xs1 is not equal to the XLEN-bit
12
+ comparison constant decoded from cimm.
13
+
14
+ The cimm field is not sign-extended: cimm == 0 encodes the value -1, and
15
+ cimm values 1 through 31 encode the corresponding positive integer values.
16
+
17
+ Raise a `MisalignedAddress` exception if the branch is taken and PC + offset is
18
+ misaligned.
19
+ definedBy:
20
+ extension:
21
+ name: Zibi
22
+ assembly: xs1, cimm, offset
23
+ encoding:
24
+ match: "-----------------011-----1100011"
25
+ variables:
26
+ - name: offset
27
+ location: 31|7|30-25|11-8
28
+ left_shift: 1
29
+ sign_extend: true
30
+ - name: cimm
31
+ location: 24-20
32
+ - name: xs1
33
+ location: 19-15
34
+ access:
35
+ s: always
36
+ u: always
37
+ vs: always
38
+ vu: always
39
+ operation(): |
40
+ XReg lhs = X[xs1];
41
+ XReg rhs = (cimm == 0) ? {MXLEN{1'b1}} : cimm;
42
+
43
+ if (lhs != rhs) {
44
+ jump_halfword($pc + $signed(offset));
45
+ }
@@ -18,7 +18,7 @@ description: |
18
18
 
19
19
  `cbo.clean` is ordered by `FENCE` instructions but not `FENCE.I` or `SFENCE.VMA`.
20
20
 
21
- <%- if CACHE_BLOCK_SIZE.bit_length > [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
21
+ <%- if (CACHE_BLOCK_SIZE.bit_length - 1) > [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
22
22
  Both PMP and PMA access control must be the same for all bytes in the block; otherwise, `cbo.clean` has UNSPECIFIED behavior.
23
23
  <%- end -%>
24
24
 
@@ -31,7 +31,7 @@ description: |
31
31
  * `Store/AMO Page Fault` if virtual memory translation fails <% if ext?(:H) %>when V=0 or during VS-stage translation<% end %>
32
32
  * `Store/AMO Access Fault` if a PMP or PMA access check fails
33
33
 
34
- <%- if CACHE_BLOCK_SIZE.bit_length <= [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
34
+ <%- if (CACHE_BLOCK_SIZE.bit_length - 1) <= [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
35
35
  Because cache blocks are naturally aligned and always fit in a single PMP or PMA regions, the PMP
36
36
  and PMA access checks only need to check a single address in the line.
37
37
  <%- end -%>
@@ -12,7 +12,7 @@ description: |
12
12
 
13
13
  `cbo.flush` is ordered by `FENCE` instructions but not `FENCE.I` or `SFENCE.VMA`.
14
14
 
15
- <%- if CACHE_BLOCK_SIZE.bit_length > [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
15
+ <%- if (CACHE_BLOCK_SIZE.bit_length - 1) > [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
16
16
  Both PMP and PMA access control must be the same for all bytes in the block; otherwise, `cbo.flush` has UNSPECIFIED behavior.
17
17
  <%- end -%>
18
18
 
@@ -25,7 +25,7 @@ description: |
25
25
  * `Store/AMO Page Fault` if virtual memory translation fails <% if ext?(:H) %>when V=0 or during VS-stage translation<% end %>
26
26
  * `Store/AMO Access Fault` if a PMP or PMA access check fails.
27
27
 
28
- <%- if CACHE_BLOCK_SIZE.bit_length <= [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
28
+ <%- if (CACHE_BLOCK_SIZE.bit_length - 1) <= [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
29
29
  Because cache blocks are naturally aligned and always fit in a single PMP or PMA regions, the PMP
30
30
  and PMA access checks only need to check a single address in the line.
31
31
  <%- end -%>
@@ -51,8 +51,8 @@ description: |
51
51
 
52
52
  `cbo.inval` is ordered by `FENCE` instructions but not `FENCE.I` or `SFENCE.VMA`.
53
53
 
54
- <%- if CACHE_BLOCK_SIZE.bit_length > [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
55
- Both PMP and PMA access control must be the same for all bytes in the block; otherwise, `cbo.zero` has UNSPECIFIED behavior.
54
+ <%- if (CACHE_BLOCK_SIZE.bit_length - 1) > [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
55
+ Both PMP and PMA access control must be the same for all bytes in the block; otherwise, `cbo.inval` has UNSPECIFIED behavior.
56
56
  <%- end -%>
57
57
 
58
58
  Invalidate operations are treated as stores for page and access permissions. If permission checks fail,
@@ -64,7 +64,7 @@ description: |
64
64
  * `Store/AMO Page Fault` if virtual memory translation fails <% if ext?(:H) %>when V=0 or during VS-stage translation<% end %>
65
65
  * `Store/AMO Access Fault` if a PMP or PMA access check fails.
66
66
 
67
- <%- if CACHE_BLOCK_SIZE.bit_length <= [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
67
+ <%- if (CACHE_BLOCK_SIZE.bit_length - 1) <= [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
68
68
  Because cache blocks are naturally aligned and always fit in a single PMP or PMA regions, the PMP
69
69
  and PMA access checks only need to check a single address in the line.
70
70
  <%- end -%>
@@ -14,7 +14,7 @@ description: |
14
14
 
15
15
  `cbo.zero` is ordered by `FENCE` instructions but not `FENCE.I` or `SFENCE.VMA`.
16
16
 
17
- <%- if CACHE_BLOCK_SIZE.bit_length > [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
17
+ <%- if (CACHE_BLOCK_SIZE.bit_length - 1) > [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
18
18
  Both PMP and PMA access control must be the same for all bytes in the block; otherwise, `cbo.zero` has UNSPECIFIED behavior.
19
19
  <%- end -%>
20
20
 
@@ -27,7 +27,7 @@ description: |
27
27
  * `Store/AMO Page Fault` if virtual memory translation fails <% if ext?(:H) %>when V=0 or during VS-stage translation<% end %>
28
28
  * `Store/AMO Access Fault` if a PMP or PMA access check fails.
29
29
 
30
- <%- if CACHE_BLOCK_SIZE.bit_length <= [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
30
+ <%- if (CACHE_BLOCK_SIZE.bit_length - 1) <= [PMP_GRANULARITY, PMA_GRANULARITY].min -%>
31
31
  Because cache blocks are naturally aligned and always fit in a single PMP or PMA regions, the PMP
32
32
  and PMA access checks only need to check a single address in the line.
33
33
  <%- end -%>
@@ -12,7 +12,7 @@ description: |
12
12
  definedBy:
13
13
  extension:
14
14
  name: Zicfiss
15
- assembly: xd, xs2, xs1
15
+ assembly: xd, xs2, (xs1)
16
16
  encoding:
17
17
  match: 01001------------011-----0101111
18
18
  variables:
@@ -12,7 +12,7 @@ description: |
12
12
  definedBy:
13
13
  extension:
14
14
  name: Zicfiss
15
- assembly: xd, xs2, xs1
15
+ assembly: xd, xs2, (xs1)
16
16
  encoding:
17
17
  match: 01001------------010-----0101111
18
18
  variables:
@@ -0,0 +1,63 @@
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/inst_schema.json
5
+
6
+ $schema: inst_schema.json#
7
+ kind: instruction
8
+ name: sspopchk
9
+ long_name: Shadow Stack Pop and Check
10
+ description: |
11
+ SSPOPCHK pops a value from the shadow stack and checks it against link
12
+ register `xs1`. The encoding restricts `xs1` to `x1` or `x5`.
13
+
14
+ This instruction uses the `mop.r.28` codepoint provided by Zimop.
15
+ definedBy:
16
+ extension:
17
+ name: Zicfiss
18
+ assembly: xs1
19
+ encoding:
20
+ match: "110011011100-----100000001110011"
21
+ variables:
22
+ - name: xs1
23
+ location: 19-15
24
+ not:
25
+ [
26
+ 0,
27
+ 2,
28
+ 3,
29
+ 4,
30
+ 6,
31
+ 7,
32
+ 8,
33
+ 9,
34
+ 10,
35
+ 11,
36
+ 12,
37
+ 13,
38
+ 14,
39
+ 15,
40
+ 16,
41
+ 17,
42
+ 18,
43
+ 19,
44
+ 20,
45
+ 21,
46
+ 22,
47
+ 23,
48
+ 24,
49
+ 25,
50
+ 26,
51
+ 27,
52
+ 28,
53
+ 29,
54
+ 30,
55
+ 31,
56
+ ]
57
+ access:
58
+ s: always
59
+ u: always
60
+ vs: always
61
+ vu: always
62
+ data_independent_timing: false
63
+ operation(): |
@@ -0,0 +1,63 @@
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/inst_schema.json
5
+
6
+ $schema: inst_schema.json#
7
+ kind: instruction
8
+ name: sspush
9
+ long_name: Shadow Stack Push
10
+ description: |
11
+ SSPUSH pushes the value of link register `xs2` to the shadow stack.
12
+ The encoding restricts `xs2` to `x1` or `x5`.
13
+
14
+ This instruction uses the `mop.rr.7` codepoint provided by Zimop.
15
+ definedBy:
16
+ extension:
17
+ name: Zicfiss
18
+ assembly: xs2
19
+ encoding:
20
+ match: "1100111-----00000100000001110011"
21
+ variables:
22
+ - name: xs2
23
+ location: 24-20
24
+ not:
25
+ [
26
+ 0,
27
+ 2,
28
+ 3,
29
+ 4,
30
+ 6,
31
+ 7,
32
+ 8,
33
+ 9,
34
+ 10,
35
+ 11,
36
+ 12,
37
+ 13,
38
+ 14,
39
+ 15,
40
+ 16,
41
+ 17,
42
+ 18,
43
+ 19,
44
+ 20,
45
+ 21,
46
+ 22,
47
+ 23,
48
+ 24,
49
+ 25,
50
+ 26,
51
+ 27,
52
+ 28,
53
+ 29,
54
+ 30,
55
+ 31,
56
+ ]
57
+ access:
58
+ s: always
59
+ u: always
60
+ vs: always
61
+ vu: always
62
+ data_independent_timing: false
63
+ operation(): |
@@ -33,8 +33,7 @@ access:
33
33
  vu: always
34
34
  data_independent_timing: false
35
35
  hints:
36
- - { $ref: inst/Zicfiss/sspopchk.x1.yaml# }
37
- - { $ref: inst/Zicfiss/sspopchk.x5.yaml# }
36
+ - { $ref: inst/Zicfiss/sspopchk.yaml# }
38
37
  - { $ref: inst/Zicfiss/ssrdp.yaml# }
39
38
  operation(): |
40
39
  X[xd] = 0;
@@ -50,8 +50,7 @@ access:
50
50
  data_independent_timing: false
51
51
  <% if n == 28 -%>
52
52
  hints:
53
- - { $ref: inst/Zicfiss/sspopchk.x1.yaml# }
54
- - { $ref: inst/Zicfiss/sspopchk.x5.yaml# }
53
+ - { $ref: inst/Zicfiss/sspopchk.yaml# }
55
54
  - { $ref: inst/Zicfiss/ssrdp.yaml# }
56
55
  <% end -%>
57
56
  operation(): |
@@ -36,7 +36,6 @@ access:
36
36
  vu: always
37
37
  data_independent_timing: false
38
38
  hints:
39
- - { $ref: inst/Zicfiss/sspush.x1.yaml# }
40
- - { $ref: inst/Zicfiss/sspush.x5.yaml# }
39
+ - { $ref: inst/Zicfiss/sspush.yaml# }
41
40
  operation(): |
42
41
  X[xd] = 0;
@@ -51,8 +51,7 @@ access:
51
51
  data_independent_timing: false
52
52
  <% if n == 7 -%>
53
53
  hints:
54
- - { $ref: inst/Zicfiss/sspush.x1.yaml# }
55
- - { $ref: inst/Zicfiss/sspush.x5.yaml# }
54
+ - { $ref: inst/Zicfiss/sspush.yaml# }
56
55
  <% end -%>
57
56
  operation(): |
58
57
  X[xd] = 0;
@@ -11,7 +11,9 @@ description: |
11
11
  Converts each single-precision floating-point element in vector register vs2 to BFloat16 format, storing results in vector register vd according to mask vm. This is a narrowing conversion that compresses 32-bit single-precision values to 16-bit BFloat16 values.
12
12
  definedBy:
13
13
  extension:
14
- name: Zvfbfmin
14
+ anyOf:
15
+ - name: Zvfbfmin
16
+ - name: Zvfofp8min
15
17
  assembly: vd, vs2, vm
16
18
  encoding:
17
19
  match: 010010------11101001-----1010111
@@ -11,7 +11,9 @@ description: |
11
11
  Converts each BFloat16 element in vector register vs2 to single-precision floating-point format, storing results in vector register vd according to mask vm. This is a widening conversion that expands 16-bit BFloat16 values to 32-bit single-precision values.
12
12
  definedBy:
13
13
  extension:
14
- name: Zvfbfmin
14
+ anyOf:
15
+ - name: Zvfbfmin
16
+ - name: Zvfofp8min
15
17
  assembly: vd, vs2, vm
16
18
  encoding:
17
19
  match: 010010------01101001-----1010111
@@ -0,0 +1,35 @@
1
+ # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+ # yaml-language-server: $schema=../../../../schemas/inst_schema.json
4
+ $schema: "inst_schema.json#"
5
+ kind: instruction
6
+ name: vfext.vf2
7
+ long_name: Vector OFP4 to OFP8 widening conversion
8
+ description: |
9
+ Converts a vector of OFP4 E2M1 values in vector register vs2 (EEW=4,
10
+ EMUL=LMUL/2) to a vector of OFP8 E4M3 values in vector register vd
11
+ (EEW=8, EMUL=LMUL), according to mask vm. Defined only for SEW=8,
12
+ altfmt=0, and LMUL >= 1/4. No rounding occurs, and no floating-point
13
+ exception flags are set. This instruction does not access the fcsr
14
+ and is not considered a floating-point instruction for the purposes
15
+ of the floating-point context status (FS) setting.
16
+ definedBy:
17
+ extension:
18
+ name: Zvfofp4min
19
+ assembly: vd, vs2, vm
20
+ encoding:
21
+ match: "010010------10110010-----1010111"
22
+ variables:
23
+ - name: vm
24
+ location: 25-25
25
+ - name: vs2
26
+ location: 24-20
27
+ - name: vd
28
+ location: 11-7
29
+ access:
30
+ s: always
31
+ u: always
32
+ vs: always
33
+ vu: always
34
+ data_independent_timing: false
35
+ operation(): |