From 0220029ffb201563bda619f4267e92829037e77c Mon Sep 17 00:00:00 2001 From: Dmitry Selyutin Date: Sun, 18 Sep 2022 17:08:52 +0300 Subject: [PATCH] power_insn: support m/sm/dm specifiers --- src/openpower/decoder/power_insn.py | 46 +++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 6 deletions(-) diff --git a/src/openpower/decoder/power_insn.py b/src/openpower/decoder/power_insn.py index 37ec76ec..c125a19a 100644 --- a/src/openpower/decoder/power_insn.py +++ b/src/openpower/decoder/power_insn.py @@ -1276,7 +1276,6 @@ class BaseRM(_Mapping): subvl: _Field = range(8, 10) mode: Mode.remap(range(19, 24)) smask: _Field = range(16, 19) - extra: Extra.remap(range(10, 19)) extra2: Extra2.remap(range(10, 19)) extra3: Extra3.remap(range(10, 19)) @@ -1301,21 +1300,56 @@ class BaseRM(_Mapping): class NormalLDSTBaseRM(BaseRM): def specifiers(self, record): - width = { + widths = { 0b11: "8", 0b10: "16", 0b01: "32", } + predicates = { + # integer + (0, 0b001): "1<