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

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sun Aug 21 11:08:10 BST 2022


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

--- Comment #10 from Dmitry Selyutin <ghostmansd at gmail.com> ---
(In reply to Dmitry Selyutin from comment #8)
> There was an issue in the previous version, fixed now.
> .llong 0x540000040490008 # sv.bc
> SVP64Instruction(0x540000040490008, major=0x1, prefix.insn=0x5400000,
> prefix.major=0x1, prefix.pid=0x3, prefix.rm.spr=0x0, prefix.rm.mmode=0x0,
> prefix.rm.mask=0x0, prefix.rm.elwidth=0x0, prefix.rm.ewsrc=0x0,
> prefix.rm.subvl=0x0, 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=0x10)

Not entirely fixed yet; I'm still checking how to remap the major. I want a way
to express that major is a Suffix.major, but obviously it treats Suffix as
32-bit (as it should).
The current solution is this:

    class Suffix(WordInstruction):
        pass

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

Looks somewhat verbose to me, but actually expresses what happens under the
hood. The major field is a new field, made from same field of the Suffix class,
but remapped with respect to how suffix is actually mapped.

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


More information about the libre-soc-bugs mailing list