udb 0.1.16 → 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. checksums.yaml +4 -4
  2. data/.data/cfgs/example_rv64_with_overlay.yaml +20 -0
  3. data/.data/cfgs/mc100-32-full-example.yaml +6 -0
  4. data/.data/cfgs/qc_iu.yaml +14 -0
  5. data/.data/cfgs/rv32-riscv-tests.yaml +9 -0
  6. data/.data/cfgs/rv32-vector.yaml +10 -1
  7. data/.data/cfgs/rv64-riscv-tests.yaml +9 -0
  8. data/.data/cfgs/rv64-vector.yaml +11 -2
  9. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.mva01s.yaml +2 -2
  10. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.mvsa01.yaml +2 -2
  11. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.pop.yaml +2 -2
  12. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.popret.yaml +2 -2
  13. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.popretz.yaml +2 -2
  14. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.push.yaml +2 -2
  15. data/.data/spec/custom/isa/qc_iu/inst/Xqccmp/qc.cm.pushfp.yaml +2 -2
  16. data/.data/spec/schemas/README.adoc +4 -1
  17. data/.data/spec/schemas/csr_schema.json +2 -2
  18. data/.data/spec/std/isa/csr/H/hgeie.yaml +38 -0
  19. data/.data/spec/std/isa/csr/H/hgeip.yaml +33 -0
  20. data/.data/spec/std/isa/csr/H/hideleg.yaml +120 -0
  21. data/.data/spec/std/isa/csr/H/hie.yaml +74 -0
  22. data/.data/spec/std/isa/csr/H/hip.yaml +88 -0
  23. data/.data/spec/std/isa/csr/H/hvip.yaml +46 -0
  24. data/.data/spec/std/isa/csr/H/vsie.yaml +86 -0
  25. data/.data/spec/std/isa/csr/H/vsip.yaml +98 -0
  26. data/.data/spec/std/isa/csr/H/vsscratch.yaml +29 -0
  27. data/.data/spec/std/isa/csr/I/pmpaddr0.yaml +7 -7
  28. data/.data/spec/std/isa/csr/I/pmpaddr1.yaml +7 -7
  29. data/.data/spec/std/isa/csr/I/pmpaddr10.yaml +7 -7
  30. data/.data/spec/std/isa/csr/I/pmpaddr11.yaml +7 -7
  31. data/.data/spec/std/isa/csr/I/pmpaddr12.yaml +7 -7
  32. data/.data/spec/std/isa/csr/I/pmpaddr13.yaml +7 -7
  33. data/.data/spec/std/isa/csr/I/pmpaddr14.yaml +7 -7
  34. data/.data/spec/std/isa/csr/I/pmpaddr15.yaml +7 -7
  35. data/.data/spec/std/isa/csr/I/pmpaddr16.yaml +7 -7
  36. data/.data/spec/std/isa/csr/I/pmpaddr17.yaml +7 -7
  37. data/.data/spec/std/isa/csr/I/pmpaddr18.yaml +7 -7
  38. data/.data/spec/std/isa/csr/I/pmpaddr19.yaml +7 -7
  39. data/.data/spec/std/isa/csr/I/pmpaddr2.yaml +7 -7
  40. data/.data/spec/std/isa/csr/I/pmpaddr20.yaml +7 -7
  41. data/.data/spec/std/isa/csr/I/pmpaddr21.yaml +7 -7
  42. data/.data/spec/std/isa/csr/I/pmpaddr22.yaml +7 -7
  43. data/.data/spec/std/isa/csr/I/pmpaddr23.yaml +7 -7
  44. data/.data/spec/std/isa/csr/I/pmpaddr24.yaml +7 -7
  45. data/.data/spec/std/isa/csr/I/pmpaddr25.yaml +7 -7
  46. data/.data/spec/std/isa/csr/I/pmpaddr26.yaml +7 -7
  47. data/.data/spec/std/isa/csr/I/pmpaddr27.yaml +7 -7
  48. data/.data/spec/std/isa/csr/I/pmpaddr28.yaml +7 -7
  49. data/.data/spec/std/isa/csr/I/pmpaddr29.yaml +7 -7
  50. data/.data/spec/std/isa/csr/I/pmpaddr3.yaml +7 -7
  51. data/.data/spec/std/isa/csr/I/pmpaddr30.yaml +7 -7
  52. data/.data/spec/std/isa/csr/I/pmpaddr31.yaml +7 -7
  53. data/.data/spec/std/isa/csr/I/pmpaddr32.yaml +7 -7
  54. data/.data/spec/std/isa/csr/I/pmpaddr33.yaml +7 -7
  55. data/.data/spec/std/isa/csr/I/pmpaddr34.yaml +7 -7
  56. data/.data/spec/std/isa/csr/I/pmpaddr35.yaml +7 -7
  57. data/.data/spec/std/isa/csr/I/pmpaddr36.yaml +7 -7
  58. data/.data/spec/std/isa/csr/I/pmpaddr37.yaml +7 -7
  59. data/.data/spec/std/isa/csr/I/pmpaddr38.yaml +7 -7
  60. data/.data/spec/std/isa/csr/I/pmpaddr39.yaml +7 -7
  61. data/.data/spec/std/isa/csr/I/pmpaddr4.yaml +7 -7
  62. data/.data/spec/std/isa/csr/I/pmpaddr40.yaml +7 -7
  63. data/.data/spec/std/isa/csr/I/pmpaddr41.yaml +7 -7
  64. data/.data/spec/std/isa/csr/I/pmpaddr42.yaml +7 -7
  65. data/.data/spec/std/isa/csr/I/pmpaddr43.yaml +7 -7
  66. data/.data/spec/std/isa/csr/I/pmpaddr44.yaml +7 -7
  67. data/.data/spec/std/isa/csr/I/pmpaddr45.yaml +7 -7
  68. data/.data/spec/std/isa/csr/I/pmpaddr46.yaml +7 -7
  69. data/.data/spec/std/isa/csr/I/pmpaddr47.yaml +7 -7
  70. data/.data/spec/std/isa/csr/I/pmpaddr48.yaml +7 -7
  71. data/.data/spec/std/isa/csr/I/pmpaddr49.yaml +7 -7
  72. data/.data/spec/std/isa/csr/I/pmpaddr5.yaml +7 -7
  73. data/.data/spec/std/isa/csr/I/pmpaddr50.yaml +7 -7
  74. data/.data/spec/std/isa/csr/I/pmpaddr51.yaml +7 -7
  75. data/.data/spec/std/isa/csr/I/pmpaddr52.yaml +7 -7
  76. data/.data/spec/std/isa/csr/I/pmpaddr53.yaml +7 -7
  77. data/.data/spec/std/isa/csr/I/pmpaddr54.yaml +7 -7
  78. data/.data/spec/std/isa/csr/I/pmpaddr55.yaml +7 -7
  79. data/.data/spec/std/isa/csr/I/pmpaddr56.yaml +7 -7
  80. data/.data/spec/std/isa/csr/I/pmpaddr57.yaml +7 -7
  81. data/.data/spec/std/isa/csr/I/pmpaddr58.yaml +7 -7
  82. data/.data/spec/std/isa/csr/I/pmpaddr59.yaml +7 -7
  83. data/.data/spec/std/isa/csr/I/pmpaddr6.yaml +7 -7
  84. data/.data/spec/std/isa/csr/I/pmpaddr60.yaml +7 -7
  85. data/.data/spec/std/isa/csr/I/pmpaddr61.yaml +7 -7
  86. data/.data/spec/std/isa/csr/I/pmpaddr62.yaml +7 -7
  87. data/.data/spec/std/isa/csr/I/pmpaddr63.yaml +7 -7
  88. data/.data/spec/std/isa/csr/I/pmpaddr7.yaml +7 -7
  89. data/.data/spec/std/isa/csr/I/pmpaddr8.yaml +7 -7
  90. data/.data/spec/std/isa/csr/I/pmpaddr9.yaml +7 -7
  91. data/.data/spec/std/isa/csr/I/pmpaddrN.layout +7 -7
  92. data/.data/spec/std/isa/csr/Smcsrind/mireg.yaml +2 -2
  93. data/.data/spec/std/isa/csr/Smcsrind/mireg2.yaml +2 -2
  94. data/.data/spec/std/isa/csr/Smcsrind/mireg3.yaml +2 -2
  95. data/.data/spec/std/isa/csr/Smcsrind/mireg4.yaml +2 -2
  96. data/.data/spec/std/isa/csr/Smcsrind/mireg5.yaml +2 -2
  97. data/.data/spec/std/isa/csr/Smcsrind/mireg6.yaml +2 -2
  98. data/.data/spec/std/isa/csr/Smcsrind/sireg.yaml +2 -2
  99. data/.data/spec/std/isa/csr/Smcsrind/sireg2.yaml +2 -2
  100. data/.data/spec/std/isa/csr/Smcsrind/sireg3.yaml +2 -2
  101. data/.data/spec/std/isa/csr/Smcsrind/sireg4.yaml +2 -2
  102. data/.data/spec/std/isa/csr/Smcsrind/sireg5.yaml +2 -2
  103. data/.data/spec/std/isa/csr/Smcsrind/sireg6.yaml +2 -2
  104. data/.data/spec/std/isa/csr/Smcsrind/vsireg.yaml +2 -2
  105. data/.data/spec/std/isa/csr/Smcsrind/vsireg2.yaml +2 -2
  106. data/.data/spec/std/isa/csr/Smcsrind/vsireg3.yaml +2 -2
  107. data/.data/spec/std/isa/csr/Smcsrind/vsireg4.yaml +2 -2
  108. data/.data/spec/std/isa/csr/Smcsrind/vsireg5.yaml +2 -2
  109. data/.data/spec/std/isa/csr/Smcsrind/vsireg6.yaml +2 -2
  110. data/.data/spec/std/isa/csr/Smctr/sctrctl.yaml +1 -1
  111. data/.data/spec/std/isa/csr/Smctr/sctrdepth.yaml +43 -0
  112. data/.data/spec/std/isa/csr/Smctr/sctrstatus.yaml +37 -0
  113. data/.data/spec/std/isa/csr/Smctr/vsctrctl.yaml +3 -1
  114. data/.data/spec/std/isa/csr/Sstc/stimecmp.yaml +42 -0
  115. data/.data/spec/std/isa/csr/Sstc/stimecmph.yaml +43 -0
  116. data/.data/spec/std/isa/csr/Sstc/vstimecmp.yaml +45 -0
  117. data/.data/spec/std/isa/csr/Sstc/vstimecmph.yaml +46 -0
  118. data/.data/spec/std/isa/csr/V/vcsr.yaml +1 -1
  119. data/.data/spec/std/isa/csr/V/vl.yaml +1 -1
  120. data/.data/spec/std/isa/csr/V/vlenb.yaml +1 -1
  121. data/.data/spec/std/isa/csr/V/vstart.yaml +1 -1
  122. data/.data/spec/std/isa/csr/V/vtype.yaml +20 -1
  123. data/.data/spec/std/isa/csr/V/vxrm.yaml +1 -1
  124. data/.data/spec/std/isa/csr/V/vxsat.yaml +1 -1
  125. data/.data/spec/std/isa/csr/Zicntr/mcountinhibit.layout +1 -15
  126. data/.data/spec/std/isa/csr/Zicntr/mcountinhibit.yaml +29 -267
  127. data/.data/spec/std/isa/csr/mideleg.yaml +57 -9
  128. data/.data/spec/std/isa/csr/mie.yaml +18 -9
  129. data/.data/spec/std/isa/csr/mip.yaml +21 -10
  130. data/.data/spec/std/isa/csr/misa.yaml +11 -7
  131. data/.data/spec/std/isa/csr/mstatus.yaml +2 -2
  132. data/.data/spec/std/isa/csr/schema.adoc +10 -4
  133. data/.data/spec/std/isa/csr/senvcfg.yaml +6 -12
  134. data/.data/spec/std/isa/csr/sstateen0.yaml +1 -1
  135. data/.data/spec/std/isa/csr/sstateen1.yaml +2 -3
  136. data/.data/spec/std/isa/csr/sstateen2.yaml +2 -3
  137. data/.data/spec/std/isa/csr/sstateen3.yaml +2 -3
  138. data/.data/spec/std/isa/csr/tcontrol.yaml +37 -0
  139. data/.data/spec/std/isa/csr/tinfo.yaml +44 -0
  140. data/.data/spec/std/isa/ext/Smctr.yaml +1 -1
  141. data/.data/spec/std/isa/ext/Ssctr.yaml +1 -1
  142. data/.data/spec/std/isa/ext/Ssstrict.yaml +2 -2
  143. data/.data/spec/std/isa/ext/Sv32.yaml +2 -2
  144. data/.data/spec/std/isa/ext/Svpbmt.yaml +2 -2
  145. data/.data/spec/std/isa/ext/Zaamo.yaml +1 -1
  146. data/.data/spec/std/isa/ext/Zbc.yaml +4 -0
  147. data/.data/spec/std/isa/ext/Zvfbfa.yaml +24 -0
  148. data/.data/spec/std/isa/ext/Zvfofp4min.yaml +21 -0
  149. data/.data/spec/std/isa/ext/Zvfofp8min.yaml +20 -0
  150. data/.data/spec/std/isa/inst/B/andn.yaml +0 -4
  151. data/.data/spec/std/isa/inst/B/orn.yaml +0 -4
  152. data/.data/spec/std/isa/inst/B/rev8.yaml +0 -4
  153. data/.data/spec/std/isa/inst/B/rol.yaml +0 -4
  154. data/.data/spec/std/isa/inst/B/rolw.yaml +0 -4
  155. data/.data/spec/std/isa/inst/B/ror.yaml +0 -4
  156. data/.data/spec/std/isa/inst/B/rori.yaml +0 -4
  157. data/.data/spec/std/isa/inst/B/roriw.yaml +0 -4
  158. data/.data/spec/std/isa/inst/B/rorw.yaml +0 -4
  159. data/.data/spec/std/isa/inst/B/xnor.yaml +0 -4
  160. data/.data/spec/std/isa/inst/C/c.addi.yaml +2 -2
  161. data/.data/spec/std/isa/inst/C/c.addi16sp.yaml +2 -2
  162. data/.data/spec/std/isa/inst/C/c.addi4spn.yaml +2 -2
  163. data/.data/spec/std/isa/inst/C/c.addiw.yaml +2 -2
  164. data/.data/spec/std/isa/inst/C/c.beqz.yaml +2 -2
  165. data/.data/spec/std/isa/inst/C/c.bnez.yaml +2 -2
  166. data/.data/spec/std/isa/inst/C/c.ebreak.yaml +2 -2
  167. data/.data/spec/std/isa/inst/C/c.j.yaml +2 -2
  168. data/.data/spec/std/isa/inst/C/c.jal.yaml +2 -2
  169. data/.data/spec/std/isa/inst/C/c.jalr.yaml +2 -2
  170. data/.data/spec/std/isa/inst/C/c.jr.yaml +2 -2
  171. data/.data/spec/std/isa/inst/C/c.ld.yaml +2 -2
  172. data/.data/spec/std/isa/inst/C/c.ldsp.yaml +2 -2
  173. data/.data/spec/std/isa/inst/C/c.li.yaml +2 -2
  174. data/.data/spec/std/isa/inst/C/c.lui.yaml +2 -2
  175. data/.data/spec/std/isa/inst/C/c.lw.yaml +2 -2
  176. data/.data/spec/std/isa/inst/C/c.lwsp.yaml +2 -2
  177. data/.data/spec/std/isa/inst/C/c.mv.yaml +2 -2
  178. data/.data/spec/std/isa/inst/C/c.nop.yaml +2 -2
  179. data/.data/spec/std/isa/inst/C/c.sd.yaml +2 -2
  180. data/.data/spec/std/isa/inst/C/c.sdsp.yaml +5 -5
  181. data/.data/spec/std/isa/inst/C/c.sw.yaml +2 -2
  182. data/.data/spec/std/isa/inst/C/c.swsp.yaml +2 -2
  183. data/.data/spec/std/isa/inst/I/ld.yaml +9 -4
  184. data/.data/spec/std/isa/inst/I/sd.yaml +9 -4
  185. data/.data/spec/std/isa/inst/I/wfi.yaml +1 -1
  186. data/.data/spec/std/isa/inst/M/div.yaml +2 -2
  187. data/.data/spec/std/isa/inst/M/divu.yaml +2 -2
  188. data/.data/spec/std/isa/inst/M/divuw.yaml +2 -2
  189. data/.data/spec/std/isa/inst/M/divw.yaml +2 -2
  190. data/.data/spec/std/isa/inst/M/mul.yaml +0 -4
  191. data/.data/spec/std/isa/inst/M/mulh.yaml +0 -4
  192. data/.data/spec/std/isa/inst/M/mulhsu.yaml +0 -4
  193. data/.data/spec/std/isa/inst/M/mulhu.yaml +0 -4
  194. data/.data/spec/std/isa/inst/M/mulw.yaml +0 -4
  195. data/.data/spec/std/isa/inst/M/rem.yaml +2 -2
  196. data/.data/spec/std/isa/inst/M/remu.yaml +2 -2
  197. data/.data/spec/std/isa/inst/M/remuw.yaml +2 -2
  198. data/.data/spec/std/isa/inst/M/remw.yaml +2 -2
  199. data/.data/spec/std/isa/inst/V/vfadd.vf.yaml +3 -1
  200. data/.data/spec/std/isa/inst/V/vfadd.vv.yaml +3 -1
  201. data/.data/spec/std/isa/inst/V/vfclass.v.yaml +3 -1
  202. data/.data/spec/std/isa/inst/V/vfmacc.vf.yaml +3 -1
  203. data/.data/spec/std/isa/inst/V/vfmacc.vv.yaml +3 -1
  204. data/.data/spec/std/isa/inst/V/vfmadd.vf.yaml +3 -1
  205. data/.data/spec/std/isa/inst/V/vfmadd.vv.yaml +3 -1
  206. data/.data/spec/std/isa/inst/V/vfmax.vf.yaml +3 -1
  207. data/.data/spec/std/isa/inst/V/vfmax.vv.yaml +3 -1
  208. data/.data/spec/std/isa/inst/V/vfmerge.vfm.yaml +3 -1
  209. data/.data/spec/std/isa/inst/V/vfmin.vf.yaml +3 -1
  210. data/.data/spec/std/isa/inst/V/vfmin.vv.yaml +3 -1
  211. data/.data/spec/std/isa/inst/V/vfmsac.vf.yaml +3 -1
  212. data/.data/spec/std/isa/inst/V/vfmsac.vv.yaml +3 -1
  213. data/.data/spec/std/isa/inst/V/vfmsub.vf.yaml +3 -1
  214. data/.data/spec/std/isa/inst/V/vfmsub.vv.yaml +3 -1
  215. data/.data/spec/std/isa/inst/V/vfmul.vf.yaml +3 -1
  216. data/.data/spec/std/isa/inst/V/vfmul.vv.yaml +3 -1
  217. data/.data/spec/std/isa/inst/V/vfmv.f.s.yaml +3 -1
  218. data/.data/spec/std/isa/inst/V/vfmv.s.f.yaml +3 -1
  219. data/.data/spec/std/isa/inst/V/vfmv.v.f.yaml +3 -1
  220. data/.data/spec/std/isa/inst/V/vfncvt.f.f.w.yaml +3 -1
  221. data/.data/spec/std/isa/inst/V/vfncvt.rod.f.f.w.yaml +3 -1
  222. data/.data/spec/std/isa/inst/V/vfncvt.rtz.x.f.w.yaml +3 -1
  223. data/.data/spec/std/isa/inst/V/vfncvt.rtz.xu.f.w.yaml +3 -1
  224. data/.data/spec/std/isa/inst/V/vfncvt.x.f.w.yaml +3 -1
  225. data/.data/spec/std/isa/inst/V/vfncvt.xu.f.w.yaml +3 -1
  226. data/.data/spec/std/isa/inst/V/vfnmacc.vf.yaml +3 -1
  227. data/.data/spec/std/isa/inst/V/vfnmacc.vv.yaml +3 -1
  228. data/.data/spec/std/isa/inst/V/vfnmadd.vf.yaml +3 -1
  229. data/.data/spec/std/isa/inst/V/vfnmadd.vv.yaml +3 -1
  230. data/.data/spec/std/isa/inst/V/vfnmsac.vf.yaml +3 -1
  231. data/.data/spec/std/isa/inst/V/vfnmsac.vv.yaml +3 -1
  232. data/.data/spec/std/isa/inst/V/vfnmsub.vf.yaml +3 -1
  233. data/.data/spec/std/isa/inst/V/vfnmsub.vv.yaml +3 -1
  234. data/.data/spec/std/isa/inst/V/vfrec7.v.yaml +3 -1
  235. data/.data/spec/std/isa/inst/V/vfrsqrt7.v.yaml +3 -1
  236. data/.data/spec/std/isa/inst/V/vfrsub.vf.yaml +3 -1
  237. data/.data/spec/std/isa/inst/V/vfsgnj.vf.yaml +3 -1
  238. data/.data/spec/std/isa/inst/V/vfsgnj.vv.yaml +3 -1
  239. data/.data/spec/std/isa/inst/V/vfsgnjn.vf.yaml +3 -1
  240. data/.data/spec/std/isa/inst/V/vfsgnjn.vv.yaml +3 -1
  241. data/.data/spec/std/isa/inst/V/vfsgnjx.vf.yaml +3 -1
  242. data/.data/spec/std/isa/inst/V/vfsgnjx.vv.yaml +3 -1
  243. data/.data/spec/std/isa/inst/V/vfslide1down.vf.yaml +3 -1
  244. data/.data/spec/std/isa/inst/V/vfslide1up.vf.yaml +3 -1
  245. data/.data/spec/std/isa/inst/V/vfsub.vf.yaml +3 -1
  246. data/.data/spec/std/isa/inst/V/vfsub.vv.yaml +3 -1
  247. data/.data/spec/std/isa/inst/V/vfwadd.vf.yaml +3 -1
  248. data/.data/spec/std/isa/inst/V/vfwadd.vv.yaml +3 -1
  249. data/.data/spec/std/isa/inst/V/vfwadd.wf.yaml +3 -1
  250. data/.data/spec/std/isa/inst/V/vfwadd.wv.yaml +3 -1
  251. data/.data/spec/std/isa/inst/V/vfwcvt.f.f.v.yaml +3 -1
  252. data/.data/spec/std/isa/inst/V/vfwcvt.f.x.v.yaml +3 -1
  253. data/.data/spec/std/isa/inst/V/vfwcvt.f.xu.v.yaml +3 -1
  254. data/.data/spec/std/isa/inst/V/vfwmacc.vf.yaml +3 -1
  255. data/.data/spec/std/isa/inst/V/vfwmacc.vv.yaml +3 -1
  256. data/.data/spec/std/isa/inst/V/vfwmsac.vf.yaml +3 -1
  257. data/.data/spec/std/isa/inst/V/vfwmsac.vv.yaml +3 -1
  258. data/.data/spec/std/isa/inst/V/vfwmul.vf.yaml +3 -1
  259. data/.data/spec/std/isa/inst/V/vfwmul.vv.yaml +3 -1
  260. data/.data/spec/std/isa/inst/V/vfwnmacc.vf.yaml +3 -1
  261. data/.data/spec/std/isa/inst/V/vfwnmacc.vv.yaml +3 -1
  262. data/.data/spec/std/isa/inst/V/vfwnmsac.vf.yaml +3 -1
  263. data/.data/spec/std/isa/inst/V/vfwnmsac.vv.yaml +3 -1
  264. data/.data/spec/std/isa/inst/V/vfwsub.vf.yaml +3 -1
  265. data/.data/spec/std/isa/inst/V/vfwsub.vv.yaml +3 -1
  266. data/.data/spec/std/isa/inst/V/vfwsub.wf.yaml +3 -1
  267. data/.data/spec/std/isa/inst/V/vfwsub.wv.yaml +3 -1
  268. data/.data/spec/std/isa/inst/V/vmfeq.vf.yaml +3 -1
  269. data/.data/spec/std/isa/inst/V/vmfeq.vv.yaml +3 -1
  270. data/.data/spec/std/isa/inst/V/vmfge.vf.yaml +3 -1
  271. data/.data/spec/std/isa/inst/V/vmfgt.vf.yaml +3 -1
  272. data/.data/spec/std/isa/inst/V/vmfle.vf.yaml +3 -1
  273. data/.data/spec/std/isa/inst/V/vmfle.vv.yaml +3 -1
  274. data/.data/spec/std/isa/inst/V/vmflt.vf.yaml +3 -1
  275. data/.data/spec/std/isa/inst/V/vmflt.vv.yaml +3 -1
  276. data/.data/spec/std/isa/inst/V/vmfne.vf.yaml +3 -1
  277. data/.data/spec/std/isa/inst/V/vmfne.vv.yaml +3 -1
  278. data/.data/spec/std/isa/inst/Zaamo/amoadd.SIZE.AQRL.layout +1 -5
  279. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.aq.yaml +0 -4
  280. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.aqrl.yaml +0 -4
  281. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.rl.yaml +0 -4
  282. data/.data/spec/std/isa/inst/Zaamo/amoadd.d.yaml +0 -4
  283. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.aq.yaml +1 -5
  284. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.aqrl.yaml +1 -5
  285. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.rl.yaml +1 -5
  286. data/.data/spec/std/isa/inst/Zaamo/amoadd.w.yaml +1 -5
  287. data/.data/spec/std/isa/inst/Zaamo/amoand.SIZE.AQRL.layout +1 -5
  288. data/.data/spec/std/isa/inst/Zaamo/amoand.d.aq.yaml +0 -4
  289. data/.data/spec/std/isa/inst/Zaamo/amoand.d.aqrl.yaml +0 -4
  290. data/.data/spec/std/isa/inst/Zaamo/amoand.d.rl.yaml +0 -4
  291. data/.data/spec/std/isa/inst/Zaamo/amoand.d.yaml +0 -4
  292. data/.data/spec/std/isa/inst/Zaamo/amoand.w.aq.yaml +1 -5
  293. data/.data/spec/std/isa/inst/Zaamo/amoand.w.aqrl.yaml +1 -5
  294. data/.data/spec/std/isa/inst/Zaamo/amoand.w.rl.yaml +1 -5
  295. data/.data/spec/std/isa/inst/Zaamo/amoand.w.yaml +1 -5
  296. data/.data/spec/std/isa/inst/Zaamo/amomax.SIZE.AQRL.layout +1 -5
  297. data/.data/spec/std/isa/inst/Zaamo/amomax.d.aq.yaml +0 -4
  298. data/.data/spec/std/isa/inst/Zaamo/amomax.d.aqrl.yaml +0 -4
  299. data/.data/spec/std/isa/inst/Zaamo/amomax.d.rl.yaml +0 -4
  300. data/.data/spec/std/isa/inst/Zaamo/amomax.d.yaml +0 -4
  301. data/.data/spec/std/isa/inst/Zaamo/amomax.w.aq.yaml +1 -5
  302. data/.data/spec/std/isa/inst/Zaamo/amomax.w.aqrl.yaml +1 -5
  303. data/.data/spec/std/isa/inst/Zaamo/amomax.w.rl.yaml +1 -5
  304. data/.data/spec/std/isa/inst/Zaamo/amomax.w.yaml +1 -5
  305. data/.data/spec/std/isa/inst/Zaamo/amomaxu.SIZE.AQRL.layout +1 -5
  306. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.aq.yaml +0 -4
  307. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.aqrl.yaml +0 -4
  308. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.rl.yaml +0 -4
  309. data/.data/spec/std/isa/inst/Zaamo/amomaxu.d.yaml +0 -4
  310. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.aq.yaml +1 -5
  311. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.aqrl.yaml +1 -5
  312. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.rl.yaml +1 -5
  313. data/.data/spec/std/isa/inst/Zaamo/amomaxu.w.yaml +1 -5
  314. data/.data/spec/std/isa/inst/Zaamo/amomin.SIZE.AQRL.layout +1 -5
  315. data/.data/spec/std/isa/inst/Zaamo/amomin.d.aq.yaml +0 -4
  316. data/.data/spec/std/isa/inst/Zaamo/amomin.d.aqrl.yaml +0 -4
  317. data/.data/spec/std/isa/inst/Zaamo/amomin.d.rl.yaml +0 -4
  318. data/.data/spec/std/isa/inst/Zaamo/amomin.d.yaml +0 -4
  319. data/.data/spec/std/isa/inst/Zaamo/amomin.w.aq.yaml +1 -5
  320. data/.data/spec/std/isa/inst/Zaamo/amomin.w.aqrl.yaml +1 -5
  321. data/.data/spec/std/isa/inst/Zaamo/amomin.w.rl.yaml +1 -5
  322. data/.data/spec/std/isa/inst/Zaamo/amomin.w.yaml +1 -5
  323. data/.data/spec/std/isa/inst/Zaamo/amominu.SIZE.AQRL.layout +1 -5
  324. data/.data/spec/std/isa/inst/Zaamo/amominu.d.aq.yaml +0 -4
  325. data/.data/spec/std/isa/inst/Zaamo/amominu.d.aqrl.yaml +0 -4
  326. data/.data/spec/std/isa/inst/Zaamo/amominu.d.rl.yaml +0 -4
  327. data/.data/spec/std/isa/inst/Zaamo/amominu.d.yaml +0 -4
  328. data/.data/spec/std/isa/inst/Zaamo/amominu.w.aq.yaml +1 -5
  329. data/.data/spec/std/isa/inst/Zaamo/amominu.w.aqrl.yaml +1 -5
  330. data/.data/spec/std/isa/inst/Zaamo/amominu.w.rl.yaml +1 -5
  331. data/.data/spec/std/isa/inst/Zaamo/amominu.w.yaml +1 -5
  332. data/.data/spec/std/isa/inst/Zaamo/amoor.SIZE.AQRL.layout +1 -5
  333. data/.data/spec/std/isa/inst/Zaamo/amoor.d.aq.yaml +0 -4
  334. data/.data/spec/std/isa/inst/Zaamo/amoor.d.aqrl.yaml +0 -4
  335. data/.data/spec/std/isa/inst/Zaamo/amoor.d.rl.yaml +0 -4
  336. data/.data/spec/std/isa/inst/Zaamo/amoor.d.yaml +0 -4
  337. data/.data/spec/std/isa/inst/Zaamo/amoor.w.aq.yaml +1 -5
  338. data/.data/spec/std/isa/inst/Zaamo/amoor.w.aqrl.yaml +1 -5
  339. data/.data/spec/std/isa/inst/Zaamo/amoor.w.rl.yaml +1 -5
  340. data/.data/spec/std/isa/inst/Zaamo/amoor.w.yaml +1 -5
  341. data/.data/spec/std/isa/inst/Zaamo/amoswap.SIZE.AQRL.layout +1 -5
  342. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.aq.yaml +0 -4
  343. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.aqrl.yaml +0 -4
  344. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.rl.yaml +0 -4
  345. data/.data/spec/std/isa/inst/Zaamo/amoswap.d.yaml +0 -4
  346. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.aq.yaml +1 -5
  347. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.aqrl.yaml +1 -5
  348. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.rl.yaml +1 -5
  349. data/.data/spec/std/isa/inst/Zaamo/amoswap.w.yaml +1 -5
  350. data/.data/spec/std/isa/inst/Zaamo/amoxor.SIZE.AQRL.layout +1 -5
  351. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.aq.yaml +0 -4
  352. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.aqrl.yaml +0 -4
  353. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.rl.yaml +0 -4
  354. data/.data/spec/std/isa/inst/Zaamo/amoxor.d.yaml +0 -4
  355. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.aq.yaml +1 -5
  356. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.aqrl.yaml +1 -5
  357. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.rl.yaml +1 -5
  358. data/.data/spec/std/isa/inst/Zaamo/amoxor.w.yaml +1 -5
  359. data/.data/spec/std/isa/inst/Zabha/amoadd.b.aq.yaml +1 -5
  360. data/.data/spec/std/isa/inst/Zabha/amoadd.b.aqrl.yaml +1 -5
  361. data/.data/spec/std/isa/inst/Zabha/amoadd.b.rl.yaml +1 -5
  362. data/.data/spec/std/isa/inst/Zabha/amoadd.b.yaml +1 -5
  363. data/.data/spec/std/isa/inst/Zabha/amoadd.h.aq.yaml +1 -5
  364. data/.data/spec/std/isa/inst/Zabha/amoadd.h.aqrl.yaml +1 -5
  365. data/.data/spec/std/isa/inst/Zabha/amoadd.h.rl.yaml +1 -5
  366. data/.data/spec/std/isa/inst/Zabha/amoadd.h.yaml +1 -5
  367. data/.data/spec/std/isa/inst/Zabha/amoand.b.aq.yaml +1 -5
  368. data/.data/spec/std/isa/inst/Zabha/amoand.b.aqrl.yaml +1 -5
  369. data/.data/spec/std/isa/inst/Zabha/amoand.b.rl.yaml +1 -5
  370. data/.data/spec/std/isa/inst/Zabha/amoand.b.yaml +1 -5
  371. data/.data/spec/std/isa/inst/Zabha/amoand.h.aq.yaml +1 -5
  372. data/.data/spec/std/isa/inst/Zabha/amoand.h.aqrl.yaml +1 -5
  373. data/.data/spec/std/isa/inst/Zabha/amoand.h.rl.yaml +1 -5
  374. data/.data/spec/std/isa/inst/Zabha/amoand.h.yaml +1 -5
  375. data/.data/spec/std/isa/inst/Zabha/amomax.b.aq.yaml +1 -5
  376. data/.data/spec/std/isa/inst/Zabha/amomax.b.aqrl.yaml +1 -5
  377. data/.data/spec/std/isa/inst/Zabha/amomax.b.rl.yaml +1 -5
  378. data/.data/spec/std/isa/inst/Zabha/amomax.b.yaml +1 -5
  379. data/.data/spec/std/isa/inst/Zabha/amomax.h.aq.yaml +1 -5
  380. data/.data/spec/std/isa/inst/Zabha/amomax.h.aqrl.yaml +1 -5
  381. data/.data/spec/std/isa/inst/Zabha/amomax.h.rl.yaml +1 -5
  382. data/.data/spec/std/isa/inst/Zabha/amomax.h.yaml +1 -5
  383. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.aq.yaml +1 -5
  384. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.aqrl.yaml +1 -5
  385. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.rl.yaml +1 -5
  386. data/.data/spec/std/isa/inst/Zabha/amomaxu.b.yaml +1 -5
  387. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.aq.yaml +1 -5
  388. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.aqrl.yaml +1 -5
  389. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.rl.yaml +1 -5
  390. data/.data/spec/std/isa/inst/Zabha/amomaxu.h.yaml +1 -5
  391. data/.data/spec/std/isa/inst/Zabha/amomin.b.aq.yaml +1 -5
  392. data/.data/spec/std/isa/inst/Zabha/amomin.b.aqrl.yaml +1 -5
  393. data/.data/spec/std/isa/inst/Zabha/amomin.b.rl.yaml +1 -5
  394. data/.data/spec/std/isa/inst/Zabha/amomin.b.yaml +1 -5
  395. data/.data/spec/std/isa/inst/Zabha/amomin.h.aq.yaml +1 -5
  396. data/.data/spec/std/isa/inst/Zabha/amomin.h.aqrl.yaml +1 -5
  397. data/.data/spec/std/isa/inst/Zabha/amomin.h.rl.yaml +1 -5
  398. data/.data/spec/std/isa/inst/Zabha/amomin.h.yaml +1 -5
  399. data/.data/spec/std/isa/inst/Zabha/amominu.b.aq.yaml +1 -5
  400. data/.data/spec/std/isa/inst/Zabha/amominu.b.aqrl.yaml +1 -5
  401. data/.data/spec/std/isa/inst/Zabha/amominu.b.rl.yaml +1 -5
  402. data/.data/spec/std/isa/inst/Zabha/amominu.b.yaml +1 -5
  403. data/.data/spec/std/isa/inst/Zabha/amominu.h.aq.yaml +1 -5
  404. data/.data/spec/std/isa/inst/Zabha/amominu.h.aqrl.yaml +1 -5
  405. data/.data/spec/std/isa/inst/Zabha/amominu.h.rl.yaml +1 -5
  406. data/.data/spec/std/isa/inst/Zabha/amominu.h.yaml +1 -5
  407. data/.data/spec/std/isa/inst/Zabha/amoor.b.aq.yaml +1 -5
  408. data/.data/spec/std/isa/inst/Zabha/amoor.b.aqrl.yaml +1 -5
  409. data/.data/spec/std/isa/inst/Zabha/amoor.b.rl.yaml +1 -5
  410. data/.data/spec/std/isa/inst/Zabha/amoor.b.yaml +1 -5
  411. data/.data/spec/std/isa/inst/Zabha/amoor.h.aq.yaml +1 -5
  412. data/.data/spec/std/isa/inst/Zabha/amoor.h.aqrl.yaml +1 -5
  413. data/.data/spec/std/isa/inst/Zabha/amoor.h.rl.yaml +1 -5
  414. data/.data/spec/std/isa/inst/Zabha/amoor.h.yaml +1 -5
  415. data/.data/spec/std/isa/inst/Zabha/amoswap.b.aq.yaml +1 -5
  416. data/.data/spec/std/isa/inst/Zabha/amoswap.b.aqrl.yaml +1 -5
  417. data/.data/spec/std/isa/inst/Zabha/amoswap.b.rl.yaml +1 -5
  418. data/.data/spec/std/isa/inst/Zabha/amoswap.b.yaml +1 -5
  419. data/.data/spec/std/isa/inst/Zabha/amoswap.h.aq.yaml +1 -5
  420. data/.data/spec/std/isa/inst/Zabha/amoswap.h.aqrl.yaml +1 -5
  421. data/.data/spec/std/isa/inst/Zabha/amoswap.h.rl.yaml +1 -5
  422. data/.data/spec/std/isa/inst/Zabha/amoswap.h.yaml +1 -5
  423. data/.data/spec/std/isa/inst/Zabha/amoxor.b.aq.yaml +1 -5
  424. data/.data/spec/std/isa/inst/Zabha/amoxor.b.aqrl.yaml +1 -5
  425. data/.data/spec/std/isa/inst/Zabha/amoxor.b.rl.yaml +1 -5
  426. data/.data/spec/std/isa/inst/Zabha/amoxor.b.yaml +1 -5
  427. data/.data/spec/std/isa/inst/Zabha/amoxor.h.aq.yaml +1 -5
  428. data/.data/spec/std/isa/inst/Zabha/amoxor.h.aqrl.yaml +1 -5
  429. data/.data/spec/std/isa/inst/Zabha/amoxor.h.rl.yaml +1 -5
  430. data/.data/spec/std/isa/inst/Zabha/amoxor.h.yaml +1 -5
  431. data/.data/spec/std/isa/inst/Zalrsc/lr.SIZE.AQRL.layout +1 -11
  432. data/.data/spec/std/isa/inst/Zalrsc/lr.d.aq.yaml +0 -6
  433. data/.data/spec/std/isa/inst/Zalrsc/lr.d.aqrl.yaml +0 -6
  434. data/.data/spec/std/isa/inst/Zalrsc/lr.d.rl.yaml +0 -6
  435. data/.data/spec/std/isa/inst/Zalrsc/lr.d.yaml +0 -6
  436. data/.data/spec/std/isa/inst/Zalrsc/lr.w.aq.yaml +1 -11
  437. data/.data/spec/std/isa/inst/Zalrsc/lr.w.aqrl.yaml +1 -11
  438. data/.data/spec/std/isa/inst/Zalrsc/lr.w.rl.yaml +1 -11
  439. data/.data/spec/std/isa/inst/Zalrsc/lr.w.yaml +1 -11
  440. data/.data/spec/std/isa/inst/Zalrsc/sc.SIZE.AQRL.layout +4 -10
  441. data/.data/spec/std/isa/inst/Zalrsc/sc.d.aq.yaml +4 -10
  442. data/.data/spec/std/isa/inst/Zalrsc/sc.d.aqrl.yaml +4 -10
  443. data/.data/spec/std/isa/inst/Zalrsc/sc.d.rl.yaml +4 -10
  444. data/.data/spec/std/isa/inst/Zalrsc/sc.d.yaml +4 -10
  445. data/.data/spec/std/isa/inst/Zalrsc/sc.w.aq.yaml +4 -10
  446. data/.data/spec/std/isa/inst/Zalrsc/sc.w.aqrl.yaml +4 -10
  447. data/.data/spec/std/isa/inst/Zalrsc/sc.w.rl.yaml +4 -10
  448. data/.data/spec/std/isa/inst/Zalrsc/sc.w.yaml +4 -10
  449. data/.data/spec/std/isa/inst/Zba/add.uw.yaml +0 -4
  450. data/.data/spec/std/isa/inst/Zba/sh1add.uw.yaml +0 -4
  451. data/.data/spec/std/isa/inst/Zba/sh1add.yaml +0 -4
  452. data/.data/spec/std/isa/inst/Zba/sh2add.uw.yaml +0 -4
  453. data/.data/spec/std/isa/inst/Zba/sh2add.yaml +0 -4
  454. data/.data/spec/std/isa/inst/Zba/sh3add.uw.yaml +0 -4
  455. data/.data/spec/std/isa/inst/Zba/sh3add.yaml +0 -4
  456. data/.data/spec/std/isa/inst/Zba/slli.uw.yaml +0 -4
  457. data/.data/spec/std/isa/inst/Zbb/clz.yaml +0 -4
  458. data/.data/spec/std/isa/inst/Zbb/clzw.yaml +0 -4
  459. data/.data/spec/std/isa/inst/Zbb/cpop.yaml +0 -4
  460. data/.data/spec/std/isa/inst/Zbb/cpopw.yaml +0 -4
  461. data/.data/spec/std/isa/inst/Zbb/ctz.yaml +0 -4
  462. data/.data/spec/std/isa/inst/Zbb/ctzw.yaml +0 -4
  463. data/.data/spec/std/isa/inst/Zbb/max.yaml +0 -4
  464. data/.data/spec/std/isa/inst/Zbb/maxu.yaml +0 -4
  465. data/.data/spec/std/isa/inst/Zbb/min.yaml +0 -4
  466. data/.data/spec/std/isa/inst/Zbb/minu.yaml +0 -4
  467. data/.data/spec/std/isa/inst/Zbb/orc.b.yaml +0 -4
  468. data/.data/spec/std/isa/inst/Zbb/sext.b.yaml +0 -4
  469. data/.data/spec/std/isa/inst/Zbb/sext.h.yaml +0 -4
  470. data/.data/spec/std/isa/inst/Zbb/zext.h.yaml +0 -4
  471. data/.data/spec/std/isa/inst/Zbc/clmulr.yaml +0 -4
  472. data/.data/spec/std/isa/inst/{B → Zbkc}/clmul.yaml +1 -7
  473. data/.data/spec/std/isa/inst/{B → Zbkc}/clmulh.yaml +1 -7
  474. data/.data/spec/std/isa/inst/Zbs/bclr.yaml +0 -4
  475. data/.data/spec/std/isa/inst/Zbs/bclri.yaml +0 -4
  476. data/.data/spec/std/isa/inst/Zbs/bext.yaml +0 -4
  477. data/.data/spec/std/isa/inst/Zbs/bexti.yaml +0 -4
  478. data/.data/spec/std/isa/inst/Zbs/binv.yaml +0 -4
  479. data/.data/spec/std/isa/inst/Zbs/binvi.yaml +0 -4
  480. data/.data/spec/std/isa/inst/Zbs/bset.yaml +0 -4
  481. data/.data/spec/std/isa/inst/Zbs/bseti.yaml +0 -4
  482. data/.data/spec/std/isa/inst/Zcb/c.lbu.yaml +2 -2
  483. data/.data/spec/std/isa/inst/Zcb/c.lh.yaml +2 -2
  484. data/.data/spec/std/isa/inst/Zcb/c.lhu.yaml +2 -2
  485. data/.data/spec/std/isa/inst/Zcb/c.mul.yaml +2 -6
  486. data/.data/spec/std/isa/inst/Zcb/c.not.yaml +2 -2
  487. data/.data/spec/std/isa/inst/Zcb/c.sb.yaml +2 -2
  488. data/.data/spec/std/isa/inst/Zcb/c.sext.b.yaml +2 -6
  489. data/.data/spec/std/isa/inst/Zcb/c.sext.h.yaml +2 -6
  490. data/.data/spec/std/isa/inst/Zcb/c.sh.yaml +2 -2
  491. data/.data/spec/std/isa/inst/Zcb/c.zext.b.yaml +2 -2
  492. data/.data/spec/std/isa/inst/Zcb/c.zext.h.yaml +2 -6
  493. data/.data/spec/std/isa/inst/Zcb/c.zext.w.yaml +2 -6
  494. data/.data/spec/std/isa/inst/Zcd/c.fld.yaml +3 -3
  495. data/.data/spec/std/isa/inst/Zcd/c.fldsp.yaml +4 -4
  496. data/.data/spec/std/isa/inst/Zcd/c.fsd.yaml +3 -3
  497. data/.data/spec/std/isa/inst/Zcd/c.fsdsp.yaml +4 -4
  498. data/.data/spec/std/isa/inst/Zcf/c.flw.yaml +3 -3
  499. data/.data/spec/std/isa/inst/Zcf/c.flwsp.yaml +4 -4
  500. data/.data/spec/std/isa/inst/Zcf/c.fsw.yaml +3 -3
  501. data/.data/spec/std/isa/inst/Zcf/c.fswsp.yaml +4 -4
  502. data/.data/spec/std/isa/inst/Zcmp/cm.mva01s.yaml +2 -2
  503. data/.data/spec/std/isa/inst/Zcmp/cm.mvsa01.yaml +2 -2
  504. data/.data/spec/std/isa/inst/Zcmp/cm.pop.yaml +2 -2
  505. data/.data/spec/std/isa/inst/Zcmp/cm.popret.yaml +2 -2
  506. data/.data/spec/std/isa/inst/Zcmp/cm.popretz.yaml +2 -2
  507. data/.data/spec/std/isa/inst/Zcmp/cm.push.yaml +2 -2
  508. data/.data/spec/std/isa/inst/Zicbom/cbo.clean.yaml +2 -2
  509. data/.data/spec/std/isa/inst/Zicbom/cbo.flush.yaml +2 -2
  510. data/.data/spec/std/isa/inst/Zicbom/cbo.inval.yaml +2 -2
  511. data/.data/spec/std/isa/inst/Zicboz/cbo.zero.yaml +2 -2
  512. data/.data/spec/std/isa/inst/Zvfbfmin/vfncvtbf16.f.f.w.yaml +3 -1
  513. data/.data/spec/std/isa/inst/Zvfbfmin/vfwcvtbf16.f.f.v.yaml +3 -1
  514. data/.data/spec/std/isa/inst/Zvfofp4min/vfext.vf2.yaml +35 -0
  515. data/.data/spec/std/isa/inst/Zvfofp8min/vfncvt.f.f.q.yaml +31 -0
  516. data/.data/spec/std/isa/inst/Zvfofp8min/vfncvt.sat.f.f.q.yaml +32 -0
  517. data/.data/spec/std/isa/inst/Zvfofp8min/vfncvtbf16.sat.f.f.w.yaml +32 -0
  518. data/.data/spec/std/isa/isa/builtin_functions.idl +3 -1
  519. data/.data/spec/std/isa/isa/util.idl +1 -0
  520. data/.data/spec/std/isa/param/COUNTINHIBIT_EN.yaml +2 -10
  521. data/.data/spec/std/isa/param/HCOUNTENABLE_EN.yaml +2 -5
  522. data/.data/spec/std/isa/param/HPM_COUNTER10_WIDTH.yaml +29 -0
  523. data/.data/spec/std/isa/param/HPM_COUNTER11_WIDTH.yaml +29 -0
  524. data/.data/spec/std/isa/param/HPM_COUNTER12_WIDTH.yaml +29 -0
  525. data/.data/spec/std/isa/param/HPM_COUNTER13_WIDTH.yaml +29 -0
  526. data/.data/spec/std/isa/param/HPM_COUNTER14_WIDTH.yaml +29 -0
  527. data/.data/spec/std/isa/param/HPM_COUNTER15_WIDTH.yaml +29 -0
  528. data/.data/spec/std/isa/param/HPM_COUNTER16_WIDTH.yaml +29 -0
  529. data/.data/spec/std/isa/param/HPM_COUNTER17_WIDTH.yaml +29 -0
  530. data/.data/spec/std/isa/param/HPM_COUNTER18_WIDTH.yaml +29 -0
  531. data/.data/spec/std/isa/param/HPM_COUNTER19_WIDTH.yaml +29 -0
  532. data/.data/spec/std/isa/param/HPM_COUNTER20_WIDTH.yaml +29 -0
  533. data/.data/spec/std/isa/param/HPM_COUNTER21_WIDTH.yaml +29 -0
  534. data/.data/spec/std/isa/param/HPM_COUNTER22_WIDTH.yaml +29 -0
  535. data/.data/spec/std/isa/param/HPM_COUNTER23_WIDTH.yaml +29 -0
  536. data/.data/spec/std/isa/param/HPM_COUNTER24_WIDTH.yaml +29 -0
  537. data/.data/spec/std/isa/param/HPM_COUNTER25_WIDTH.yaml +29 -0
  538. data/.data/spec/std/isa/param/HPM_COUNTER26_WIDTH.yaml +29 -0
  539. data/.data/spec/std/isa/param/HPM_COUNTER27_WIDTH.yaml +29 -0
  540. data/.data/spec/std/isa/param/HPM_COUNTER28_WIDTH.yaml +29 -0
  541. data/.data/spec/std/isa/param/HPM_COUNTER29_WIDTH.yaml +29 -0
  542. data/.data/spec/std/isa/param/HPM_COUNTER30_WIDTH.yaml +29 -0
  543. data/.data/spec/std/isa/param/HPM_COUNTER31_WIDTH.yaml +29 -0
  544. data/.data/spec/std/isa/param/HPM_COUNTER3_WIDTH.yaml +29 -0
  545. data/.data/spec/std/isa/param/HPM_COUNTER4_WIDTH.yaml +29 -0
  546. data/.data/spec/std/isa/param/HPM_COUNTER5_WIDTH.yaml +29 -0
  547. data/.data/spec/std/isa/param/HPM_COUNTER6_WIDTH.yaml +29 -0
  548. data/.data/spec/std/isa/param/HPM_COUNTER7_WIDTH.yaml +29 -0
  549. data/.data/spec/std/isa/param/HPM_COUNTER8_WIDTH.yaml +29 -0
  550. data/.data/spec/std/isa/param/HPM_COUNTER9_WIDTH.yaml +29 -0
  551. data/.data/spec/std/isa/param/HPM_COUNTERN_WIDTH.layout +27 -0
  552. data/.data/spec/std/isa/param/HW_MSTATUS_FS_DIRTY_UPDATE.yaml +2 -4
  553. data/.data/spec/std/isa/param/HW_MSTATUS_VS_DIRTY_UPDATE.yaml +2 -4
  554. data/.data/spec/std/isa/param/LRSC_FAIL_ON_NON_EXACT_LRSC.yaml +1 -1
  555. data/.data/spec/std/isa/param/LRSC_FAIL_ON_VA_SYNONYM.yaml +1 -1
  556. data/.data/spec/std/isa/param/LRSC_MISALIGNED_BEHAVIOR.yaml +4 -4
  557. data/.data/spec/std/isa/param/LRSC_RESERVATION_STRATEGY.yaml +1 -1
  558. data/.data/spec/std/isa/param/MCOUNTENABLE_EN.yaml +2 -5
  559. data/.data/spec/std/isa/param/MEI_INTR_IMPL.yaml +28 -0
  560. data/.data/spec/std/isa/param/MSI_INTR_IMPL.yaml +28 -0
  561. data/.data/spec/std/isa/param/MSTATUS_FS_LEGAL_VALUES.yaml +8 -15
  562. data/.data/spec/std/isa/param/MSTATUS_VS_LEGAL_VALUES.yaml +7 -15
  563. data/.data/spec/std/isa/param/MTI_INTR_IMPL.yaml +28 -0
  564. data/.data/spec/std/isa/param/MTVAL_WIDTH.yaml +17 -5
  565. data/.data/spec/std/isa/param/MUTABLE_MISA_A.yaml +1 -1
  566. data/.data/spec/std/isa/param/MUTABLE_MISA_B.yaml +1 -1
  567. data/.data/spec/std/isa/param/MUTABLE_MISA_C.yaml +1 -1
  568. data/.data/spec/std/isa/param/MUTABLE_MISA_D.yaml +1 -1
  569. data/.data/spec/std/isa/param/MUTABLE_MISA_F.yaml +1 -1
  570. data/.data/spec/std/isa/param/MUTABLE_MISA_M.yaml +1 -1
  571. data/.data/spec/std/isa/param/MUTABLE_MISA_Q.yaml +1 -1
  572. data/.data/spec/std/isa/param/MUTABLE_MISA_U.yaml +1 -1
  573. data/.data/spec/std/isa/param/MUTABLE_MISA_V.yaml +1 -1
  574. data/.data/spec/std/isa/param/{PMLEN.yaml → NON_STANDARD_EXTENSION_IMPLEMENTED.yaml} +6 -9
  575. data/.data/spec/std/isa/param/NUM_EXTERNAL_GUEST_INTERRUPTS.yaml +1 -1
  576. data/.data/spec/std/isa/param/NUM_PMP_ENTRIES.yaml +1 -1
  577. data/.data/spec/std/isa/param/REPORT_CAUSE_IN_MTVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
  578. data/.data/spec/std/isa/param/REPORT_CAUSE_IN_STVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
  579. data/.data/spec/std/isa/param/REPORT_CAUSE_IN_VSTVAL_ON_LANDING_PAD_SOFTWARE_CHECK.yaml +1 -1
  580. data/.data/spec/std/isa/param/SCOUNTENABLE_EN.yaml +2 -6
  581. data/.data/spec/std/isa/param/SCTRDEPTH_DEPTH_LEGAL_VALUES.yaml +27 -0
  582. data/.data/spec/std/isa/param/SEI_INTR_IMPL.yaml +28 -0
  583. data/.data/spec/std/isa/param/SSI_INTR_IMPL.yaml +28 -0
  584. data/.data/spec/std/isa/param/STI_INTR_IMPL.yaml +33 -0
  585. data/.data/spec/std/isa/param/STVAL_WIDTH.yaml +81 -0
  586. data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SMMPM.yaml +40 -0
  587. data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SMNPM.yaml +42 -0
  588. data/.data/spec/std/isa/param/SUPPORTED_PMLEN_SSNPM.yaml +42 -0
  589. data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_S.yaml +1 -1
  590. data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_U.yaml +1 -1
  591. data/.data/spec/std/isa/param/TRAP_ON_ECALL_FROM_VS.yaml +1 -1
  592. data/.data/spec/std/isa/param/TRAP_ON_SFENCE_VMA_WHEN_SATP_MODE_IS_READ_ONLY.yaml +1 -1
  593. data/.data/spec/std/isa/param/VSEI_INTR_IMPL.yaml +28 -0
  594. data/.data/spec/std/isa/param/VSSI_INTR_IMPL.yaml +28 -0
  595. data/.data/spec/std/isa/param/VSTI_INTR_IMPL.yaml +33 -0
  596. data/.data/spec/std/isa/param/WFI_FINITE.yaml +20 -0
  597. data/.data/spec/std/isa/param/WFI_U_MODE.yaml +20 -0
  598. data/lib/udb/Z3_VERSION +1 -1
  599. data/lib/udb/log.rb +16 -0
  600. data/lib/udb/obj/csr.rb +38 -45
  601. data/lib/udb/obj/database_obj.rb +1 -1
  602. data/lib/udb/obj/exception_code.rb +3 -3
  603. data/lib/udb/version.rb +1 -1
  604. metadata +79 -10
@@ -76,12 +76,6 @@ access:
76
76
  vs: always
77
77
  vu: always
78
78
  operation(): |
79
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
80
- # even though this is a memory operation, the exception occurs before that would be known,
81
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
82
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
83
- }
84
-
85
79
  XReg virtual_address = X[xs1];
86
80
 
87
81
  if (!is_naturally_aligned(32, virtual_address)) {
@@ -103,8 +97,4 @@ operation(): |
103
97
  }
104
98
 
105
99
  XReg load_value = load_reserved(32, virtual_address, aq, rl, $encoding);
106
- if (xlen() == 64) {
107
- X[xd] = load_value;
108
- } else {
109
- X[xd] = sext(load_value[31:0], 32);
110
- }
100
+ X[xd] = sext(load_value[31:0], 32);
@@ -76,12 +76,6 @@ access:
76
76
  vs: always
77
77
  vu: always
78
78
  operation(): |
79
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
80
- # even though this is a memory operation, the exception occurs before that would be known,
81
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
82
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
83
- }
84
-
85
79
  XReg virtual_address = X[xs1];
86
80
 
87
81
  if (!is_naturally_aligned(32, virtual_address)) {
@@ -103,8 +97,4 @@ operation(): |
103
97
  }
104
98
 
105
99
  XReg load_value = load_reserved(32, virtual_address, aq, rl, $encoding);
106
- if (xlen() == 64) {
107
- X[xd] = load_value;
108
- } else {
109
- X[xd] = sext(load_value[31:0], 32);
110
- }
100
+ X[xd] = sext(load_value[31:0], 32);
@@ -76,12 +76,6 @@ access:
76
76
  vs: always
77
77
  vu: always
78
78
  operation(): |
79
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
80
- # even though this is a memory operation, the exception occurs before that would be known,
81
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
82
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
83
- }
84
-
85
79
  XReg virtual_address = X[xs1];
86
80
 
87
81
  if (!is_naturally_aligned(32, virtual_address)) {
@@ -103,8 +97,4 @@ operation(): |
103
97
  }
104
98
 
105
99
  XReg load_value = load_reserved(32, virtual_address, aq, rl, $encoding);
106
- if (xlen() == 64) {
107
- X[xd] = load_value;
108
- } else {
109
- X[xd] = sext(load_value[31:0], 32);
110
- }
100
+ X[xd] = sext(load_value[31:0], 32);
@@ -76,12 +76,6 @@ access:
76
76
  vs: always
77
77
  vu: always
78
78
  operation(): |
79
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
80
- # even though this is a memory operation, the exception occurs before that would be known,
81
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
82
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
83
- }
84
-
85
79
  XReg virtual_address = X[xs1];
