VSb: BaseRM[7]
VLI: BaseRM[21]
+ def specifiers(self, record):
+ yield {
+ (0b0, 0b0): "vs",
+ (0b0, 0b1): "vsi",
+ (0b1, 0b0): "vsb",
+ (0b1, 0b1): "vsbi",
+ }[int(self.VSb), int(self.VLI)]
+
+ yield from super().specifiers(record=record)
+
class BranchCTRRM(BranchBaseRM):
"""branch: CTR-test mode"""
CTi: BaseRM[6]
+ def specifiers(self, record):
+ if self.CTi:
+ yield "cti"
+ else:
+ yield "ctr"
+
+ yield from super().specifiers(record=record)
+
class BranchCTRVLSRM(BranchVLSRM, BranchCTRRM):
"""branch: CTR-test+VLSET mode"""
svp64_rm.branch.vls.VSb = 1
elif encmode == 'vsbi':
svp64_rm.branch.VLS = 1
- svp64_rm.branch.vls.VLb = 1
+ svp64_rm.branch.vls.VSb = 1
svp64_rm.branch.vls.VLI = 1
elif encmode == 'ctr':
svp64_rm.branch.CTR = 1
- svp64_rm.branch.VLS = 0
- svp64_rm.branch.ctr.CTi = 1
elif encmode == 'cti':
svp64_rm.branch.CTR = 1
svp64_rm.branch.ctr.CTi = 1
"sv.bc/snz 12,*1,0xc",
"sv.bc/all/sl/slu 12,*1,0xc",
"sv.bc/all/snz/sl/slu/lru 12,*1,0xc",
+ "sv.bc/vs/all/snz/sl/slu/lru 12,*1,0xc",
+ "sv.bc/vsi/all/snz/sl/slu/lru 12,*1,0xc",
+ "sv.bc/vsb/all/snz/sl/slu/lru 12,*1,0xc",
+ "sv.bc/vsbi/all/snz/sl/slu/lru 12,*1,0xc",
+ "sv.bc/ctr/all/snz/sl/slu/lru 12,*1,0xc",
+ "sv.bc/cti/all/snz/sl/slu/lru 12,*1,0xc",
]
self._do_tst(expected)