udb 0.1.14 → 0.1.16

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 (343) hide show
  1. checksums.yaml +4 -4
  2. data/.data/cfgs/example_rv64_with_overlay.yaml +6 -6
  3. data/.data/cfgs/mc100-32-full-example.yaml +3 -2
  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 +3 -2
  13. data/.data/cfgs/rv32-riscv-tests.yaml +5 -4
  14. data/.data/cfgs/rv32-vector.yaml +5 -4
  15. data/.data/cfgs/rv64-riscv-tests.yaml +5 -4
  16. data/.data/cfgs/rv64-vector.yaml +5 -4
  17. data/.data/spec/schemas/README.adoc +3 -0
  18. data/.data/spec/schemas/schema_defs.json +3 -3
  19. data/.data/spec/std/isa/csr/H/hcounteren.layout +3 -3
  20. data/.data/spec/std/isa/csr/H/hcounteren.yaml +31 -31
  21. data/.data/spec/std/isa/csr/H/henvcfg.yaml +1 -1
  22. data/.data/spec/std/isa/csr/H/htimedeltah.yaml +1 -1
  23. data/.data/spec/std/isa/csr/H/htinst.yaml +3 -3
  24. data/.data/spec/std/isa/csr/H/htval.yaml +3 -3
  25. data/.data/spec/std/isa/csr/H/mtinst.yaml +1 -1
  26. data/.data/spec/std/isa/csr/Smcntrpmf/mcyclecfg.yaml +1 -1
  27. data/.data/spec/std/isa/csr/Smcntrpmf/mcyclecfgh.yaml +1 -1
  28. data/.data/spec/std/isa/csr/Smcntrpmf/minstretcfg.yaml +1 -1
  29. data/.data/spec/std/isa/csr/Smcntrpmf/minstretcfgh.yaml +1 -1
  30. data/.data/spec/std/isa/csr/Smctr/vsctrctl.yaml +1 -1
  31. data/.data/spec/std/isa/csr/Sscofpmf/scountovf.layout +1 -1
  32. data/.data/spec/std/isa/csr/Sscofpmf/scountovf.yaml +29 -29
  33. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter10.yaml +4 -4
  34. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter10h.yaml +1 -1
  35. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter11.yaml +4 -4
  36. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter11h.yaml +1 -1
  37. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter12.yaml +4 -4
  38. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter12h.yaml +1 -1
  39. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter13.yaml +4 -4
  40. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter13h.yaml +1 -1
  41. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter14.yaml +4 -4
  42. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter14h.yaml +1 -1
  43. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter15.yaml +4 -4
  44. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter15h.yaml +1 -1
  45. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter16.yaml +4 -4
  46. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter16h.yaml +1 -1
  47. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter17.yaml +4 -4
  48. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter17h.yaml +1 -1
  49. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter18.yaml +4 -4
  50. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter18h.yaml +1 -1
  51. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter19.yaml +4 -4
  52. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter19h.yaml +1 -1
  53. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter20.yaml +4 -4
  54. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter20h.yaml +1 -1
  55. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter21.yaml +4 -4
  56. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter21h.yaml +1 -1
  57. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter22.yaml +4 -4
  58. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter22h.yaml +1 -1
  59. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter23.yaml +4 -4
  60. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter23h.yaml +1 -1
  61. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter24.yaml +4 -4
  62. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter24h.yaml +1 -1
  63. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter25.yaml +4 -4
  64. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter25h.yaml +1 -1
  65. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter26.yaml +4 -4
  66. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter26h.yaml +1 -1
  67. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter27.yaml +4 -4
  68. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter27h.yaml +1 -1
  69. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter28.yaml +4 -4
  70. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter28h.yaml +1 -1
  71. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter29.yaml +4 -4
  72. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter29h.yaml +1 -1
  73. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter3.yaml +4 -4
  74. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter30.yaml +4 -4
  75. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter30h.yaml +1 -1
  76. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter31.yaml +4 -4
  77. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter31h.yaml +1 -1
  78. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter3h.yaml +1 -1
  79. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter4.yaml +4 -4
  80. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter4h.yaml +1 -1
  81. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter5.yaml +4 -4
  82. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter5h.yaml +1 -1
  83. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter6.yaml +4 -4
  84. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter6h.yaml +1 -1
  85. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter7.yaml +4 -4
  86. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter7h.yaml +1 -1
  87. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter8.yaml +4 -4
  88. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter8h.yaml +1 -1
  89. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter9.yaml +4 -4
  90. data/.data/spec/std/isa/csr/Zihpm/mhpmcounter9h.yaml +1 -1
  91. data/.data/spec/std/isa/csr/Zihpm/mhpmcounterN.layout +4 -4
  92. data/.data/spec/std/isa/csr/Zihpm/mhpmcounterNh.layout +1 -1
  93. data/.data/spec/std/isa/csr/hstateen0h.yaml +1 -1
  94. data/.data/spec/std/isa/csr/hstateen1h.yaml +1 -1
  95. data/.data/spec/std/isa/csr/hstateen2h.yaml +1 -1
  96. data/.data/spec/std/isa/csr/hstateen3h.yaml +1 -1
  97. data/.data/spec/std/isa/csr/hstatus.yaml +1 -1
  98. data/.data/spec/std/isa/csr/instreth.yaml +1 -3
  99. data/.data/spec/std/isa/csr/mcycle.yaml +6 -6
  100. data/.data/spec/std/isa/csr/minstret.yaml +3 -3
  101. data/.data/spec/std/isa/csr/minstreth.yaml +2 -2
  102. data/.data/spec/std/isa/csr/mstatus.yaml +14 -20
  103. data/.data/spec/std/isa/csr/mstatush.yaml +1 -1
  104. data/.data/spec/std/isa/csr/mtvec.yaml +16 -57
  105. data/.data/spec/std/isa/csr/senvcfg.yaml +1 -1
  106. data/.data/spec/std/isa/csr/sepc.yaml +4 -3
  107. data/.data/spec/std/isa/csr/sie.yaml +30 -4
  108. data/.data/spec/std/isa/csr/sip.yaml +17 -3
  109. data/.data/spec/std/isa/csr/sscratch.yaml +3 -2
  110. data/.data/spec/std/isa/csr/stval.yaml +3 -2
  111. data/.data/spec/std/isa/csr/stvec.yaml +14 -14
  112. data/.data/spec/std/isa/csr/time.yaml +1 -1
  113. data/.data/spec/std/isa/csr/timeh.yaml +1 -1
  114. data/.data/spec/std/isa/csr/vsepc.yaml +6 -5
  115. data/.data/spec/std/isa/csr/vstval.yaml +1 -1
  116. data/.data/spec/std/isa/csr/vstvec.yaml +17 -17
  117. data/.data/spec/std/isa/ext/M.yaml +4 -0
  118. data/.data/spec/std/isa/ext/Q.yaml +1 -1
  119. data/.data/spec/std/isa/ext/Shgatpa.yaml +1 -0
  120. data/.data/spec/std/isa/ext/Shlcofideleg.yaml +24 -0
  121. data/.data/spec/std/isa/ext/Shvstvecd.yaml +2 -2
  122. data/.data/spec/std/isa/ext/Sspm.yaml +5 -0
  123. data/.data/spec/std/isa/ext/Sstvecd.yaml +2 -2
  124. data/.data/spec/std/isa/ext/Sstvecv.yaml +2 -2
  125. data/.data/spec/std/isa/ext/Supm.yaml +17 -0
  126. data/.data/spec/std/isa/ext/Zcb.yaml +3 -0
  127. data/.data/spec/std/isa/ext/Zfbfmin.yaml +3 -5
  128. data/.data/spec/std/isa/ext/Zibi.yaml +29 -0
  129. data/.data/spec/std/isa/ext/Ziccid.yaml +29 -0
  130. data/.data/spec/std/isa/ext/Zicfilp.yaml +5 -1
  131. data/.data/spec/std/isa/ext/Zicfiss.yaml +20 -1
  132. data/.data/spec/std/isa/ext/Zihpm.yaml +3 -0
  133. data/.data/spec/std/isa/ext/Zilx.yaml +58 -0
  134. data/.data/spec/std/isa/ext/Zkt.yaml +33 -1
  135. data/.data/spec/std/isa/ext/Zvabd.yaml +21 -0
  136. data/.data/spec/std/isa/ext/Zvbc.yaml +3 -0
  137. data/.data/spec/std/isa/ext/Zvkb.yaml +3 -0
  138. data/.data/spec/std/isa/ext/Zvkg.yaml +3 -0
  139. data/.data/spec/std/isa/ext/Zvkned.yaml +3 -0
  140. data/.data/spec/std/isa/ext/Zvknha.yaml +3 -0
  141. data/.data/spec/std/isa/ext/Zvknhb.yaml +4 -2
  142. data/.data/spec/std/isa/ext/Zvksed.yaml +3 -0
  143. data/.data/spec/std/isa/ext/Zvksh.yaml +3 -0
  144. data/.data/spec/std/isa/ext/Zvkt.yaml +3 -0
  145. data/.data/spec/std/isa/inst/B/roriw.yaml +1 -1
  146. data/.data/spec/std/isa/inst/B/rorw.yaml +1 -1
  147. data/.data/spec/std/isa/inst/C/c.add.yaml +1 -0
  148. data/.data/spec/std/isa/inst/C/c.addi.yaml +1 -0
  149. data/.data/spec/std/isa/inst/C/c.addiw.yaml +1 -0
  150. data/.data/spec/std/isa/inst/C/c.addw.yaml +1 -0
  151. data/.data/spec/std/isa/inst/C/c.and.yaml +1 -0
  152. data/.data/spec/std/isa/inst/C/c.andi.yaml +1 -0
  153. data/.data/spec/std/isa/inst/C/c.lui.yaml +1 -0
  154. data/.data/spec/std/isa/inst/C/c.mv.yaml +1 -0
  155. data/.data/spec/std/isa/inst/C/c.nop.yaml +13 -2
  156. data/.data/spec/std/isa/inst/C/c.or.yaml +1 -0
  157. data/.data/spec/std/isa/inst/C/c.slli.yaml +1 -0
  158. data/.data/spec/std/isa/inst/C/c.srai.yaml +1 -0
  159. data/.data/spec/std/isa/inst/C/c.srli.yaml +1 -0
  160. data/.data/spec/std/isa/inst/C/c.sub.yaml +1 -0
  161. data/.data/spec/std/isa/inst/C/c.subw.yaml +1 -0
  162. data/.data/spec/std/isa/inst/C/c.xor.yaml +1 -0
  163. data/.data/spec/std/isa/inst/D/fld.yaml +1 -0
  164. data/.data/spec/std/isa/inst/D/fsd.yaml +1 -0
  165. data/.data/spec/std/isa/inst/F/fadd.s.yaml +1 -1
  166. data/.data/spec/std/isa/inst/F/fcvt.l.s.yaml +1 -1
  167. data/.data/spec/std/isa/inst/F/fcvt.lu.s.yaml +1 -1
  168. data/.data/spec/std/isa/inst/F/fcvt.s.l.yaml +1 -1
  169. data/.data/spec/std/isa/inst/F/fcvt.s.lu.yaml +1 -1
  170. data/.data/spec/std/isa/inst/F/fcvt.s.wu.yaml +1 -1
  171. data/.data/spec/std/isa/inst/F/fcvt.w.s.yaml +1 -1
  172. data/.data/spec/std/isa/inst/F/fcvt.wu.s.yaml +1 -1
  173. data/.data/spec/std/isa/inst/F/fdiv.s.yaml +1 -1
  174. data/.data/spec/std/isa/inst/F/feq.s.yaml +1 -1
  175. data/.data/spec/std/isa/inst/F/fle.s.yaml +1 -1
  176. data/.data/spec/std/isa/inst/F/flt.s.yaml +1 -1
  177. data/.data/spec/std/isa/inst/F/flw.yaml +2 -1
  178. data/.data/spec/std/isa/inst/F/fmadd.s.yaml +1 -1
  179. data/.data/spec/std/isa/inst/F/fmax.s.yaml +1 -1
  180. data/.data/spec/std/isa/inst/F/fmin.s.yaml +1 -1
  181. data/.data/spec/std/isa/inst/F/fmsub.s.yaml +1 -1
  182. data/.data/spec/std/isa/inst/F/fmul.s.yaml +1 -1
  183. data/.data/spec/std/isa/inst/F/fmv.w.x.yaml +4 -1
  184. data/.data/spec/std/isa/inst/F/fmv.x.w.yaml +4 -1
  185. data/.data/spec/std/isa/inst/F/fnmadd.s.yaml +1 -1
  186. data/.data/spec/std/isa/inst/F/fnmsub.s.yaml +1 -1
  187. data/.data/spec/std/isa/inst/F/fsgnj.s.yaml +1 -1
  188. data/.data/spec/std/isa/inst/F/fsgnjn.s.yaml +1 -1
  189. data/.data/spec/std/isa/inst/F/fsgnjx.s.yaml +1 -1
  190. data/.data/spec/std/isa/inst/F/fsqrt.s.yaml +1 -1
  191. data/.data/spec/std/isa/inst/F/fsub.s.yaml +1 -1
  192. data/.data/spec/std/isa/inst/F/fsw.yaml +2 -1
  193. data/.data/spec/std/isa/inst/I/sd.yaml +1 -1
  194. data/.data/spec/std/isa/inst/M/mul.yaml +1 -3
  195. data/.data/spec/std/isa/inst/M/mulh.yaml +1 -3
  196. data/.data/spec/std/isa/inst/M/mulhsu.yaml +1 -3
  197. data/.data/spec/std/isa/inst/M/mulhu.yaml +1 -3
  198. data/.data/spec/std/isa/inst/M/mulw.yaml +1 -3
  199. data/.data/spec/std/isa/inst/Q/fadd.q.yaml +2 -2
  200. data/.data/spec/std/isa/inst/Q/fclass.q.yaml +5 -5
  201. data/.data/spec/std/isa/inst/Q/flq.yaml +1 -0
  202. data/.data/spec/std/isa/inst/Q/fsq.yaml +1 -0
  203. data/.data/spec/std/isa/inst/V/vmv.v.i.yaml +1 -0
  204. data/.data/spec/std/isa/inst/Zbb/ctzw.yaml +6 -1
  205. data/.data/spec/std/isa/inst/Zcb/c.mul.yaml +1 -0
  206. data/.data/spec/std/isa/inst/Zcb/c.not.yaml +1 -0
  207. data/.data/spec/std/isa/inst/Zcb/c.zext.b.yaml +2 -7
  208. data/.data/spec/std/isa/inst/Zcb/c.zext.w.yaml +1 -1
  209. data/.data/spec/std/isa/inst/Zcmop/c.mop.1.yaml +2 -0
  210. data/.data/spec/std/isa/inst/Zcmop/c.mop.5.yaml +2 -0
  211. data/.data/spec/std/isa/inst/Zcmop/c.mop.N.layout +7 -0
  212. data/.data/spec/std/isa/inst/{Q → Zfa}/fleq.q.yaml +0 -1
  213. data/.data/spec/std/isa/inst/{F → Zfa}/fleq.s.yaml +1 -1
  214. data/.data/spec/std/isa/inst/{Q → Zfa}/fli.q.yaml +1 -1
  215. data/.data/spec/std/isa/inst/Zfa/fli.s.yaml +1 -1
  216. data/.data/spec/std/isa/inst/{Q → Zfa}/fltq.q.yaml +2 -3
  217. data/.data/spec/std/isa/inst/{F → Zfa}/fltq.s.yaml +1 -1
  218. data/.data/spec/std/isa/inst/{Q → Zfa}/fmaxm.q.yaml +0 -1
  219. data/.data/spec/std/isa/inst/Zfa/fmaxm.s.yaml +1 -1
  220. data/.data/spec/std/isa/inst/{Q → Zfa}/fminm.q.yaml +0 -1
  221. data/.data/spec/std/isa/inst/Zfa/fminm.s.yaml +1 -1
  222. data/.data/spec/std/isa/inst/{Q → Zfa}/fmvp.q.x.yaml +1 -1
  223. data/.data/spec/std/isa/inst/Zfa/fround.s.yaml +1 -1
  224. data/.data/spec/std/isa/inst/Zfa/froundnx.s.yaml +1 -1
  225. data/.data/spec/std/isa/inst/Zfh/flh.yaml +5 -2
  226. data/.data/spec/std/isa/inst/Zfh/fmv.h.x.yaml +3 -1
  227. data/.data/spec/std/isa/inst/Zfh/fmv.x.h.yaml +3 -1
  228. data/.data/spec/std/isa/inst/Zfh/fsh.yaml +4 -1
  229. data/.data/spec/std/isa/inst/Zibi/beqi.yaml +45 -0
  230. data/.data/spec/std/isa/inst/Zibi/bnei.yaml +45 -0
  231. data/.data/spec/std/isa/inst/Zicbom/cbo.inval.yaml +1 -1
  232. data/.data/spec/std/isa/inst/Zicfiss/c.sspopchk.yaml +30 -0
  233. data/.data/spec/std/isa/inst/Zicfiss/c.sspush.yaml +29 -0
  234. data/.data/spec/std/isa/inst/Zicfiss/ssamoswap.d.yaml +1 -1
  235. data/.data/spec/std/isa/inst/Zicfiss/ssamoswap.w.yaml +1 -1
  236. data/.data/spec/std/isa/inst/Zicfiss/sspopchk.yaml +63 -0
  237. data/.data/spec/std/isa/inst/Zicfiss/sspush.yaml +63 -0
  238. data/.data/spec/std/isa/inst/Zicond/czero.eqz.yaml +1 -1
  239. data/.data/spec/std/isa/inst/Zicond/czero.nez.yaml +1 -1
  240. data/.data/spec/std/isa/inst/Zicsr/csrrw.yaml +12 -0
  241. data/.data/spec/std/isa/inst/Zilx/lxd.yaml +38 -0
  242. data/.data/spec/std/isa/inst/Zilx/lxh.yaml +35 -0
  243. data/.data/spec/std/isa/inst/Zilx/lxhu.yaml +35 -0
  244. data/.data/spec/std/isa/inst/Zilx/lxsb.yaml +40 -0
  245. data/.data/spec/std/isa/inst/Zilx/lxsbu.yaml +40 -0
  246. data/.data/spec/std/isa/inst/Zilx/lxsd.yaml +38 -0
  247. data/.data/spec/std/isa/inst/Zilx/lxsh.yaml +35 -0
  248. data/.data/spec/std/isa/inst/Zilx/lxshu.yaml +35 -0
  249. data/.data/spec/std/isa/inst/Zilx/lxsuwb.yaml +40 -0
  250. data/.data/spec/std/isa/inst/Zilx/lxsuwbu.yaml +40 -0
  251. data/.data/spec/std/isa/inst/Zilx/lxsuwd.yaml +39 -0
  252. data/.data/spec/std/isa/inst/Zilx/lxsuwh.yaml +40 -0
  253. data/.data/spec/std/isa/inst/Zilx/lxsuwhu.yaml +40 -0
  254. data/.data/spec/std/isa/inst/Zilx/lxsuww.yaml +40 -0
  255. data/.data/spec/std/isa/inst/Zilx/lxsuwwu.yaml +40 -0
  256. data/.data/spec/std/isa/inst/Zilx/lxsw.yaml +35 -0
  257. data/.data/spec/std/isa/inst/Zilx/lxswu.yaml +39 -0
  258. data/.data/spec/std/isa/inst/Zilx/lxw.yaml +35 -0
  259. data/.data/spec/std/isa/inst/Zilx/lxwu.yaml +39 -0
  260. data/.data/spec/std/isa/inst/Zimop/mop.r.28.yaml +1 -2
  261. data/.data/spec/std/isa/inst/Zimop/mop.r.N.layout +1 -2
  262. data/.data/spec/std/isa/inst/Zimop/mop.rr.7.yaml +1 -2
  263. data/.data/spec/std/isa/inst/Zimop/mop.rr.N.layout +1 -2
  264. data/.data/spec/std/isa/inst/Zvabd/vabd.vv.yaml +67 -0
  265. data/.data/spec/std/isa/inst/Zvabd/vabdu.vv.yaml +67 -0
  266. data/.data/spec/std/isa/inst/Zvabd/vabs.v.yaml +61 -0
  267. data/.data/spec/std/isa/inst/Zvabd/vwabda.vv.yaml +72 -0
  268. data/.data/spec/std/isa/inst/Zvabd/vwabdau.vv.yaml +72 -0
  269. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vandn.vv.yaml +1 -1
  270. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vandn.vx.yaml +1 -1
  271. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vbrev8.v.yaml +1 -1
  272. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vrev8.v.yaml +1 -1
  273. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vrol.vv.yaml +1 -1
  274. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vrol.vx.yaml +1 -1
  275. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vror.vi.yaml +1 -1
  276. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vror.vv.yaml +1 -1
  277. data/.data/spec/std/isa/inst/{Zvbb → Zvkb}/vror.vx.yaml +1 -1
  278. data/.data/spec/std/isa/isa/fp.idl +42 -18
  279. data/.data/spec/std/isa/isa/globals.isa +1 -1
  280. data/.data/spec/std/isa/isa/util.idl +3 -3
  281. data/.data/spec/std/isa/param/CACHE_BLOCK_SIZE.yaml +70 -6
  282. data/.data/spec/std/isa/param/COUNTINHIBIT_EN.yaml +9 -0
  283. data/.data/spec/std/isa/param/ELEN.yaml +27 -5
  284. data/.data/spec/std/isa/param/HCONTEXT_AVAILABLE.yaml +1 -1
  285. data/.data/spec/std/isa/param/HCOUNTENABLE_EN.yaml +13 -0
  286. data/.data/spec/std/isa/param/HPM_COUNTER_EN.yaml +13 -3
  287. data/.data/spec/std/isa/param/HPM_EVENTS.yaml +0 -3
  288. data/.data/spec/std/isa/param/MCOUNTENABLE_EN.yaml +8 -0
  289. data/.data/spec/std/isa/param/MTVEC_BASE_ALIGNMENT_DIRECT.yaml +71 -65
  290. data/.data/spec/std/isa/param/MTVEC_BASE_ALIGNMENT_VECTORED.yaml +71 -65
  291. data/.data/spec/std/isa/param/MUTABLE_MISA_H.yaml +1 -1
  292. data/.data/spec/std/isa/param/MUTABLE_MISA_S.yaml +1 -1
  293. data/.data/spec/std/isa/param/STVAL_WIDTH.yaml +3 -2
  294. data/.data/spec/std/isa/param/STVEC_BASE_ALIGNMENT_VECTORED.yaml +100 -0
  295. data/.data/spec/std/isa/param/STVEC_MODES.yaml +31 -0
  296. data/.data/spec/std/isa/param/SV32_VSMODE_TRANSLATION.yaml +1 -1
  297. data/.data/spec/std/isa/param/SXLEN.yaml +2 -2
  298. data/.data/spec/std/isa/param/TINST_VALUE_ON_FINAL_INSTRUCTION_GUEST_PAGE_FAULT.yaml +1 -1
  299. data/.data/spec/std/isa/param/TINST_VALUE_ON_FINAL_LOAD_GUEST_PAGE_FAULT.yaml +1 -1
  300. data/.data/spec/std/isa/param/TINST_VALUE_ON_FINAL_STORE_AMO_GUEST_PAGE_FAULT.yaml +1 -1
  301. data/.data/spec/std/isa/param/TINST_VALUE_ON_LOAD_ADDRESS_MISALIGNED.yaml +1 -1
  302. data/.data/spec/std/isa/param/TINST_VALUE_ON_STORE_AMO_ADDRESS_MISALIGNED.yaml +1 -1
  303. data/.data/spec/std/isa/param/UXLEN.yaml +1 -1
  304. data/.data/spec/std/isa/param/VLEN.yaml +16 -7
  305. data/.data/spec/std/isa/param/VSTVEC_MODES.yaml +31 -0
  306. data/lib/udb/Z3_VERSION +1 -1
  307. data/lib/udb/config.rb +1 -1
  308. data/lib/udb/obj/csr.rb +1 -1
  309. data/lib/udb/obj/csr_field.rb +1 -1
  310. data/lib/udb/obj/extension.rb +1 -1
  311. data/lib/udb/version.rb +1 -1
  312. data/lib/udb/version_spec.rb +1 -1
  313. data/lib/udb/z3.rb +29 -7
  314. metadata +80 -50
  315. data/.data/spec/std/isa/inst/Zicfiss/sspopchk.x1.yaml +0 -25
  316. data/.data/spec/std/isa/inst/Zicfiss/sspopchk.x5.yaml +0 -25
  317. data/.data/spec/std/isa/inst/Zicfiss/sspush.x1.yaml +0 -25
  318. data/.data/spec/std/isa/inst/Zicfiss/sspush.x5.yaml +0 -25
  319. data/.data/spec/std/isa/param/STVEC_MODE_DIRECT.yaml +0 -21
  320. data/.data/spec/std/isa/param/STVEC_MODE_VECTORED.yaml +0 -19
  321. data/.data/spec/std/isa/param/VSTVEC_MODE_DIRECT.yaml +0 -21
  322. data/.data/spec/std/isa/param/VSTVEC_MODE_VECTORED.yaml +0 -21
  323. /data/.data/spec/std/isa/inst/{Smdbltrp → Smctr}/sctrclr.yaml +0 -0
  324. /data/.data/spec/std/isa/inst/{D → Zfa}/fcvtmod.w.d.yaml +0 -0
  325. /data/.data/spec/std/isa/inst/{D → Zfa}/fleq.d.yaml +0 -0
  326. /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fleq.h.yaml +0 -0
  327. /data/.data/spec/std/isa/inst/{D → Zfa}/fli.d.yaml +0 -0
  328. /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fli.h.yaml +0 -0
  329. /data/.data/spec/std/isa/inst/{D → Zfa}/fltq.d.yaml +0 -0
  330. /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fltq.h.yaml +0 -0
  331. /data/.data/spec/std/isa/inst/{D → Zfa}/fmaxm.d.yaml +0 -0
  332. /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fmaxm.h.yaml +0 -0
  333. /data/.data/spec/std/isa/inst/{D → Zfa}/fminm.d.yaml +0 -0
  334. /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fminm.h.yaml +0 -0
  335. /data/.data/spec/std/isa/inst/{D → Zfa}/fmvh.x.d.yaml +0 -0
  336. /data/.data/spec/std/isa/inst/{Q → Zfa}/fmvh.x.q.yaml +0 -0
  337. /data/.data/spec/std/isa/inst/{D → Zfa}/fmvp.d.x.yaml +0 -0
  338. /data/.data/spec/std/isa/inst/{D → Zfa}/fround.d.yaml +0 -0
  339. /data/.data/spec/std/isa/inst/{Zfh → Zfa}/fround.h.yaml +0 -0
  340. /data/.data/spec/std/isa/inst/{Q → Zfa}/fround.q.yaml +0 -0
  341. /data/.data/spec/std/isa/inst/{D → Zfa}/froundnx.d.yaml +0 -0
  342. /data/.data/spec/std/isa/inst/{Zfh → Zfa}/froundnx.h.yaml +0 -0
  343. /data/.data/spec/std/isa/inst/{Q → Zfa}/froundnx.q.yaml +0 -0
