[Libre-soc-bugs] [Bug 917] pysvp64dis: support SVP64 disassembly
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Wed Sep 7 14:06:52 BST 2022
https://bugs.libre-soc.org/show_bug.cgi?id=917
--- Comment #13 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Dmitry Selyutin from comment #10)
> I've played a bit with the representation, here's what we have now:
>
> 00 00 40 05 sv.bc 2,9,
wark-wark :)
> 08 00 49 40
> spec
> sv.bc BO,BI,target_addr (AA=0 LK=0)
niiice
> BI
> 01001
> 43, 44, 45, 46, 47
> target_addr
> 00000000000010{00}
> 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61
> target_addr = EXTS(BD || 0b00))
nice. BD seems missing entirely but hey
> 40 18 40 05 sv.add r127,r31,r65
> 14 0a ff 7f
> spec
> sv.add RT,RA,RB (OE=0 Rc=0)
> RT
> 01111111
> 38, 39, 40, 41, 42, 18, 19, 20
> extra3[0]
this i assume is numbering based on 64-bit MSB0. it must be.
* 38-42 minus 32 (to get them down to 32-bit MSB0) is 6-10
ah ha! that matches with RT in a 32-bit instruction, so yes.
it also looks like it's vector numbering rather than scalar
numbering because 18,19,20 are at the end (in LSB positions)
if it's scalar it should be
[19,20, 38, 39, 40, 41, 42] # or maybe 20,19,38..42
> RA
> 11111
> 43, 44, 45, 46, 47
> extra3[1]
this one is missing the 7-bit extension. no GPR/FPR/CR
operands should miss EXTRA extension
> 14 02 ef 7f add r31,r15,r0
> spec
> add RT,RA,RB (OE=0 Rc=0)
> RT
> 11111
> 6, 7, 8, 9, 10
yeah there we go. 6-10 (so 38-42 minus 32 was also 6-10)
> 00 15 40 05 sv.lwzu r30,16,r15
> 10 00 cf 87
> spec
> sv.lwzu RT,D(RA)
> RT
> 011110{0}
> 38, 39, 40, 41, 42, 18
> extra2[0]
if that was vector it's correct.
if it is scalar it should be {0}011110 [18,38,39....42]
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-soc-bugs
mailing list