86
80
 
87
81
  if (!is_naturally_aligned(32, virtual_address)) {
@@ -103,8 +97,4 @@ operation(): |
103
97
  }
104
98
 
105
99
  XReg load_value = load_reserved(32, virtual_address, aq, rl, $encoding);
106
- if (xlen() == 64) {
107
- X[xd] = load_value;
108
- } else {
109
- X[xd] = sext(load_value[31:0], 32);
110
- }
100
+ X[xd] = sext(load_value[31:0], 32);
@@ -175,17 +175,11 @@ access:
175
175
  vs: always
176
176
  vu: always
177
177
  operation(): |
178
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
179
- # even though this is a memory operation, the exception occurs before that would be known,
180
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
181
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
182
- }
183
-
184
178
  XReg virtual_address = X[xs1];
185
179
  XReg value = X[xs2];
186
180
 
187
181
  if (!is_naturally_aligned(<%= current_size[:align_bits] %>, virtual_address)) {
188
- # can raise either LoadAddressMisaligned *or* LoadAccessFault
182
+ # can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
189
183
  #
190
184
  # from the spec:
191
185
  # If the address is not naturally aligned, an address-misaligned exception or
@@ -194,11 +188,11 @@ operation(): |
194
188
  # for the misalignment, if the misaligned access should not be emulated.
195
189
 
196
190
  if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
197
- raise(ExceptionCode::LoadAddressMisaligned, effective_ldst_mode(), virtual_address);
191
+ raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
198
192
  } else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