@@ -25,6 +25,15 @@ schema:
25
25
  type: boolean
26
26
  maxItems: 32
27
27
  minItems: 32
28
+
29
+ requirements:
30
+ idl(): |
31
+ for (U32 i = 3; i < 32; i++) {
32
+ (!HPM_COUNTER_EN[i]) -> !COUNTINHIBIT_EN[i];
33
+ }
34
+ reason: |
35
+ When mhpmcounter[i] is not implemented, it cannot be inhibited.
36
+
28
37
  definedBy:
29
38
  allOf:
30
39
  - extension:
@@ -8,13 +8,35 @@ kind: parameter
8
8
  name: ELEN
9
9
  description: |
10
10
  The maximum size in bits of a vector element that any operation can produce or consume.
11
- long_name: TODO
11
+ long_name: maximum vector element bit width
12
12
  schema:
13
+ description: |
14
+ An unsigned power of 2 that is at least 8. The ISA states no maximum; the
15
+ absolute upper bound is (max VLEN) * (#VRs) = 64Ki * 32 = 2Mi, since an
16
+ element cannot exceed the total vector register state.
13
17
  type: integer
14
- # requirements:
15
- # idl(): |
16
- # -> (ELEN >='h8) && (popcount(ELEN) == 1);
17
- # reason: ELEN >= 8, which must be a power of 2.
18
+ enum:
19
+ [
20
+ 0x8,
21
+ 0x10,
22
+ 0x20,
23
+ 0x40,
24
+ 0x80,
25
+ 0x100,
26
+ 0x200,
27
+ 0x400,
28
+ 0x800,
29
+ 0x1000,
30
+ 0x2000,
31
+ 0x4000,
32
+ 0x8000,
33
+ 0x10000,
34
+ 0x20000,
35
+ 0x40000,
36
+ 0x80000,
37
+ 0x100000,
38
+ 0x200000,
39
+ ]
18
40
  definedBy:
19
41
  extension:
20
42
  name: Zvl32b
@@ -8,7 +8,7 @@ kind: parameter
8
8
  name: HCONTEXT_AVAILABLE
9
9
  description: |
10
10
  Specifies if HCONTEXT is available
11
- long_name: TODO
11
+ long_name: HCONTEXT Availability
12
12
  schema:
13
13
  type: boolean
14
14
  definedBy:
@@ -25,3 +25,16 @@ schema:
25
25
  definedBy:
26
26
  extension:
27
27
  name: H
28
+ requirements:
29
+ idl(): |
30
+ for (U32 i = 0; i < 3; i++) {
31
+ !implemented?(ExtensionName::Zicntr) -> !HCOUNTENABLE_EN[i];
32
+ }
33
+ for (U32 i = 3; i < 32; i++) {
34
+ !implemented?(ExtensionName::Zihpm) -> !HCOUNTENABLE_EN[i];
35
+ (!HPM_COUNTER_EN[i]) -> !HCOUNTENABLE_EN[i];
36
+ }
37
+ reason: |
38
+ Counters 0-2 are defined by Zicntr
39
+ Counters 3..31 are defined by Zihpm
40
+ When mhpmcounter[i] is not implemented, it cannot be enabled.
@@ -7,10 +7,20 @@ $schema: param_schema.json#
7
7
  kind: parameter
8
8
  name: HPM_COUNTER_EN
9
9
  description: |
10
- List of HPM counters that are enabled.
11
- There is one entry for each hpmcounter.
10
+ Whether each HPM counter is implemented in hardware.
12
11
 
13
- The first three entries *must* be false (as they correspond to CY, IR, TM in, _e.g._ `mhmpcountinhibit`)
12
+ `HPM_COUNTER_EN[n]` being `false` means `hpmcounter<n>`/`mhpmcounter<n>` and the
13
+ corresponding `mhpmevent<n>` are not implemented and are hardwired read-only zero.
14
+ (It does *not* mean the counter is implemented but currently stopped from counting;
15
+ that is a separate, run-time concept controlled by `mcountinhibit`.)
16
+
17
+ There is one entry for each hpmcounter, indexed 0-31.
18
+
19
+ Indices 0-2 *must* be false: they are placeholders for the three counters
20
+ (`cycle`/`mcycle` (CY), `time` (TM), and `instret`/`minstret` (IR)) whose
21
+ implementation this parameter does not control. These counters are associated
22
+ with indexes 0, 1, and 2. The rest of the HPM counters logically follow at
23
+ indexes 3-31.
14
24
  Index 3 in HPM_COUNTER_EN corresponds to mhpmcounter3.
15
25
  Index 31 in HPM_COUNTER_EN corresponds to mhpmcounter31.
16
26
  long_name: TODO
@@ -28,9 +28,6 @@ definedBy:
28
28
  - name: HPM_COUNTER_EN
29
29
  index: 4
30
30
  equal: true
31
- - name: HPM_COUNTER_EN
32
- index: 4
33
- equal: true
34
31
  - name: HPM_COUNTER_EN
35
32
  index: 5
36
33
  equal: true
@@ -27,6 +27,14 @@ definedBy:
27
27
  name: Sm
28
28
  requirements:
29
29
  idl(): |
30
+ for (U32 i = 0; i < 3; i++) {
31
+ !implemented?(ExtensionName::Zicntr) -> !MCOUNTENABLE_EN[i];
32
+ }
30
33
  for (U32 i=3; i < 32; i++) {
34
+ !implemented?(ExtensionName::Zihpm) -> !MCOUNTENABLE_EN[i];
31
35
  MCOUNTENABLE_EN[i] -> HPM_COUNTER_EN[i];
32
36
  }
37
+ reason: |
38
+ Counters 0-2 are defined by Zicntr
39
+ Counters 3..31 are defined by Zihpm
40
+ When mhpmcounter[i] is not implemented, it cannot be enabled.
@@ -25,73 +25,79 @@ description: |
25
25
  the base, the minimum alignment cannot be less than 4.
26
26
  schema:
27
27
  description: An unsigned power of 2 greater than or equal to 4 that fits in 64 bits
28
- default: 4
28
+ default: 0x4
29
29
  enum:
30
30
  [
31
- 4,
32
- 8,
33
- 16,
34
- 32,
35
- 64,
36
- 128,
37
- 256,
38
- 512,
39
- 1024,
40
- 2048,
41
- 4095,
42
- 8192,
43
- 16384,
44
- 32768,
45
- 65536,
46
- 131072,
47
- 262144,
48
- 524288,
49
- 1048576,
50
- 2097152,
51
- 4194304,
52
- 8388608,
53
- 16777216,
54
- 33554432,
55
- 67108864,
56
- 134217728,
57
- 268435456,
58
- 536870912,
59
- 1073741824,
60
- 2147483648,
61
- 4294967296,
62
- 8589934592,
63
- 17179869184,
64
- 34359738368,
65
- 68719476736,
66
- 137438953472,
67
- 274877906944,
68
- 549755813888,
69
- 1099511627776,
70
- 2199023255552,
71
- 4398046511104,
72
- 8796093022208,
73
- 17592186044416,
74
- 35184372088832,
75
- 70368744177664,
76
- 140737488355328,
77
- 281474976710656,
78
- 562949953421312,
79
- 1125899906842624,
80
- 2251799813685248,
81
- 4503599627370496,
82
- 9007199254740992,
83
- 18014398509481984,
84
- 36028797018963968,
85
- 72057594037927936,
86
- 144115188075855872,
87
- 288230376151711744,
88
- 576460752303423488,
89
- 1152921504606846976,
90
- 2305843009213693952,
91
- 4611686018427387904,
92
- 9223372036854775808,
31
+ 0x4,
32
+ 0x8,
33
+ 0x10,
34
+ 0x20,
35
+ 0x40,
36
+ 0x80,
37
+ 0x100,
38
+ 0x200,
39
+ 0x400,
40
+ 0x800,
41
+ 0x1000,
42
+ 0x2000,
43
+ 0x4000,
44
+ 0x8000,
45
+ 0x10000,
46
+ 0x20000,
47
+ 0x40000,
48
+ 0x80000,
49
+ 0x100000,
50
+ 0x200000,
51
+ 0x400000,
52
+ 0x800000,
53
+ 0x1000000,
54
+ 0x2000000,
55
+ 0x4000000,
56
+ 0x8000000,
57
+ 0x10000000,
58
+ 0x20000000,
59
+ 0x40000000,
60
+ 0x80000000,
61
+ 0x100000000,
62
+ 0x200000000,
63
+ 0x400000000,
64
+ 0x800000000,
65
+ 0x1000000000,
66
+ 0x2000000000,
67
+ 0x4000000000,
68
+ 0x8000000000,
69
+ 0x10000000000,
70
+ 0x20000000000,
71
+ 0x40000000000,
72
+ 0x80000000000,
73
+ 0x100000000000,
74
+ 0x200000000000,
75
+ 0x400000000000,
76
+ 0x800000000000,
77
+ 0x1000000000000,
78
+ 0x2000000000000,
79
+ 0x4000000000000,
80
+ 0x8000000000000,
81
+ 0x10000000000000,
82
+ 0x20000000000000,
83
+ 0x40000000000000,
84
+ 0x80000000000000,
85
+ 0x100000000000000,
86
+ 0x200000000000000,
87
+ 0x400000000000000,
88
+ 0x800000000000000,
89
+ 0x1000000000000000,
90
+ 0x2000000000000000,
91
+ 0x4000000000000000,
92
+ 0x8000000000000000,
93
93
  ]
94
94
 
95
95
  requirements:
96
- idl(): |
97
- (MXLEN == 32) -> MTVEC_BASE_ALIGNMENT_DIRECT <= 2147483648;
96
+ if:
97
+ param:
98
+ name: MXLEN
99
+ equal: 32
100
+ then:
101
+ param:
102
+ name: MTVEC_BASE_ALIGNMENT_DIRECT
103
+ lessThanOrEqual: 0x80000000
@@ -25,73 +25,79 @@ description: |
25
25
  the base, the minimum alignment cannot be less than 4.
26
26
  schema:
27
27
  description: An unsigned power of 2 greater than or equal to 4 that fits in 64 bits
28
- default: 4
28
+ default: 0x4
29
29
  enum:
30
30
  [
31
- 4,
32
- 8,
33
- 16,
34
- 32,
35
- 64,
36
- 128,
37
- 256,
38
- 512,
39
- 1024,
40
- 2048,
41
- 4095,
42
- 8192,
43
- 16384,
44
- 32768,
45
- 65536,
46
- 131072,
47
- 262144,
48
- 524288,
49
- 1048576,
50
- 2097152,
51
- 4194304,
52
- 8388608,
53
- 16777216,
54
- 33554432,
55
- 67108864,
56
- 134217728,
57
- 268435456,
58
- 536870912,
59
- 1073741824,
60
- 2147483648,
61
- 4294967296,
62
- 8589934592,
63
- 17179869184,
64
- 34359738368,
65
- 68719476736,
66
- 137438953472,
67
- 274877906944,
68
- 549755813888,
69
- 1099511627776,
70
- 2199023255552,
71
- 4398046511104,
72
- 8796093022208,
73
- 17592186044416,
74
- 35184372088832,
75
- 70368744177664,
76
- 140737488355328,
77
- 281474976710656,
78
- 562949953421312,
79
- 1125899906842624,
80
- 2251799813685248,
81
- 4503599627370496,
82
- 9007199254740992,
83
- 18014398509481984,
84
- 36028797018963968,
85
- 72057594037927936,
86
- 144115188075855872,
87
- 288230376151711744,
88
- 576460752303423488,
89
- 1152921504606846976,
90
- 2305843009213693952,
91
- 4611686018427387904,
92
- 9223372036854775808,
31
+ 0x4,
32
+ 0x8,
33
+ 0x10,
34
+ 0x20,
35
+ 0x40,
36
+ 0x80,
37
+ 0x100,
38
+ 0x200,
39
+ 0x400,
40
+ 0x800,
41
+ 0x1000,
42
+ 0x2000,
43
+ 0x4000,
44
+ 0x8000,
45
+ 0x10000,
46
+ 0x20000,
47
+ 0x40000,
48
+ 0x80000,
49
+ 0x100000,
50
+ 0x200000,
51
+ 0x400000,
52
+ 0x800000,
53
+ 0x1000000,
54
+ 0x2000000,
55
+ 0x4000000,
56
+ 0x8000000,
57
+ 0x10000000,
58
+ 0x20000000,
59
+ 0x40000000,
60
+ 0x80000000,
61
+ 0x100000000,
62
+ 0x200000000,
63
+ 0x400000000,
64
+ 0x800000000,
65
+ 0x1000000000,
66
+ 0x2000000000,
67
+ 0x4000000000,
68
+ 0x8000000000,
69
+ 0x10000000000,
70
+ 0x20000000000,
71
+ 0x40000000000,
72
+ 0x80000000000,
73
+ 0x100000000000,
74
+ 0x200000000000,
75
+ 0x400000000000,
76
+ 0x800000000000,
77
+ 0x1000000000000,
78
+ 0x2000000000000,
79
+ 0x4000000000000,
80
+ 0x8000000000000,
81
+ 0x10000000000000,
82
+ 0x20000000000000,
83
+ 0x40000000000000,
84
+ 0x80000000000000,
85
+ 0x100000000000000,
86
+ 0x200000000000000,
87
+ 0x400000000000000,
88
+ 0x800000000000000,
89
+ 0x1000000000000000,
90
+ 0x2000000000000000,
91
+ 0x4000000000000000,
92
+ 0x8000000000000000,
93
93
  ]
94
94
 
95
95
  requirements:
96
- idl(): |
97
- (MXLEN == 32) -> MTVEC_BASE_ALIGNMENT_VECTORED <= 2147483648;
96
+ if:
97
+ param:
98
+ name: MXLEN
99
+ equal: 32
100
+ then:
101
+ param:
102
+ name: MTVEC_BASE_ALIGNMENT_VECTORED
103
+ lessThanOrEqual: 0x80000000
@@ -11,7 +11,7 @@ description:
11
11
  `misa.H` bit.
12
12
 
13
13
  "
14
- long_name: TODO
14
+ long_name: "`misa.H` mutability"
15
15
  schema:
16
16
  type: boolean
17
17
  requirements:
@@ -11,7 +11,7 @@ description:
11
11
  `misa.S` bit.
12
12
 
13
13
  "
14
- long_name: TODO
14
+ long_name: "`misa.S` mutability"
15
15
  schema:
16
16
  type: boolean
17
17
  requirements:
@@ -10,10 +10,11 @@ description: |
10
10
  The number of implemented bits in `stval`.
11
11
 
12
12
  Must be greater than or equal to _max_(`PHYS_ADDR_WIDTH`, `VA_SIZE`)
13
- long_name: TODO
13
+ long_name: "`stval` implemented bits"
14
14
  schema:
15
15
  type: integer
16
- maximum: 18446744073709551615
16
+ minimum: 0
17
+ maximum: 64
17
18
  definedBy:
18
19
  extension:
19
20
  name: S
@@ -0,0 +1,100 @@
1
+ # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+
4
+ # yaml-language-server: $schema=../../../schemas/param_schema.json
5
+
6
+ $schema: param_schema.json#
7
+ kind: parameter
8
+ name: STVEC_BASE_ALIGNMENT_VECTORED
9
+ long_name: |
10
+ Minimum alignment of `stvec.BASE` when `stvec.MODE` is 1 (Vectored)
11
+ definedBy:
12
+ allOf:
13
+ - extension:
14
+ name: S
15
+ - param:
16
+ name: STVEC_MODES
17
+ includes: 1
18
+ reason: Only relevant when vectored mode is supported
19
+ description: |
20
+ Minimum alignment of the base pointer when `stvec.MODE` is Vectored. Because
21
+ `stvec` excludes the two least-significant bits of the base, the minimum
22
+ alignment cannot be less than 4 bytes.
23
+ schema:
24
+ description: An unsigned power of 2 greater than or equal to 4 that fits in 64 bits
25
+ default: 0x4
26
+ enum:
27
+ [
28
+ 0x4,
29
+ 0x8,
30
+ 0x10,
31
+ 0x20,
32
+ 0x40,
33
+ 0x80,
34
+ 0x100,
35
+ 0x200,
36
+ 0x400,
37
+ 0x800,
38
+ 0x1000,
39
+ 0x2000,
40
+ 0x4000,
41
+ 0x8000,
42
+ 0x10000,
43
+ 0x20000,
44
+ 0x40000,
45
+ 0x80000,
46
+ 0x100000,
47
+ 0x200000,
48
+ 0x400000,
49
+ 0x800000,
50
+ 0x1000000,
51
+ 0x2000000,
52
+ 0x4000000,
53
+ 0x8000000,
54
+ 0x10000000,
55
+ 0x20000000,
56
+ 0x40000000,
57
+ 0x80000000,
58
+ 0x100000000,
59
+ 0x200000000,
60
+ 0x400000000,
61
+ 0x800000000,
62
+ 0x1000000000,
63
+ 0x2000000000,
64
+ 0x4000000000,
65
+ 0x8000000000,
66
+ 0x10000000000,
67
+ 0x20000000000,
68
+ 0x40000000000,
69
+ 0x80000000000,
70
+ 0x100000000000,
71
+ 0x200000000000,
72
+ 0x400000000000,
73
+ 0x800000000000,
74
+ 0x1000000000000,
75
+ 0x2000000000000,
76
+ 0x4000000000000,
77
+ 0x8000000000000,
78
+ 0x10000000000000,
79
+ 0x20000000000000,
80
+ 0x40000000000000,
81
+ 0x80000000000000,
82
+ 0x100000000000000,
83
+ 0x200000000000000,
84
+ 0x400000000000000,
85
+ 0x800000000000000,
86
+ 0x1000000000000000,
87
+ 0x2000000000000000,
88
+ 0x4000000000000000,
89
+ 0x8000000000000000,
90
+ ]
91
+
92
+ requirements:
93
+ if:
94
+ param:
95
+ name: SXLEN
96
+ includes: 32
97
+ then:
98
+ param:
99
+ name: STVEC_BASE_ALIGNMENT_VECTORED
100
+ lessThanOrEqual: 0x80000000
@@ -0,0 +1,31 @@
1
+ # Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2
+ # SPDX-License-Identifier: BSD-3-Clause-Clear
3
+
4
+ # yaml-language-server: $schema=../../../schemas/param_schema.json
5
+
6
+ $schema: param_schema.json#
7
+ kind: parameter
8
+ name: STVEC_MODES
9
+ long_name: |
10
+ Modes supported by `stvec.MODE`
11
+ definedBy:
12
+ extension:
13
+ name: S
14
+ description: |
15
+ Options:
16
+
17
+ 0::
18
+ Direct; All traps set `pc` to `stvec.BASE`
19
+ 1::
20
+ Vectored; Asynchronous interrupts set `pc` to `stvec.BASE` + 4 x cause.
21
+
22
+ If only one mode is given, `stvec.MODE` is assumed to be read-only with that value.
23
+ Otherwise, `stvec.MODE` is read-write.
24
+ schema:
25
+ type: array
26
+ items:
27
+ type: integer
28
+ enum: [0, 1]
29
+ minItems: 1
30
+ maxItems: 2
31
+ uniqueItems: true
@@ -16,7 +16,7 @@ requirements:
16
16
  idl(): |
17
17
  # at least one of Bare, Sv32 must be supported
18
18
  !VSSTAGE_MODE_BARE
19
- -> SV39_VSMODE_TRANSLATION;
19
+ -> SV32_VSMODE_TRANSLATION;
20
20
  reason: at least one of Bare, Sv32 must be supported
21
21
  definedBy:
22
22
  allOf:
@@ -9,8 +9,8 @@ name: SXLEN
9
9
  description: |
10
10
  Set of XLENs supported in S-mode. Can be one of:
11
11
 
12
- * 32: SXLEN is always 32
13
- * 64: SXLEN is always 64
12
+ * [32]: SXLEN is always 32
13
+ * [64]: SXLEN is always 64
14
14
  * [32, 64]: SXLEN can be changed (via mstatus.SXL) between 32 and 64
15
15
  long_name: TODO
16
16
  schema:
@@ -7,7 +7,7 @@ $schema: param_schema.json#
7
7
  kind: parameter
8
8
  name: TINST_VALUE_ON_FINAL_INSTRUCTION_GUEST_PAGE_FAULT
9
9
  description: |
10
- Value to write into htval/mtval2 when there is a guest page fault on a final translation.
10
+ Value written into htinst/mtinst when there is an instruction guest-page fault on a final translation.
11
11
 
12
12
  Possible values:
13
13
  * "always zero": Always write the value zero
@@ -7,7 +7,7 @@ $schema: param_schema.json#
7
7
  kind: parameter
8
8
  name: TINST_VALUE_ON_FINAL_LOAD_GUEST_PAGE_FAULT
9
9
  description: |
10
- Value to write into htval/mtval2 when there is a guest page fault on a final translation.
10
+ Value written into htinst/mtinst when there is a load guest-page fault on a final translation.
11
11
 
12
12
  Possible values:
13
13
  * "always zero": Always write the value zero
@@ -7,7 +7,7 @@ $schema: param_schema.json#
7
7
  kind: parameter
8
8
  name: TINST_VALUE_ON_FINAL_STORE_AMO_GUEST_PAGE_FAULT
9
9
  description: |
10
- Value to write into htval/mtval2 when there is a guest page fault on a final translation.
10
+ Value written into htinst/mtinst when there is a store/AMO guest-page fault on a final translation.
11
11
 
12
12
  Possible values:
13
13
  * "always zero": Always write the value zero
@@ -7,7 +7,7 @@ $schema: param_schema.json#
7
7
  kind: parameter
8
8
  name: TINST_VALUE_ON_LOAD_ADDRESS_MISALIGNED
9
9
  description: |
10
- Value written into htinst/mtinst on a VirtualInstruction exception from VU/VS-mode.
10
+ Value written into htinst/mtinst on a LoadAddressMisaligned exception from VU/VS-mode.
11
11
 
12
12
  Possible values:
13
13
  * "always zero": Always write the value zero
@@ -7,7 +7,7 @@ $schema: param_schema.json#
7
7
  kind: parameter
8
8
  name: TINST_VALUE_ON_STORE_AMO_ADDRESS_MISALIGNED
9
9
  description: |
10
- Value written into htinst/mtinst on a VirtualInstruction exception from VU/VS-mode.
10
+ Value written into htinst/mtinst on a StoreAmoAddressMisaligned exception from VU/VS-mode.
11
11
 
12
12
  Possible values:
13
13
  * "always zero": Always write the value zero
@@ -7,7 +7,7 @@ $schema: param_schema.json#
7
7
  kind: parameter
8
8
  name: UXLEN
9
9
  description: |
10
- Set of XLENs supported in U-mode. When both 32 and 64 are supported, SXLEN can be changed,
10
+ Set of XLENs supported in U-mode. When both 32 and 64 are supported, UXLEN can be changed,
11
11
  via mstatus.UXL, between 32 and 64.
12
12
  long_name: TODO
13
13
  schema: