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
@@ -37,13 +37,9 @@ access:
37
37
  vs: always
38
38
  vu: always
39
39
  operation(): |
40
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
41
- reserved_instruction($encoding);
42
- }
43
-
44
40
  memory_model_acquire();
45
41
 
46
42
  XReg virtual_address = X[xs1];
47
- X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Or, 1'b1, 1'b1, $encoding);
43
+ X[xd] = sext(amo(16, virtual_address, X[xs2][15:0], AmoOperation::Or, 1'b1, 1'b1, $encoding), 16);
48
44
 
49
45
  memory_model_release();
@@ -37,11 +37,7 @@ access:
37
37
  vs: always
38
38
  vu: always
39
39
  operation(): |
40
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
41
- reserved_instruction($encoding);
42
- }
43
-
44
40
  XReg virtual_address = X[xs1];
45
- X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Or, 1'b0, 1'b1, $encoding);
41
+ X[xd] = sext(amo(16, virtual_address, X[xs2][15:0], AmoOperation::Or, 1'b0, 1'b1, $encoding), 16);
46
42
 
47
43
  memory_model_release();
@@ -37,9 +37,5 @@ access:
37
37
  vs: always
38
38
  vu: always
39
39
  operation(): |
40
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
41
- reserved_instruction($encoding);
42
- }
43
-
44
40
  XReg virtual_address = X[xs1];
45
- X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Or, 1'b0, 1'b0, $encoding);
41
+ X[xd] = sext(amo(16, virtual_address, X[xs2][15:0], AmoOperation::Or, 1'b0, 1'b0, $encoding), 16);
@@ -36,11 +36,7 @@ access:
36
36
  vs: always
37
37
  vu: always
38
38
  operation(): |
39
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
40
- reserved_instruction($encoding);
41
- }
42
-
43
39
  memory_model_acquire();
44
40
 
45
41
  XReg virtual_address = X[xs1];
46
- X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Swap, 1'b1, 1'b0, $encoding);
42
+ X[xd] = sext(amo(8, virtual_address, X[xs2][7:0], AmoOperation::Swap, 1'b1, 1'b0, $encoding), 8);
@@ -36,13 +36,9 @@ access:
36
36
  vs: always
37
37
  vu: always
38
38
  operation(): |
39
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
40
- reserved_instruction($encoding);
41
- }
42
-
43
39
  memory_model_acquire();
44
40
 
45
41
  XReg virtual_address = X[xs1];
46
- X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Swap, 1'b1, 1'b1, $encoding);
42
+ X[xd] = sext(amo(8, virtual_address, X[xs2][7:0], AmoOperation::Swap, 1'b1, 1'b1, $encoding), 8);
47
43
 
48
44
  memory_model_release();
@@ -36,11 +36,7 @@ access:
36
36
  vs: always
37
37
  vu: always
38
38
  operation(): |
39
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
40
- reserved_instruction($encoding);
41
- }
42
-
43
39
  XReg virtual_address = X[xs1];
44
- X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Swap, 1'b0, 1'b1, $encoding);
40
+ X[xd] = sext(amo(8, virtual_address, X[xs2][7:0], AmoOperation::Swap, 1'b0, 1'b1, $encoding), 8);
45
41
 
46
42
  memory_model_release();
@@ -36,9 +36,5 @@ access:
36
36
  vs: always
37
37
  vu: always
38
38
  operation(): |
39
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
40
- reserved_instruction($encoding);
41
- }
42
-
43
39
  XReg virtual_address = X[xs1];
44
- X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Swap, 1'b0, 1'b0, $encoding);
40
+ X[xd] = sext(amo(8, virtual_address, X[xs2][7:0], AmoOperation::Swap, 1'b0, 1'b0, $encoding), 8);
@@ -36,11 +36,7 @@ access:
36
36
  vs: always
37
37
  vu: always
38
38
  operation(): |
39
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
40
- reserved_instruction($encoding);
41
- }
42
-
43
39
  memory_model_acquire();
44
40
 
45
41
  XReg virtual_address = X[xs1];
46
- X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Swap, 1'b1, 1'b0, $encoding);
42
+ X[xd] = sext(amo(16, virtual_address, X[xs2][15:0], AmoOperation::Swap, 1'b1, 1'b0, $encoding), 16);
@@ -36,13 +36,9 @@ access:
36
36
  vs: always
37
37
  vu: always
38
38
  operation(): |