199
- raise(ExceptionCode::LoadAccessFault, effective_ldst_mode(), virtual_address);
193
+ raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
200
194
  } else {
201
- unpredictable("Implementations may raise either a LoadAddressMisaligned or a LoadAccessFault when an LR/SC address is misaligned");
195
+ unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
202
196
  }
203
197
  }
204
198
 
@@ -132,17 +132,11 @@ access:
132
132
  vs: always
133
133
  vu: always
134
134
  operation(): |
135
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
136
- # even though this is a memory operation, the exception occurs before that would be known,
137
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
138
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
139
- }
140
-
141
135
  XReg virtual_address = X[xs1];
142
136
  XReg value = X[xs2];
143
137
 
144
138
  if (!is_naturally_aligned(64, virtual_address)) {
145
- # can raise either LoadAddressMisaligned *or* LoadAccessFault
139
+ # can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
146
140
  #
147
141
  # from the spec:
148
142
  # If the address is not naturally aligned, an address-misaligned exception or
@@ -151,11 +145,11 @@ operation(): |
151
145
  # for the misalignment, if the misaligned access should not be emulated.
152
146
 
153
147
  if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
154
- raise(ExceptionCode::LoadAddressMisaligned, effective_ldst_mode(), virtual_address);
148
+ raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
155
149
  } else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
