[Libre-soc-bugs] [Bug 898] binutils svp64 objdump support

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sat Aug 20 23:03:11 BST 2022


https://bugs.libre-soc.org/show_bug.cgi?id=898

--- Comment #3 from Dmitry Selyutin <ghostmansd at gmail.com> ---
It takes an absolute eternity to make things done, really, not even hours, but
days. Still, here's what we have for now (I've omitted the boilerplate):


class Instruction(_Fields):
    _: _Field = range(0, 32)
    major: _Field = range(0, 6)

class WordInstruction(Instruction):
    pass

class PrefixedInstruction(Instruction):
    class Prefix(WordInstruction):
        pass

    class Suffix(WordInstruction):
        pass

    prefix: Prefix = range(0, 32)
    suffix: Suffix = range(32, 64)
    major: _Field = Suffix.major

class SVP64Instruction(PrefixedInstruction):
    class Prefix(PrefixedInstruction.Prefix, _Prefix):
        pass

    prefix: Prefix


With the code above, SVP64 instructions from the binary file produce the
representations like below:

SVP64Instruction(0x54000007c410214, major=0x1, prefix.insn=0x5400000,
prefix.major=0x1, prefix.pid=0x3, prefix.rm.spr=0x54000, prefix.rm.mmode=0x0,
prefix.rm.mask=0x0, prefix.rm.elwidth=0x1, prefix.rm.ewsrc=0x1,
prefix.rm.subvl=0x1, prefix.rm.extra=0x0, prefix.rm.mode=0x0,
prefix.rm.extra2[0]=0x0, prefix.rm.extra2[1]=0x0, prefix.rm.extra2[2]=0x0,
prefix.rm.extra2[3]=0x0, prefix.rm.smask=0x0, prefix.rm.extra3[0]=0x0,
prefix.rm.extra3[1]=0x0, prefix.rm.extra3[2]=0x0, suffix.major=0x1)

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list