39
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
40
- reserved_instruction($encoding);
41
- }
42
-
43
39
  memory_model_acquire();
44
40
 
45
41
  XReg virtual_address = X[xs1];
46
- X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Swap, 1'b1, 1'b1, $encoding);
42
+ X[xd] = sext(amo(16, virtual_address, X[xs2][15:0], AmoOperation::Swap, 1'b1, 1'b1, $encoding), 16);
47
43
 
48
44
  memory_model_release();
@@ -36,11 +36,7 @@ access:
36
36
  vs: always
37
37
  vu: always
38
38
  operation(): |
39
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
40
- reserved_instruction($encoding);
41
- }
42
-
43
39
  XReg virtual_address = X[xs1];
44
- X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Swap, 1'b0, 1'b1, $encoding);
40
+ X[xd] = sext(amo(16, virtual_address, X[xs2][15:0], AmoOperation::Swap, 1'b0, 1'b1, $encoding), 16);
45
41
 
46
42
  memory_model_release();
@@ -36,9 +36,5 @@ access:
36
36
  vs: always
37
37
  vu: always
38
38
  operation(): |
39
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
40
- reserved_instruction($encoding);
41
- }
42
-
43
39
  XReg virtual_address = X[xs1];
44
- X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Swap, 1'b0, 1'b0, $encoding);
40
+ X[xd] = sext(amo(16, virtual_address, X[xs2][15:0], AmoOperation::Swap, 1'b0, 1'b0, $encoding), 16);
@@ -37,11 +37,7 @@ access:
37
37
  vs: always
38
38
  vu: always
39
39
  operation(): |
40
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
41
- reserved_instruction($encoding);
42
- }
43
-
44
40
  memory_model_acquire();
45
41
 
46
42
  XReg virtual_address = X[xs1];
47
- X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Xor, 1'b1, 1'b0, $encoding);
43
+ X[xd] = sext(amo(8, virtual_address, X[xs2][7:0], AmoOperation::Xor, 1'b1, 1'b0, $encoding), 8);
@@ -37,13 +37,9 @@ access:
37
37
  vs: always
38
38
  vu: always
39
39
  operation(): |
40
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
41
- reserved_instruction($encoding);
42
- }
43
-
44
40
  memory_model_acquire();
45
41
 
46
42
  XReg virtual_address = X[xs1];
47
- X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Xor, 1'b1, 1'b1, $encoding);
43
+ X[xd] = sext(amo(8, virtual_address, X[xs2][7:0], AmoOperation::Xor, 1'b1, 1'b1, $encoding), 8);
48
44
 
49
45
  memory_model_release();
@@ -37,11 +37,7 @@ access:
37
37
  vs: always
38
38
  vu: always
39
39
  operation(): |
40
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
41
- reserved_instruction($encoding);
42
- }
43
-
44
40
  XReg virtual_address = X[xs1];
45
- X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Xor, 1'b0, 1'b1, $encoding);
41
+ X[xd] = sext(amo(8, virtual_address, X[xs2][7:0], AmoOperation::Xor, 1'b0, 1'b1, $encoding), 8);
46
42
 
47
43
  memory_model_release();
@@ -37,9 +37,5 @@ access:
37
37
  vs: always
38
38
  vu: always
39
39
  operation(): |
40
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
41
- reserved_instruction($encoding);
42
- }
43
-
44
40
  XReg virtual_address = X[xs1];
45
- X[xd] = amo(8, virtual_address, X[xs2][7:0], AmoOperation::Xor, 1'b0, 1'b0, $encoding);
41
+ X[xd] = sext(amo(8, virtual_address, X[xs2][7:0], AmoOperation::Xor, 1'b0, 1'b0, $encoding), 8);
@@ -37,11 +37,7 @@ access:
37
37
  vs: always
38
38
  vu: always
39
39
  operation(): |
40
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
41
- reserved_instruction($encoding);
42
- }
43
-
44
40
  memory_model_acquire();
45
41
 
46
42
  XReg virtual_address = X[xs1];
47
- X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Xor, 1'b1, 1'b0, $encoding);
43
+ X[xd] = sext(amo(16, virtual_address, X[xs2][15:0], AmoOperation::Xor, 1'b1, 1'b0, $encoding), 16);
@@ -37,13 +37,9 @@ access:
37
37
  vs: always
38
38
  vu: always
39
39
  operation(): |
40
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
41
- reserved_instruction($encoding);
42
- }
43
-
44
40
  memory_model_acquire();
