Sunday, 2022-07-24

ghostmansdhttps://bugs.libre-soc.org/show_bug.cgi?id=849#c2910:07
ghostmansdhttps://bugs.libre-soc.org/show_bug.cgi?id=849#c3010:07
ghostmansdLong time no news, eh? Still, it seems I managed to make macros work.10:07
ghostmansdI'm really tired, it took a fucking eternity to hack gas expressions.10:08
ghostmansdI haven't yet introduced an alias for (1<<r3), ^r3. I think it's doable, though; if you think this is needed, I can support it too.10:10
ghostmansdAfter I found how to make (1<<r3) work, I simply surrendered. :-)10:10
lkclghostmansd[m], haha10:16
lkclunnnbeliieeevablllle10:16
lkcl1<<%r3 is far too many, it comes out as 7 characters including the /10:18
lkcli hadn't noticed that before10:18
ghostmansd[m]With -mregnames it's 1 char shorter10:19
lkclmuch as i don't like the fact that i have to also go through the spec, i feel ^r3 is better10:19
lkclyeah but who's going to start adding that by default to all compilation?10:20
lkclbtw, just so you know, i'm leaving various bits of other work 100% paid to you but completing them myself10:20
lkclbecause #550 is up to its EUR 12k limit10:20
lkcli must apologise, as well, for not making it clear, i was expecting ^r3 *instead* of 1<<r310:22
ghostmansd[m]lkcl, this is not ok, please split it then10:24
lkclghostmansd[m], sorry, which bit isn't ok?10:25
lkcl(mornin, btw, i still haven't properly woken up)10:25
ghostmansd[m]Ok I'll add ^r3 too10:25
ghostmansd[m]Should I drop 1<<r3 support at all?10:26
ghostmansd[m]Or should I keep it as an alias?10:26
lkcli think really, it's... mmm ah ok, yes.10:26
lkclif that's possible / easier, keeping it as an alias would work10:26
lkcland be a lot less work for me (modifying the spec)10:27
ghostmansd[m]lkcl, I mean splitting the budget10:27
ghostmansd[m]Ah OK10:27
ghostmansd[m]OK I'll make an alias ^r3 for 1<<r310:27
lkclfor example this one https://bugs.libre-soc.org/show_bug.cgi?id=72810:28
lkcli'm completing it (already underway) but the budget i will put entirely to you10:28
lkcl#550 is maxed out10:28
lkcloh, can you confirm whether EUR arrived on the 21st/22nd in the EU bank account?10:29
ghostmansd[m]No, if you do it, then this should be on your side :-)10:29
ghostmansd[m]Let me check with my sister, I have no idea10:29
lkcl:)10:30
ghostmansd[m]This is not even my account :-)10:30
lkclok... so are you good with the amount you're receiving for binutils?10:30
ghostmansd[m]You mean macros?10:31
ghostmansd[m]2100 IIRC, right?10:31
lkcletc. etc. yes10:32
lkclotherwise i will put you some extra via e.g. https://bugs.libre-soc.org/show_bug.cgi?id=72810:32
lkclyour sister should have EUR 1,400 arrive on 21st jul 202210:33
ghostmansd[m]lkcl, there is arrival of EUR 1400!10:34
ghostmansd[m]So I'll update the tasks (or you could, I'm AFK)10:35
ghostmansd[m]As for payment, feel free to tune 728 or other tasks as you feel appropriate10:35
lkclhoorah. ok willdo10:36
lkclack on 728.10:36
ghostmansd[m]lkcl, star11:00
ghostmansd[m]lkcl, any ideas how to call this predicate ^r3 in enum? I had SVP64_PREDICATE_1_LSHIFT_R3, but this feels dumb, compared to SVP64_PREDICATE_EQ or even SVP64_PREDICATE_R3_INV. And with new predicate, the name doesn't fit at all.11:22
lkclerrrm.. ermermerm...12:05
* lkcl thinks12:05
lkcl1BIT12:05
lkclSVP64_PREDICATE_1BIT12:05
lkclor12:06
lkclSVP64_PREDICATE_1BIT_R312:06
lkcl?12:06
ghostmansd[m]OK, looks good12:45
lkcldang it's not. again13:00
cesarIt came to me that 2^r3 (two to the power of r3) is mathematically equivalent to 1<<r3, and only one character more than ^r3. Just a thought.15:44
cesarI guess this is were the ^r3 proposal came from.15:54
cesar... but eliding the 2.15:54
lkclcesar, no, not at all :)16:02
lkclok maybe subconsciously16:02
lkcltoshywoshy, appreciate it's your "reading-day", https://bugs.libre-soc.org/show_bug.cgi?id=893 two one-pagers there16:13
lkcl    https://libre-soc.org/openpower/sv/executive_summary/16:13
lkcl    https://libre-soc.org/openpower/sv/comparison_table/16:13
lkclany thoughts?16:13
ghostmansdhttps://bugs.libre-soc.org/show_bug.cgi?id=849#c3219:23
ghostmansdlkcl, it seems I managed to make it work!19:23
ghostmansdI have to check the disasm, but I think I haven't touched the remapping algorithm19:24
ghostmansdlkcl, I've updated 728 (basically re-allocated the budget to you); fine with you?19:48
ghostmansdAs for binutils budget, we're out of luck. :-) But it for sure took a lot of time, much more than I expected, and I assume prefix would need more time too (because, well, with macros I assumed it'd be waaaay simpler). So, if there will be some way to get an extra tip, I for sure won't object. :-) If not -- still fine.19:50
ghostmansd[m]Sigh, yes I broke the assembly, at least for mp3. I wonder whether this task will ever end.20:23
lkclhoorah21:49
lkclah...21:49
lkclsv.extsw./pr=^r3 isn't possible21:49
lkclhttps://libre-soc.org/openpower/sv/normal/#index2h121:50
lkcl0-1 2 3 4 description21:50
lkcl11 inv CR-bit Rc=1: pred-result CR sel21:50
lkclonly a CR bit is possible21:50
lkclwhere (sigh) https://libre-soc.org/openpower/sv/svp64/#index11h121:51
lkclafter doing MSB0-number-mind-bending-inversion21:52
lkclif you take the inv and CR-bits [2..4] of normal mode21:52
lkclthey *should* happen to exactly match up with 11.2 CR-based predication table21:52
lkclbut21:53
lkclsee 11.1? that's for integer predication only21:53
lkcland there's no 4th bit in the normal-arithmetic table to select integer predication, right?21:54
lkclbasically, "pr=" happens by a *coincidence* to use the exact same CR-field-selection as predication m=,dm=,sm=21:54
lkclfail-first as well21:56
lkcleasily fixed with an extra argument to svp64_decode_predicate()21:56
lkclhttps://git.libre-soc.org/?p=binutils-gdb.git;a=blob;f=gas/config/tc-ppc-svp64.c;h=7f27093cde7fff236e4d254b54072e8430a1aab5;hb=0abcbc8220d812de3261fc44c5c65989882c0cec#l30421:57
lkclghostmansd[m], i did drop the remainder from 577 at you https://bugs.libre-soc.org/show_bug.cgi?id=57722:07
ghostmansd[m]lkcl, it seems I've dropped the check after calling svp64_decode_predicate22:20
ghostmansd[m]ff/pr should allow either CR or RC1-related22:21
ghostmansd[m]dm/sm/m should allow everything but RC122:21
ghostmansd[m]Ok should be fine now22:25
ghostmansd[m]Ok it seems this is done22:42
ghostmansd[m]So, I fixed this (in)famous mp3 assembly, and also restored CR/RC1 post-check for sm/dm/m. I think we can now close 849.22:43
lkcl 633   if (!iter || !(cr || ((mask & SVP64_RC1_ACTIVE) != 0)))22:43
lkclyeah! that works exactly the same22:43
lkclhooorahhh22:43
ghostmansd[m]Aha22:43
ghostmansd[m]This is what the code had before I started all this macro madness22:44
lkcli will PM you the secret URLs for submitting an RFP22:44
ghostmansd[m]Perfect, thank you! Will do it tomorrow, enough for today22:45
lkclheh yeah22:47
cesarlkcl: Just found out that, on vesa_ecp5.py, in nmigen_boards, the DDR3 reset pin name was incorrectly changed from "rst" to "reset". On every other DDR3 target, it's "rst".23:06
cesarAn inspection of the verilog generated by ls2.py confirms that the DDR3 reset pin not really connected to the PHY, it's wired to VCC. Bug was introduced in commit 3caaf1ffc9ff7635f66f33bc88da16bbe10852cc on nmigen-boards.23:07
lkclcesar, appreciated, 1 sec23:07
lkclhttps://gitlab.com/nmigen/nmigen-boards/-/commit/3caaf1ffc9ff7635f66f33bc88da16bbe10852cc23:08
lkclfrick, i didn't notice23:08
lkclcan you do a patch to fix that and put it back?23:09
cesarSure.23:09
lkclit explains why DDR3 doesn't work23:09
lkclbecause gram goes looking for named-attributes23:09
lkcl        if hasattr(self.pads, "rst"): # this gets renamed later to match dfi23:13
lkcl            controls.append("rst")23:13
lkclhttps://git.libre-soc.org/?p=gram.git;a=blob;f=gram/phy/ecp5ddrphy.py;h=e3e7f5ff7d8d528ae4113a8f0935206ce12edda3;hb=5064f00d605ccd16a169454fdede5f9e77591bce#l27323:13
cesarIndeed, I was inspecting the output from a print a few lines below, and missed "rst" among the others.23:19
lkclthere's a cut/paste error of a "hasattr(self.pads, "rst") further above23:20
cesarlkcl: Done: https://gitlab.com/nmigen/nmigen-boards/-/merge_requests/523:50
lkclcesar, awesome, done23:57

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