yield from super().specifiers(record=record)
+class VLiBaseRM(BaseRM):
+ def specifiers(self, record):
+ if self.VLi:
+ yield "vli"
+
+ yield from super().specifiers(record=record)
+
+
class NormalBaseRM(PredicateWidthBaseRM):
"""
Normal mode
yield from super().specifiers(record=record, mode="ff")
-class NormalFFRc0RM(FFPRRc0BaseRM, NormalBaseRM):
+class NormalFFRc0RM(FFPRRc0BaseRM, VLiBaseRM, NormalBaseRM):
"""normal: Rc=0: ffirst z/nonz"""
inv: BaseRM.mode[2]
VLi: BaseRM.mode[3]
RC1: BaseRM.mode[4]
def specifiers(self, record):
- if self.VLi:
- yield "vli"
-
yield from super().specifiers(record=record, mode="ff")
sz: BaseRM[23]
-class CROpFF3RM(ZZBaseRM, CROpBaseRM):
+class CROpFF3RM(VLiBaseRM, ZZBaseRM, CROpBaseRM):
"""cr_op: ffirst 3-bit mode"""
- VLI: BaseRM[20]
+ VLi: BaseRM[20]
inv: BaseRM[21]
CR: BaseRM[22, 23]
zz: BaseRM[6]
yield from super().specifiers(record=record, mode="ff")
-class CROpFF5RM(DZBaseRM, SZBaseRM, CROpBaseRM):
+class CROpFF5RM(VLiBaseRM, DZBaseRM, SZBaseRM, CROpBaseRM):
"""cr_op: ffirst 5-bit mode"""
- VLI: BaseRM[20]
+ VLi: BaseRM[20]
inv: BaseRM[21]
dz: BaseRM[22]
sz: BaseRM[23]
class BranchVLSRM(BranchBaseRM):
"""branch: VLSET mode"""
VSb: BaseRM[7]
- VLI: BaseRM[21]
+ VLi: BaseRM[21]
def specifiers(self, record):
yield {
(0b0, 0b1): "vsi",
(0b1, 0b0): "vsb",
(0b1, 0b1): "vsbi",
- }[int(self.VSb), int(self.VLI)]
+ }[int(self.VSb), int(self.VLi)]
yield from super().specifiers(record=record)