156
- raise(ExceptionCode::LoadAccessFault, effective_ldst_mode(), virtual_address);
150
+ raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
157
151
  } else {
158
- unpredictable("Implementations may raise either a LoadAddressMisaligned or a LoadAccessFault when an LR/SC address is misaligned");
152
+ unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
159
153
  }
160
154
  }
161
155
 
@@ -132,17 +132,11 @@ access:
132
132
  vs: always
133
133
  vu: always
134
134
  operation(): |
135
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
136
- # even though this is a memory operation, the exception occurs before that would be known,
137
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
138
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
139
- }
140
-
141
135
  XReg virtual_address = X[xs1];
142
136
  XReg value = X[xs2];
143
137
 
144
138
  if (!is_naturally_aligned(64, virtual_address)) {
145
- # can raise either LoadAddressMisaligned *or* LoadAccessFault
139
+ # can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
146
140
  #
147
141
  # from the spec:
148
142
  # If the address is not naturally aligned, an address-misaligned exception or
@@ -151,11 +145,11 @@ operation(): |
151
145
  # for the misalignment, if the misaligned access should not be emulated.
152
146
 
153
147
  if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
154
- raise(ExceptionCode::LoadAddressMisaligned, effective_ldst_mode(), virtual_address);
148
+ raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
155
149
  } else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