45
41
 
46
42
  XReg virtual_address = X[xs1];
47
- X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Xor, 1'b1, 1'b1, $encoding);
43
+ X[xd] = sext(amo(16, virtual_address, X[xs2][15:0], AmoOperation::Xor, 1'b1, 1'b1, $encoding), 16);
48
44
 
49
45
  memory_model_release();
@@ -37,11 +37,7 @@ access:
37
37
  vs: always
38
38
  vu: always
39
39
  operation(): |
40
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
41
- reserved_instruction($encoding);
42
- }
43
-
44
40
  XReg virtual_address = X[xs1];
45
- X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Xor, 1'b0, 1'b1, $encoding);
41
+ X[xd] = sext(amo(16, virtual_address, X[xs2][15:0], AmoOperation::Xor, 1'b0, 1'b1, $encoding), 16);
46
42
 
47
43
  memory_model_release();
@@ -37,9 +37,5 @@ access:
37
37
  vs: always
38
38
  vu: always
39
39
  operation(): |
40
- if (implemented?(ExtensionName::A) && MISA_CSR_IMPLEMENTED && CSR[misa].A == 1'b0) {
41
- reserved_instruction($encoding);
42
- }
43
-
44
40
  XReg virtual_address = X[xs1];
45
- X[xd] = amo(16, virtual_address, X[xs2][15:0], AmoOperation::Xor, 1'b0, 1'b0, $encoding);
41
+ X[xd] = sext(amo(16, virtual_address, X[xs2][15:0], AmoOperation::Xor, 1'b0, 1'b0, $encoding), 16);
@@ -119,12 +119,6 @@ access:
119
119
  vs: always
120
120
  vu: always
121
121
  operation(): |
122
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
123
- # even though this is a memory operation, the exception occurs before that would be known,
124
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
125
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
126
- }
127
-
128
122
  XReg virtual_address = X[xs1];
129
123
 
130
124
  if (!is_naturally_aligned(<%= current_size[:align_bits] %>, virtual_address)) {
@@ -147,11 +141,7 @@ operation(): |
147
141
 
148
142
  XReg load_value = load_reserved(<%= current_size[:load_reserved_bits] %>, virtual_address, aq, rl, $encoding);
149
143
  <%- if size == "w" -%>
150
- if (xlen() == 64) {
151
- X[xd] = load_value;
152
- } else {
153
- X[xd] = sext(load_value[31:0], 32);
154
- }
144
+ X[xd] = sext(load_value[31:0], 32);
155
145
  <%- else -%>
156
146
  X[xd] = load_value;
157
147
  <%- end -%>
@@ -73,12 +73,6 @@ access:
73
73
  vs: always
74
74
  vu: always
75
75
  operation(): |
76
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
77
- # even though this is a memory operation, the exception occurs before that would be known,
78
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
79
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
80
- }
81
-
82
76
  XReg virtual_address = X[xs1];
83
77
 
84
78
  if (!is_naturally_aligned(64, virtual_address)) {
@@ -73,12 +73,6 @@ access:
73
73
  vs: always
74
74
  vu: always
75
75
  operation(): |
76
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
77
- # even though this is a memory operation, the exception occurs before that would be known,
78
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
79
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
80
- }
81
-
82
76
  XReg virtual_address = X[xs1];
83
77
 
84
78
  if (!is_naturally_aligned(64, virtual_address)) {
@@ -73,12 +73,6 @@ access:
73
73
  vs: always
74
74
  vu: always
75
75
  operation(): |
76
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
77
- # even though this is a memory operation, the exception occurs before that would be known,
78
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
79
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
80
- }
81
-
82
76
  XReg virtual_address = X[xs1];
83
77
 
84
78
  if (!is_naturally_aligned(64, virtual_address)) {
@@ -73,12 +73,6 @@ access:
73
73
  vs: always
74
74
  vu: always
75
75
  operation(): |
76
- if (implemented?(ExtensionName::A) && (CSR[misa].A == 1'b0)) {
77
- # even though this is a memory operation, the exception occurs before that would be known,
78
- # so mode() is the correct reporting mode rathat than effective_ldst_mode()
79
- raise (ExceptionCode::IllegalInstruction, mode(), $encoding);
80
- }
81
-
82
76
  XReg virtual_address = X[xs1];
83
77
 
84
78
  if (!is_naturally_aligned(64, virtual_address)) {
@@ -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