test.s: sv.ldu/ff=~RC1/vli *16, 0(*17) powerpc64le-linux-gnu-as /tmp/test.s -o /tmp/test.o powerpc64le-linux-gnu-objcopy -Obinary /tmp/test.o /tmp/bin.o powerpc64le-linux-gnu-objdump -dr /tmp/test.o pysvp64dis -v /tmp/bin.o .... RA (vector) 0000000000000 43, 44, 45, 46, 47, 22, 23, 22, 23, 22, 23, 22, 23 extra3<generator object ExtendableOperand.extra_idx at 0x7f7ce3f1c570>
https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=aaa074c780af29367c582c386eb722884f00338f found the duplicates in EXTRA3 overlap where one of the EXTRA_IDX batch was a source RA and another was a destination RA. this caused chaos. now all sorted RA (vector) 1111000 43, 44, 45, 46, 47, 22, 23
same thing: sv.cmp/ff=eq *4,1,*0,1 BF (vector) 00100 38, 39, 40, 19, 20, {0}, {0} extra3<generator object ExtendableOperand.extra_idx at 0x7f9b7694b840>
https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=a30a56853db7a8754bcbc8d8122f7a35d15c37b1 sorted out RA and RT but did not sort out BF
copied the code that was duplicated for CROps disassembly https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=2b60ad1a303817558f339e51549682b207863214
The recent changes broke some insndb scenarios (most notably sv_binutils script). Fixed in master: https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=9746c94bdaad3a077c8d8f9965e6baeda152f476.
(In reply to Dmitry Selyutin from comment #5) > The recent changes broke some insndb scenarios (most notably sv_binutils > script). Fixed in master: > https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff; > h=9746c94bdaad3a077c8d8f9965e6baeda152f476. yeah that makes sense, it was there originally in sv/trans/svp64.py to have source operands different from destination. although really they should not be different EXTRA indices, that experiment is nixed.