156
- raise(ExceptionCode::LoadAccessFault, effective_ldst_mode(), virtual_address);
150
+ raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
157
151
  } else {
158
- unpredictable("Implementations may raise either a LoadAddressMisaligned or a LoadAccessFault when an LR/SC address is misaligned");
152
+ unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
159
153
  }
160
154
  }
161
155
 
@@ -132,17 +132,11 @@ access:
132
132
  vs: always
133
133
  vu: always
134
134
  operation(): |
135
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
136
- # even though this is a memory operation, the exception occurs before that would be known,
137
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
138
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
139
- }
140
-
141
135
  XReg virtual_address = X[xs1];
142
136
  XReg value = X[xs2];
143
137
 
144
138
  if (!is_naturally_aligned(64, virtual_address)) {
145
- # can raise either LoadAddressMisaligned *or* LoadAccessFault
139
+ # can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
146
140
  #
147
141
  # from the spec:
148
142
  # If the address is not naturally aligned, an address-misaligned exception or
@@ -151,11 +145,11 @@ operation(): |
151
145
  # for the misalignment, if the misaligned access should not be emulated.
152
146
 
153
147
  if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
154
- raise(ExceptionCode::LoadAddressMisaligned, effective_ldst_mode(), virtual_address);
148
+ raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
155
149
  } else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
156
- raise(ExceptionCode::LoadAccessFault, effective_ldst_mode(), virtual_address);
150
+ raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
157
151
  } else {
158
- unpredictable("Implementations may raise either a LoadAddressMisaligned or a LoadAccessFault when an LR/SC address is misaligned");
152
+ unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
159
153
  }
160
154
  }
161
155
 
@@ -132,17 +132,11 @@ access:
132
132
  vs: always
133
133
  vu: always
134
134
  operation(): |
135
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
136
- # even though this is a memory operation, the exception occurs before that would be known,
137
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
138
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
139
- }
140
-
141
135
  XReg virtual_address = X[xs1];
142
136
  XReg value = X[xs2];
143
137
 
144
138
  if (!is_naturally_aligned(64, virtual_address)) {
145
- # can raise either LoadAddressMisaligned *or* LoadAccessFault
139
+ # can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
146
140
  #
147
141
  # from the spec:
148
142
  # If the address is not naturally aligned, an address-misaligned exception or
@@ -151,11 +145,11 @@ operation(): |
151
145
  # for the misalignment, if the misaligned access should not be emulated.
152
146
 
153
147
  if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
154
- raise(ExceptionCode::LoadAddressMisaligned, effective_ldst_mode(), virtual_address);
148
+ raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
155
149
  } else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
156
- raise(ExceptionCode::LoadAccessFault, effective_ldst_mode(), virtual_address);
150
+ raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
157
151
  } else {
158
- unpredictable("Implementations may raise either a LoadAddressMisaligned or a LoadAccessFault when an LR/SC address is misaligned");
152
+ unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
159
153
  }
160
154
  }
161
155
 
@@ -134,17 +134,11 @@ access:
134
134
  vs: always
135
135
  vu: always
136
136
  operation(): |
137
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
138
- # even though this is a memory operation, the exception occurs before that would be known,
139
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
140
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
141
- }
142
-
143
137
  XReg virtual_address = X[xs1];
144
138
  XReg value = X[xs2];
145
139
 
146
140
  if (!is_naturally_aligned(32, virtual_address)) {
147
- # can raise either LoadAddressMisaligned *or* LoadAccessFault
141
+ # can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
148
142
  #
149
143
  # from the spec:
150
144
  # If the address is not naturally aligned, an address-misaligned exception or
@@ -153,11 +147,11 @@ operation(): |
153
147
  # for the misalignment, if the misaligned access should not be emulated.
154
148
 
155
149
  if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
156
- raise(ExceptionCode::LoadAddressMisaligned, effective_ldst_mode(), virtual_address);
150
+ raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
157
151
  } else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
158
- raise(ExceptionCode::LoadAccessFault, effective_ldst_mode(), virtual_address);
152
+ raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
159
153
  } else {
160
- unpredictable("Implementations may raise either a LoadAddressMisaligned or a LoadAccessFault when an LR/SC address is misaligned");
154
+ unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
161
155
  }
162
156
  }
163
157
 
@@ -134,17 +134,11 @@ access:
134
134
  vs: always
135
135
  vu: always
136
136
  operation(): |
137
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
138
- # even though this is a memory operation, the exception occurs before that would be known,
139
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
140
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
141
- }
142
-
143
137
  XReg virtual_address = X[xs1];
144
138
  XReg value = X[xs2];
145
139
 
146
140
  if (!is_naturally_aligned(32, virtual_address)) {
147
- # can raise either LoadAddressMisaligned *or* LoadAccessFault
141
+ # can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
148
142
  #
149
143
  # from the spec:
150
144
  # If the address is not naturally aligned, an address-misaligned exception or
@@ -153,11 +147,11 @@ operation(): |
153
147
  # for the misalignment, if the misaligned access should not be emulated.
154
148
 
155
149
  if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
156
- raise(ExceptionCode::LoadAddressMisaligned, effective_ldst_mode(), virtual_address);
150
+ raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
157
151
  } else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
