ghostmansd-pc | lkcl: do you want me to cherry-pick RANGE function into master? | 09:18 |
---|---|---|
ghostmansd-pc | I pulled the code, it's not here yet, so, if you need it, I can cherry-pick it | 09:19 |
ghostmansd-pc | Another question: in scope of XLEN changes, how should we translate things like this? | 09:29 |
ghostmansd-pc | CR[4*BF+32:4*BF+35] <- c || XER[SO] | 09:29 |
ghostmansd-pc | comparefixed.mdwn | 09:29 |
ghostmansd-pc | We 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 |
lkcl | ghostmansd, already done. https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=b3061c38ef984418e266c6f74b366a7e953840a5 | 12:14 |
lkcl | don't touch CR-related pseudocode | 12:15 |
lkcl | they won't have element-width overrides applied, it makes no sense | 12:17 |
lkcl | https://bugs.libre-soc.org/show_bug.cgi?id=671#c33 | 12:17 |
lkcl | EXTS 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 |
lkcl | so when any operation of say a 32-bit with something-marked-as-256-bit occurs, normally this would throw an exception | 12:18 |
lkcl | (because the bit-width is wrong) | 12:19 |
lkcl | for 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 |
lkcl | this 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 |
lkcl | conversion of EXTS64 can be done later. | 12:21 |
lkcl | the primary goal right now is to convert all the hard-coded uses of 64/63 to XLEN | 12:21 |
lkcl | the *second* milestone will be to investigate EXTS64 etc. | 12:22 |
lkcl | programmerjake, ghostmansd needs urgent help with running the unit tests that are dependent on pia. | 12:22 |
lkcl | please can you help him urgently, his work - and being paid - is being held up. | 12:23 |
lkcl | ghostmansd, i'm currently running test_issuer.py on the xlen branch. should be another 15 mins. | 12:24 |
lkcl | i'll start some of the long tests as well | 12:24 |
lkcl | damn f*****g branches | 12:25 |
lkcl | i'm now forced to check out an older version of nmutil | 12:27 |
lkcl | ghostmansd, bpermd is doing something odd | 12:28 |
lkcl | File "/home/lkcl/src/libresoc/openpower-isa/src/openpower/decoder/selectable_int.py", line 491, in selectconcat | 12:28 |
lkcl | res.bits += i.bits | 12:28 |
lkcl | AttributeError: 'list' object has no attribute 'bits' | 12:28 |
lkcl | grrrr that's not working either, using the older version of nmutil | 12:33 |
* lkcl deep breath | 12:33 | |
lkcl | ok, i'm going to start cherry-picking individual commits | 12:33 |
lkcl | starting with andi | 12:33 |
lkcl | the probability of that working is quite high | 12:33 |
lkcl | grrr fu/logical/test/test_pipe_caller.py (and others) weren't converted over in the ready_i to i_ready etc rename | 12:39 |
lkcl | grrrr | 12:39 |
lkcl | ghostmansd: just sorting that now, one by one | 12:39 |
ghostmansd | lkcl: thank you! I will be able to continue in the evening | 12:41 |
lkcl | ghostmansd, no problem. | 12:41 |
lkcl | just investigating selectconcat at the moment. [0]*(XLEN-16) needs fixing. will deal with it | 12:41 |
lkcl | i think i know what it is | 12:42 |
ghostmansd | Hm. If there's ([0] * (XLEN-16)), it was likely ([0] * 48), wasn't it? | 12:43 |
lkcl | yes. however spotting that had to be special-cased - [n]*NUM - in the parser | 12:43 |
lkcl | the pattern-recognition doesn't cope with "[0] * (XLEN-16)" | 12:44 |
ghostmansd | Ah, it doesn't work with "comparison"? | 12:44 |
lkcl | i'll deal with it | 12:44 |
ghostmansd | lol, I laugh each time about this "comparison", IDK why it's that funny, but I literally laugh every time | 12:45 |
ghostmansd | Please don't rename it yet | 12:45 |
ghostmansd | I think there must be something like thing that you did with eq() | 12:46 |
lkcl | it's not the comparison, it's the entire concept of concatenation | 12:46 |
* lkcl concentrating | 12:46 | |
ghostmansd | IIRC it works on iterables, right? | 12:46 |
lkcl | hang on ghostmansd i'm trying to concentrate | 12:47 |
lkcl | got it. | 12:53 |
lkcl | https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=src/openpower/decoder/pseudo/parser.py;h=03d0fd5e6aca7128ecfa2d42d36be84e0ca0d353;hb=b3061c38ef984418e266c6f74b366a7e953840a5#l179 | 12:53 |
lkcl | that function's not able to recognise the pattern "[0]*(expression)" | 12:53 |
lkcl | excellent, andi passes | 13:06 |
lkcl | ghostmansd, am making good progress | 13:53 |
lkcl | btw 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 file | 13:54 |
lkcl | one exception to that is sprset.mdwn which contains a bunch of CR-based operations (no idea why) | 13:54 |
lkcl | and another weird one is isel | 13:54 |
lkcl | but for the most part if you edit fixedarith.mdwn | 13:54 |
lkcl | you only need to run fu/alu/test/test_pipe_caller.py | 13:55 |
lkcl | found (and fixed) a bug in RANGE | 14:13 |
lkcl | the direction range(start, end, >>>> -1 <<<<) was missing | 14:13 |
lkcl | ghostmansd (for this evening, fyi, not intending to distract you now), went through all the fixedlogical ones | 14:31 |
lkcl | created a couple of sub-bugs containing notes | 14:31 |
lkcl | fixedarith ones are next | 14:31 |
lkcl | after i do a full run on test_issuer.py | 14:31 |
lkcl | and take a break and some lunch | 14:32 |
ghostmansd | Thank you, Luke! | 14:41 |
ghostmansd | I hope that I'll be able to go through these today | 14:42 |
lkcl | all the mul fixedarith so far all good | 17:03 |
lkcl | toshywoshy: that's intriguing, the #openpower channel has become "invite only" | 17:08 |
lkcl | it's been an open channel for many years | 17:08 |
jn | as the name implies, and as it should be :) | 17:09 |
lkcl | yehyeh :) | 17:13 |
ghostmansd | #notsoopenpower? :-) | 17:24 |
lkcl | :) | 17:25 |
lkcl | ghostmansd: https://git.libre-soc.org/?p=openpower-isa.git;a=commitdiff;h=5e7b5ce86ded1f7686e4fa45538df0f0d7a5c5c2 | 17:25 |
lkcl | mulli didn't have a short test.... so i made one based on the long version | 17:26 |
lkcl | as a heads-up / guide, feel free to do that sort of thing | 17:26 |
ghostmansd | Should we adjust *_cases.py files? | 17:27 |
lkcl | that's what that patch is about | 17:27 |
ghostmansd | I've been thinking of having standalone | 17:27 |
ghostmansd | Like we did with BCD | 17:27 |
lkcl | yeah the more the merrier | 17:27 |
lkcl | remember to alter test_issuer.py to actually use them though | 17:28 |
lkcl | the chain/hierarchy goes: | 17:28 |
lkcl | low-level module unit tests (a popcount or count-leading-zero test) | 17:28 |
lkcl | next door (in parallel to) an ISACaller unit test | 17:28 |
lkcl | then the pipeline gets a test using that module (popcount, clz) | 17:29 |
lkcl | then the Computational Unit uses the exact same cases | 17:29 |
lkcl | then the *core* uses the exact same cases (but this hasn't been run for a long time, and that's kinda ok) | 17:29 |
lkcl | then test_caller.py runs *all* the case_* | 17:29 |
lkcl | and cases_* are all designed *so that* they can be run multiple times from different context | 17:30 |
lkcl | s | 17:30 |
lkcl | i'm just going to throw madd* in because we don't have unit tests for them (at all) in ISACaller | 17:33 |
lkcl | doing div/mod now | 17:39 |
* lkcl running the div long test now | 17:53 | |
lkcl | all mod/div XLENs are in | 17:53 |
* lkcl re-running test_issuer.py for the 6th time today | 17:59 | |
lkcl | exccellent, no errors | 18:30 |
ghostmansd | lkcl: still no luck with mkpinmux, python2 is not found | 21:11 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!