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

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Tue Aug 30 20:11:06 BST 2022


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

--- Comment #34 from Dmitry Selyutin <ghostmansd at gmail.com> ---
OK, I have a real breakthrough. It seems we can now construct fields better,
relying on the parsed operands. More details:
https://git.libre-soc.org/?p=openpower-isa.git;a=commit;h=adefa3af2343f5bce4bd8048db4a54f4a2bf355c.

Below are static operands and opcodes for all instructions which start with
"add". I think, with this code, the only thing left for vanilla PPC assembler
is to decode the dynamic operands.

addmeo.
    StaticOperand(name='OE', value=1)
    StaticOperand(name='Rc', value=1)
    FieldsOpcode(value=0x7c0005d5, mask=0xfc0007ff)
add.
    StaticOperand(name='OE', value=0)
    StaticOperand(name='Rc', value=1)
    FieldsOpcode(value=0x7c000215, mask=0xfc0007ff)
addi
    FieldsOpcode(value=0x38000000, mask=0xfc000000)
addis
    FieldsOpcode(value=0x3c000000, mask=0xfc000000)
addc.
    StaticOperand(name='OE', value=0)
    StaticOperand(name='Rc', value=1)
    FieldsOpcode(value=0x7c000015, mask=0xfc0007ff)
addme.
    StaticOperand(name='OE', value=0)
    StaticOperand(name='Rc', value=1)
    FieldsOpcode(value=0x7c0001d5, mask=0xfc0007ff)
addeo
    StaticOperand(name='OE', value=1)
    StaticOperand(name='Rc', value=0)
    FieldsOpcode(value=0x7c000514, mask=0xfc0007ff)
addco
    StaticOperand(name='OE', value=1)
    StaticOperand(name='Rc', value=0)
    FieldsOpcode(value=0x7c000414, mask=0xfc0007ff)
addzeo
    StaticOperand(name='OE', value=1)
    StaticOperand(name='Rc', value=0)
    FieldsOpcode(value=0x7c000594, mask=0xfc0007ff)
add
    StaticOperand(name='OE', value=0)
    StaticOperand(name='Rc', value=0)
    FieldsOpcode(value=0x7c000214, mask=0xfc0007ff)
addeo.
    StaticOperand(name='OE', value=1)
    StaticOperand(name='Rc', value=1)
    FieldsOpcode(value=0x7c000515, mask=0xfc0007ff)
addme
    StaticOperand(name='OE', value=0)
    StaticOperand(name='Rc', value=0)
    FieldsOpcode(value=0x7c0001d4, mask=0xfc0007ff)
addo
    StaticOperand(name='OE', value=1)
    StaticOperand(name='Rc', value=0)
    FieldsOpcode(value=0x7c000614, mask=0xfc0007ff)
addco.
    StaticOperand(name='OE', value=1)
    StaticOperand(name='Rc', value=1)
    FieldsOpcode(value=0x7c000415, mask=0xfc0007ff)
addmeo
    StaticOperand(name='OE', value=1)
    StaticOperand(name='Rc', value=0)
    FieldsOpcode(value=0x7c0005d4, mask=0xfc0007ff)
adde
    StaticOperand(name='OE', value=0)
    StaticOperand(name='Rc', value=0)
    FieldsOpcode(value=0x7c000114, mask=0xfc0007ff)
addo.
    StaticOperand(name='OE', value=1)
    StaticOperand(name='Rc', value=1)
    FieldsOpcode(value=0x7c000615, mask=0xfc0007ff)
addzeo.
    StaticOperand(name='OE', value=1)
    StaticOperand(name='Rc', value=1)
    FieldsOpcode(value=0x7c000595, mask=0xfc0007ff)
addic
    FieldsOpcode(value=0x30000000, mask=0xfc000000)
adde.
    StaticOperand(name='OE', value=0)
    StaticOperand(name='Rc', value=1)
    FieldsOpcode(value=0x7c000115, mask=0xfc0007ff)
addic.
    FieldsOpcode(value=0x34000000, mask=0xfc000000)
addze
    StaticOperand(name='OE', value=0)
    StaticOperand(name='Rc', value=0)
    FieldsOpcode(value=0x7c000194, mask=0xfc0007ff)
addze.
    StaticOperand(name='OE', value=0)
    StaticOperand(name='Rc', value=1)
    FieldsOpcode(value=0x7c000195, mask=0xfc0007ff)
addc
    StaticOperand(name='OE', value=0)
    StaticOperand(name='Rc', value=0)
    FieldsOpcode(value=0x7c000014, mask=0xfc0007ff)
addg6s
    FieldsOpcode(value=0x7c000094, mask=0xfc0007fe)

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


More information about the libre-soc-bugs mailing list