Monday, 2021-08-30

ghostmansd-pclkcl: do you want me to cherry-pick RANGE function into master?09:18
ghostmansd-pcI pulled the code, it's not here yet, so, if you need it, I can cherry-pick it09:19
ghostmansd-pcAnother question: in scope of XLEN changes, how should we translate things like this?09:29
ghostmansd-pcCR[4*BF+32:4*BF+35] <- c || XER[SO]09:29
ghostmansd-pccomparefixed.mdwn09:29
ghostmansd-pcWe have EXTS, EXTS64, EXTS128. EXTS should be converted to EXTS# where # stands for number of bits in register (XLEN). EXTS128 should be converted to EXTS(#*2) (again, XLEN-based, it'll be XLEN*2). What should be done with EXTS which always extends sign to 256 bits?09:58
lkclghostmansd, already done. https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=b3061c38ef984418e266c6f74b366a7e953840a512:14
lkcldon't touch CR-related pseudocode12:15
lkclthey won't have element-width overrides applied, it makes no sense12:17
lkclhttps://bugs.libre-soc.org/show_bug.cgi?id=671#c3312:17
lkclEXTS deliberately expands up to 256 bits as a signal to SelectableInt to say "this is infinite, you'll have to sort it out on-demand"12:18
lkclso when any operation of say a 32-bit with something-marked-as-256-bit occurs, normally this would throw an exception12:18
lkcl(because the bit-width is wrong)12:19
lkclfor anything-marked-as-256-bit, SelectableInt goes, "oh, this was marked as infinite / deferred and i have to sort it out, right now.  i'll just do that and set the bitwidth to the same as the other argument"12:19
lkclthis allows the intermediate result of calling the EXTS function to be used without us having to go "argh, argh, all calls to EXTS have to be replaced with something"12:20
lkclconversion of EXTS64 can be done later.12:21
lkclthe primary goal right now is to convert all the hard-coded uses of 64/63 to XLEN12:21
lkclthe *second* milestone will be to investigate EXTS64 etc.12:22
lkclprogrammerjake, ghostmansd needs urgent help with running the unit tests that are dependent on pia.12:22
lkclplease can you help him urgently, his work - and being paid - is being held up.12:23
lkclghostmansd, i'm currently running test_issuer.py on the xlen branch. should be another 15 mins.12:24
lkcli'll start some of the long tests as well12:24
lkcldamn f*****g branches12:25
lkcli'm now forced to check out an older version of nmutil12:27
lkclghostmansd, bpermd is doing something odd12:28
lkcl  File "/home/lkcl/src/libresoc/openpower-isa/src/openpower/decoder/selectable_int.py", line 491, in selectconcat12:28
lkcl    res.bits += i.bits12:28
lkclAttributeError: 'list' object has no attribute 'bits'12:28
lkclgrrrr that's not working either, using the older version of nmutil12:33
* lkcl deep breath12:33
lkclok, i'm going to start cherry-picking individual commits12:33
lkclstarting with andi12:33
lkclthe probability of that working is quite high12:33
lkclgrrr fu/logical/test/test_pipe_caller.py (and others) weren't converted over in the ready_i to i_ready etc rename12:39
lkclgrrrr12:39
lkclghostmansd: just sorting that now, one by one12:39
ghostmansdlkcl: thank you! I will be able to continue in the evening12:41
lkclghostmansd, no problem.12:41
lkcljust investigating selectconcat at the moment. [0]*(XLEN-16) needs fixing. will deal with it12:41
lkcli think i know what it is12:42
ghostmansdHm. If there's ([0] * (XLEN-16)), it was likely ([0] * 48), wasn't it?12:43
lkclyes. however spotting that had to be special-cased - [n]*NUM - in the parser12:43
lkclthe pattern-recognition doesn't cope with "[0] * (XLEN-16)"12:44
ghostmansdAh, it doesn't work with "comparison"?12:44
lkcli'll deal with it12:44
ghostmansdlol, I laugh each time about this "comparison", IDK why it's that funny, but I literally laugh every time12:45
ghostmansdPlease don't rename it yet12:45
ghostmansdI think there must be something like thing that you did with eq()12:46
lkclit's not the comparison, it's the entire concept of concatenation12:46
* lkcl concentrating12:46
ghostmansdIIRC it works on iterables, right?12:46
lkclhang on ghostmansd i'm trying to concentrate12:47
lkclgot it.12:53
lkclhttps://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=src/openpower/decoder/pseudo/parser.py;h=03d0fd5e6aca7128ecfa2d42d36be84e0ca0d353;hb=b3061c38ef984418e266c6f74b366a7e953840a5#l17912:53
lkclthat function's not able to recognise the pattern "[0]*(expression)"12:53
lkclexcellent, andi passes13:06
lkclghostmansd, am making good progress13:53
lkclbtw a useful tip: each of the fu/XXXXX/test/test_pipe_caller.py pretty much only have instructions that specifically relate to a particular markdown file13:54
lkclone exception to that is sprset.mdwn which contains a bunch of CR-based operations (no idea why)13:54
lkcland another weird one is isel13:54
lkclbut for the most part if you edit fixedarith.mdwn13:54
lkclyou only need to run fu/alu/test/test_pipe_caller.py13:55
lkclfound (and fixed) a bug in RANGE14:13
lkclthe direction range(start, end, >>>> -1 <<<<) was missing14:13
lkclghostmansd (for this evening, fyi, not intending to distract you now), went through all the fixedlogical ones14:31
lkclcreated a couple of sub-bugs containing notes14:31
lkclfixedarith ones are next14:31
lkclafter i do a full run on test_issuer.py14:31
lkcland take a break and some lunch14:32
ghostmansdThank you, Luke!14:41
ghostmansdI hope that I'll be able to go through these today14:42
lkclall the mul fixedarith so far all good17:03
lkcltoshywoshy: that's intriguing, the #openpower channel has become "invite only"17:08
lkclit's been an open channel for many years17:08
jnas the name implies, and as it should be :)17:09
lkclyehyeh :)17:13
ghostmansd#notsoopenpower? :-)17:24
lkcl:)17:25
lkclghostmansd: https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=5e7b5ce86ded1f7686e4fa45538df0f0d7a5c5c217:25
lkclmulli didn't have a short test.... so i made one based on the long version17:26
lkclas a heads-up / guide, feel free to do that sort of thing17:26
ghostmansdShould we adjust *_cases.py files?17:27
lkclthat's what that patch is about17:27
ghostmansdI've been thinking of having standalone17:27
ghostmansdLike we did with BCD17:27
lkclyeah the more the merrier17:27
lkclremember to alter test_issuer.py to actually use them though17:28
lkclthe chain/hierarchy goes:17:28
lkcllow-level module unit tests (a popcount or count-leading-zero test)17:28
lkclnext door (in parallel to) an ISACaller unit test17:28
lkclthen the pipeline gets a test using that module (popcount, clz)17:29
lkclthen the Computational Unit uses the exact same cases17:29
lkclthen the *core* uses the exact same cases (but this hasn't been run for a long time, and that's kinda ok)17:29
lkclthen test_caller.py runs *all* the case_*17:29
lkcland cases_* are all designed *so that* they can be run multiple times from different context17:30
lkcls17:30
lkcli'm just going to throw madd* in because we don't have unit tests for them (at all) in ISACaller17:33
lkcldoing div/mod now17:39
* lkcl running the div long test now17:53
lkclall mod/div XLENs are in17:53
* lkcl re-running test_issuer.py for the 6th time today17:59
lkclexccellent, no errors18:30
ghostmansdlkcl: still no luck with mkpinmux, python2 is not found21:11

Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!