158
- raise(ExceptionCode::LoadAccessFault, effective_ldst_mode(), virtual_address);
152
+ raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
159
153
  } else {
160
- unpredictable("Implementations may raise either a LoadAddressMisaligned or a LoadAccessFault when an LR/SC address is misaligned");
154
+ unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
161
155
  }
162
156
  }
163
157
 
@@ -134,17 +134,11 @@ access:
134
134
  vs: always
135
135
  vu: always
136
136
  operation(): |
137
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
138
- # even though this is a memory operation, the exception occurs before that would be known,
139
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
140
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
141
- }
142
-
143
137
  XReg virtual_address = X[xs1];
144
138
  XReg value = X[xs2];
145
139
 
146
140
  if (!is_naturally_aligned(32, virtual_address)) {
147
- # can raise either LoadAddressMisaligned *or* LoadAccessFault
141
+ # can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
148
142
  #
149
143
  # from the spec:
150
144
  # If the address is not naturally aligned, an address-misaligned exception or
@@ -153,11 +147,11 @@ operation(): |
153
147
  # for the misalignment, if the misaligned access should not be emulated.
154
148
 
155
149
  if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
156
- raise(ExceptionCode::LoadAddressMisaligned, effective_ldst_mode(), virtual_address);
150
+ raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
157
151
  } else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
158
- raise(ExceptionCode::LoadAccessFault, effective_ldst_mode(), virtual_address);
152
+ raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
159
153
  } else {
160
- unpredictable("Implementations may raise either a LoadAddressMisaligned or a LoadAccessFault when an LR/SC address is misaligned");
154
+ unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
161
155
  }
162
156
  }
163
157
 
@@ -134,17 +134,11 @@ access:
134
134
  vs: always
135
135
  vu: always
136
136
  operation(): |
137
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
138
- # even though this is a memory operation, the exception occurs before that would be known,
139
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
140
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
141
- }
142
-
143
137
  XReg virtual_address = X[xs1];
144
138
  XReg value = X[xs2];
145
139
 
146
140
  if (!is_naturally_aligned(32, virtual_address)) {
147
- # can raise either LoadAddressMisaligned *or* LoadAccessFault
141
+ # can raise either StoreAmoAddressMisaligned *or* StoreAmoAccessFault
148
142
  #
149
143
  # from the spec:
150
144
  # If the address is not naturally aligned, an address-misaligned exception or
@@ -153,11 +147,11 @@ operation(): |
153
147
  # for the misalignment, if the misaligned access should not be emulated.
154
148
 
155
149
  if (LRSC_MISALIGNED_BEHAVIOR == "always raise misaligned exception") {
156
- raise(ExceptionCode::LoadAddressMisaligned, effective_ldst_mode(), virtual_address);
150
+ raise(ExceptionCode::StoreAmoAddressMisaligned, effective_ldst_mode(), virtual_address);
157
151
  } else if (LRSC_MISALIGNED_BEHAVIOR == "always raise access fault") {
158
- raise(ExceptionCode::LoadAccessFault, effective_ldst_mode(), virtual_address);
152
+ raise(ExceptionCode::StoreAmoAccessFault, effective_ldst_mode(), virtual_address);
159
153
  } else {
160
- unpredictable("Implementations may raise either a LoadAddressMisaligned or a LoadAccessFault when an LR/SC address is misaligned");
154
+ unpredictable("Implementations may raise either a StoreAmoAddressMisaligned or a StoreAmoAccessFault when an SC address is misaligned");
161
155
  }
162
156
  }
163
157
 
@@ -34,8 +34,4 @@ pseudoinstructions:
34
34
  - when: xs2 == 0
35
35
  to: zext.w xd, xs1
36
36
  operation(): |
37
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
38
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
39
- }
40
-
41
37
  X[xd] = X[xs2] + X[xs1][31:0];
@@ -32,8 +32,4 @@ access:
32
32
  vs: always
33
33
  vu: always
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[xs2] + (X[xs1][31:0] << 1);
@@ -28,8 +28,4 @@ access:
28
28
  vs: always
29
29
  vu: always
30
30
  operation(): |
31
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
32
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
33
- }
34
-
35
31
  X[xd] = X[xs2] + (X[xs1] << 1);
@@ -32,8 +32,4 @@ access:
32
32
  vs: always
33
33
  vu: always
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[xs2] + (X[xs1][31:0] << 2);
@@ -28,8 +28,4 @@ access:
28
28
  vs: always
29
29
  vu: always
30
30
  operation(): |
31
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
32
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
33
- }
34
-
35
31
  X[xd] = X[xs2] + (X[xs1] << 2);
@@ -32,8 +32,4 @@ access:
32
32
  vs: always
33
33
  vu: always
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[xs2] + (X[xs1][31:0] << 3);
@@ -28,8 +28,4 @@ access:
28
28
  vs: always
29
29
  vu: always
30
30
  operation(): |
31
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
32
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
33
- }
34
-
35
31
  X[xd] = X[xs2] + (X[xs1] << 3);
@@ -34,8 +34,4 @@ access:
34
34
  vs: always
35
35
  vu: always
36
36
  operation(): |
37
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
38
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
39
- }
40
-
41
37
  X[xd] = X[xs1][31:0] << shamt;
@@ -29,8 +29,4 @@ access:
29
29
  vs: always
30
30
  vu: always
31
31
  operation(): |
32
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
33
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
34
- }
35
-
36
32
  X[xd] = (xlen() - 1) - $signed(highest_set_bit(X[xs1]));
@@ -30,8 +30,4 @@ access:
30
30
  vs: always
31
31
  vu: always
32
32
  operation(): |
33
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
34
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
35
- }
36
-
37
33
  X[xd] = 31 - $signed(highest_set_bit(X[xs1][31:0]));
@@ -38,10 +38,6 @@ access:
38
38
  vs: always
39
39
  vu: always
40
40
  operation(): |
41
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
42
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
43
- }
44
-
45
41
  XReg bitcount = 0;
46
42
  XReg xs1_val = X[xs1];
47
43
 
@@ -40,10 +40,6 @@ access:
40
40
  vs: always
41
41
  vu: always
42
42
  operation(): |
43
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
44
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
45
- }
46
-
47
43
  XReg bitcount = 0;
48
44
  XReg xs1_val = X[xs1];
49
45
 
@@ -30,10 +30,6 @@ access:
30
30
  vs: always
31
31
  vu: always
32
32
  operation(): |
33
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
34
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
35
- }
36
-
37
33
  if (xlen() == 32) {
38
34
  X[xd] = lowest_set_bit(X[xs1][31:0]);
39
35
  } else {
@@ -32,10 +32,6 @@ access:
32
32
  vs: always
33
33
  vu: always
34
34
  operation(): |
35
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
36
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
37
- }
38
-
39
35
  # lowest_set_bit() reports xlen() (64 here) for a zero input, but ctzw must report 32
40
36
  if (X[xs1][31:0] == 0) {
41
37
  X[xd] = 32;
@@ -36,8 +36,4 @@ access:
36
36
  vs: always
37
37
  vu: always
38
38
  operation(): |
39
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
40
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
41
- }
42
-
43
39
  X[xd] = ($signed(X[xs1]) > $signed(X[xs2])) ? X[xs1] : X[xs2];
@@ -28,8 +28,4 @@ access:
28
28
  vs: always
29
29
  vu: always
30
30
  operation(): |
31
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
32
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
33
- }
34
-
35
31
  X[xd] = (X[xs1] > X[xs2]) ? X[xs1] : X[xs2];
@@ -28,8 +28,4 @@ access:
28
28
  vs: always
29
29
  vu: always
30
30
  operation(): |
31
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
32
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
33
- }
34
-
35
31
  X[xd] = ($signed(X[xs1]) < $signed(X[xs2])) ? X[xs1] : X[xs2];
@@ -28,8 +28,4 @@ access:
28
28
  vs: always
29
29
  vu: always
30
30
  operation(): |
31
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
32
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
33
- }
34
-
35
31
  X[xd] = (X[xs1] < X[xs2]) ? X[xs1] : X[xs2];
@@ -28,10 +28,6 @@ access:
28
28
  vs: always
29
29
  vu: always
30
30
  operation(): |
31
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
32
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
33
- }
34
-
35
31
  XReg input = X[xs1];
36
32
  XReg output = 0;
37
33
 
@@ -27,10 +27,6 @@ access:
27
27
  vs: always
28
28
  vu: always
29
29
  operation(): |
30
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
31
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
32
- }
33
-
34
30
  if (xlen() == 32) {
35
31
  X[xd] = {{24{X[xs1][7]}}, X[xs1][7:0]};
36
32
  } else if (xlen() == 64) {
@@ -27,10 +27,6 @@ access:
27
27
  vs: always
28
28
  vu: always
29
29
  operation(): |
30
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
31
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
32
- }
33
-
34
30
  if (xlen() == 32) {
35
31
  X[xd] = {{16{X[xs1][15]}}, X[xs1][15:0]};
36
32
  } else if (xlen() == 64) {
@@ -45,8 +45,4 @@ access:
45
45
  vs: always
46
46
  vu: always
47
47
  operation(): |
48
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
49
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
50
- }
51
-
52
48
  X[xd] = X[xs1][15:0];
@@ -28,10 +28,6 @@ encoding:
28
28
  - name: xd
29
29
  location: 11-7
30
30
  operation(): |
31
- if (implemented?(ExtensionName::B) && (CSR[misa].B == 1'b0)) {
32
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
33
- }
34
-
35
31
  XReg xs1_val = X[xs1];
36
32
  XReg xs2_val = X[xs2];
37
33
  XReg output = 0;