*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 00:09 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 00:21 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 03:06 | |
*** openpowerbot <openpowerbot!~openpower@94-226-188-34.access.telenet.be> has quit IRC | 04:17 | |
*** openpowerbot <openpowerbot!~openpower@94-226-188-34.access.telenet.be> has joined #libre-soc | 04:29 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 04:29 | |
*** openpowerbot <openpowerbot!~openpower@94-226-188-34.access.telenet.be> has quit IRC | 05:47 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 07:42 | |
*** ghostmansd <ghostmansd!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has quit IRC | 08:07 | |
*** openpowerbot <openpowerbot!~openpower@94-226-188-34.access.telenet.be> has joined #libre-soc | 08:09 | |
*** octavius <octavius!~octavius@217.147.93.209.dyn.plus.net> has joined #libre-soc | 08:26 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has quit IRC | 09:23 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.170.0> has joined #libre-soc | 09:24 | |
*** octavius <octavius!~octavius@217.147.93.209.dyn.plus.net> has quit IRC | 09:45 | |
markos | lkcl, DCT 32x32, NEON, 14k lines in asm, 5k lines in C intrinsics, the original scalar code is 700 lines in C, wild guess, SVP64 asm will be < 2k lines maybe 3k if we include the comments | 10:53 |
---|---|---|
markos | and it's not fully unrolled | 10:54 |
lkcl | yowser | 10:55 |
lkcl | it should be a hell of a lot less than that | 10:55 |
lkcl | but those twin-butterfly int ops are needed to do that | 10:56 |
lkcl | it's still completely mad | 10:56 |
markos | this is *with* the butterfly instructions for arm :) | 10:56 |
markos | when I get some free time, I'll give it a shot | 10:57 |
lkcl | are you happy to wait until the budget is approved, then help instead adding the appropriate twin-butterfly int-ops? | 10:58 |
lkcl | the target's under 100 instructions | 10:58 |
lkcl | most of which, annoyingly, would be the setup of the cos coefficients | 10:58 |
markos | 100 instructions for 32x32 is pushing it | 10:58 |
markos | but sure | 10:59 |
lkcl | that's 3D, right? | 10:59 |
markos | 2d | 10:59 |
lkcl | sorry, 2D | 10:59 |
markos | 3d dct I haven't done yet tbh :D | 10:59 |
markos | would be fun | 10:59 |
lkcl | ok so how many individual operations? | 10:59 |
markos | haven't measured the resulting asm | 10:59 |
lkcl | (total, across all 3 inner loops) | 10:59 |
lkcl | it's possible to work out from first principles | 11:00 |
markos | is there a fast way to count that from the objdump? | 11:00 |
lkcl | https://ftp.libre-soc.org/plonka_dct1.png | 11:01 |
lkcl | no need, you can calculate it | 11:01 |
lkcl | so | 11:01 |
lkcl | 8-DCT is 4x1 + 2x2 + 1x4 | 11:02 |
lkcl | i.e. 3*4 operations = 12 | 11:02 |
lkcl | 16-DCT is twice that plus 8 | 11:02 |
lkcl | 12*12=24 + 8 = 30 | 11:02 |
lkcl | 32-DCT is twice that plus 16 | 11:03 |
lkcl | 30+30 = 60 + 16 = 72 | 11:03 |
lkcl | 72 operations | 11:03 |
lkcl | so that's *JUST* within the capability of 127 elements | 11:03 |
lkcl | but... | 11:03 |
lkcl | butbutbut.... | 11:03 |
lkcl | a 2D automatic DCT would not be | 11:03 |
lkcl | drat | 11:03 |
markos | and the algorithm does a transpose after each pass and there are 2 passes | 11:04 |
markos | but with remap, we might skip the transposes | 11:04 |
lkcl | yep, i was going to do that automatically | 11:04 |
lkcl | exactly | 11:04 |
markos | can't wait to play with that | 11:04 |
lkcl | so instead, annoyingly, another 11 instructions would be needed to do the transposed DCT as an explicit step | 11:04 |
lkcl | i'm so sad | 11:05 |
markos | :D | 11:05 |
lkcl | it's 16-bit arithmetic? | 11:05 |
lkcl | (results are 16-bit?) | 11:05 |
lkcl | and the inputs are 16-bit as well? | 11:06 |
markos | 16-bit arithmetic for 8-bit video, 32-bit arithmetic for 10/12-bit video | 11:06 |
markos | and some operations I have to expand to 64-bit arithmetic because extreme cases overflow | 11:06 |
lkcl | ok mmm... | 11:06 |
markos | unit tests basically | 11:06 |
lkcl | is the overflow a standard saturate? | 11:06 |
lkcl | (if greater than 0xffff then equal 0xffff) | 11:07 |
markos | yes I know, no unfortunately | 11:07 |
markos | results get messy | 11:08 |
lkcl | ah then we can't use 32-bit or 16-bit arithmetic | 11:08 |
lkcl | perhaps vertical-first would be better | 11:08 |
markos | there are some feedback loops where the resulting matrix is fed as input recursively | 11:08 |
markos | even one bit can completely mess up the results | 11:09 |
markos | ^different | 11:09 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.170.0> has quit IRC | 11:09 | |
lkcl | as you can use intermediaries that use 64-bit temporary variables | 11:09 |
markos | that's what I'm doing | 11:09 |
markos | for 8-bit pixels I'm using 32-bit temporaries | 11:09 |
markos | for 16-bit pixels I'm using 64-bit temps | 11:09 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.54.205> has joined #libre-soc | 11:09 | |
markos | though they're not needed everywhere thankfully | 11:10 |
lkcl | sounding like VF would do the trick | 11:10 |
markos | that's what I thought | 11:10 |
markos | transposing a 32x32 array is very costly | 11:11 |
lkcl | which is a bit longer (19-or-so instructions) | 11:11 |
lkcl | no need | 11:11 |
markos | doing it in 8x8 blocks and still it's a lot of instructions wasted there | 11:11 |
lkcl | ah 8x8 blocks? ok then that's... yep more instructions (again) | 11:13 |
lkcl | estimated.... 500 or so | 11:13 |
markos | I was being generous and said 2k instructions above :) | 11:14 |
lkcl | core triple-loop around 19 (regardless of block size, number-of-regs-limited) | 11:14 |
markos | 3k lines if you included a ton of comments :) | 11:14 |
markos | I think it's doable | 11:14 |
markos | what I would like as a target is to have a complete port of say libvpx or dav1d even before available hardware | 11:15 |
markos | and then measure exact number of instructions to decode a full video | 11:16 |
markos | inside cavatools perhaps | 11:16 |
markos | and compare with x86 & arm | 11:16 |
markos | would take probably a week, but it doesn't matter | 11:16 |
lkcl | cavatools i expect to be only around 1/10th to 1/20th slower than per-host-core | 11:23 |
lkcl | i.e. around the 250,000 instructions per second per host-core mark | 11:24 |
markos | so even better | 11:30 |
*** octavius <octavius!~octavius@217.147.93.209.dyn.plus.net> has joined #libre-soc | 11:43 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.54.205> has quit IRC | 12:01 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has joined #libre-soc | 12:02 | |
*** openpowerbot <openpowerbot!~openpower@94-226-188-34.access.telenet.be> has quit IRC | 12:05 | |
*** openpowerbot <openpowerbot!~openpower@94-226-188-34.access.telenet.be> has joined #libre-soc | 12:25 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has quit IRC | 12:57 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.170.63> has joined #libre-soc | 12:59 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.170.63> has quit IRC | 13:06 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has joined #libre-soc | 13:06 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 14:24 | |
lkcl | we got the 2 additional grants | 14:31 |
FUZxxl | cool | 14:31 |
markos | congrats | 14:34 |
lkcl | so that leaves plenty of room to, how-to-say, "adapt tasks somewhat to what people would like to do" | 14:37 |
lkcl | within the criteria https://libre-soc.org/nlnet_2022_opf_isa_wg/ and https://libre-soc.org/nlnet_2022_ongoing/ | 14:38 |
*** openpowerbot <openpowerbot!~openpower@94-226-188-34.access.telenet.be> has quit IRC | 14:56 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 15:02 | |
*** openpowerbot <openpowerbot!~openpower@94-226-188-34.access.telenet.be> has joined #libre-soc | 15:03 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 15:21 | |
*** openpowerbot <openpowerbot!~openpower@94-226-188-34.access.telenet.be> has quit IRC | 15:23 | |
programmerjake | lkcl: in case you don't see the email, please work on fixing https://bugs.libre-soc.org/show_bug.cgi?id=971 | 15:26 |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 15:29 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 15:31 | |
*** openpowerbot <openpowerbot!~openpower@94-226-188-34.access.telenet.be> has joined #libre-soc | 15:31 | |
programmerjake | basically i'm not getting emails from libre-soc because gmail is bouncing them | 15:32 |
lkcl | programmerjake, that's not going to happen | 15:52 |
lkcl | closing as invalid. we cannot request gmail to change their policies. | 15:52 |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 15:53 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 15:53 | |
markos | I had problems with gmail also recently, after 10+ years of using it, I finally migrated my domain to another system and canceled all the google apps used, no regrets | 15:59 |
markos | had enough of stupid gmail policies | 15:59 |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 16:00 | |
*** openpowerbot <openpowerbot!~openpower@94-226-188-34.access.telenet.be> has quit IRC | 16:01 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 16:01 | |
octavius | hostinger seems to be working for me (I'm a newbie with network admin, so rented the email service + website) | 16:08 |
ghostmansd[m] | lol, guys, I know what HEAD is :-) | 16:08 |
programmerjake | uuh, you could at least look at the server logs and see why it bounces...it may be because dmarc and stuff is borked. i'm far from the only one using gmail so exerting some effort to try and make gmail work is imho necessary | 16:08 |
ghostmansd[m] | For sure I'll link to some specific commit | 16:09 |
ghostmansd[m] | That was a funny discussion, sorry I missed it :-) | 16:09 |
lkcl | programmerjake, i look at them regularly: the messages are "you are a bulk sender, you hit a limit, please deliver later" | 16:11 |
lkcl | there is | 16:11 |
lkcl | absolutely nothing | 16:11 |
lkcl | that can | 16:11 |
lkcl | be done | 16:11 |
lkcl | this is gmail policies | 16:11 |
lkcl | we cannot | 16:11 |
lkcl | change | 16:11 |
lkcl | gmail | 16:11 |
lkcl | policies | 16:11 |
*** openpowerbot <openpowerbot!~openpower@94-226-188-34.access.telenet.be> has joined #libre-soc | 16:12 | |
lkcl | octavius, it actually doesn't matter what server you move to: if interacting with people who *use* gmail, mailing lists delivering *to* those people get classified as "bulk deliverers" and automatically get rate-limited | 16:13 |
programmerjake | gmail not working will push lots of people away from libre-soc | 16:13 |
lkcl | to "solve" the problem, everyone *else* (the recipients) has to move to non-gmail | 16:13 |
octavius | Oh, that's horrible | 16:13 |
lkcl | octavius, it is what it is. | 16:13 |
lkcl | we just have to put up with it. | 16:14 |
octavius | indeed | 16:14 |
lkcl | nothing is lost: the server continues to retry until success | 16:14 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has quit IRC | 16:14 | |
lkcl | beyond 7 days is the "problem" point, but that's just the default in mailman. | 16:14 |
lkcl | i can set it much larger if necessary | 16:14 |
lkcl | this is part of the SMTP protocol. | 16:15 |
lkcl | recipient servers are not *required* to accept | 16:15 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.41.33> has joined #libre-soc | 16:15 | |
lkcl | they have to be fully 100% deterministic, but they're perfectly entitled to say "please try later" | 16:15 |
lkcl | what you *cannot* do is say "yeah i received it" and then drop it on the floor | 16:15 |
lkcl | or, you can, but that's up to the recipient server admin :) | 16:16 |
lkcl | programmerjake, the majority of recipients are in fact on gmail. | 16:16 |
lkcl | there's nothing that can be done. | 16:16 |
lkcl | what gmail servers accept - and when - is entirely up to the administrators of gmail servers | 16:17 |
lkcl | not us | 16:17 |
lkcl | it is *completely* beyond our control. | 16:17 |
programmerjake | well, fixing dmarc will likely allow you to send more messages to gmail... | 16:22 |
programmerjake | https://support.google.com/mail/answer/81126 | 16:33 |
*** octavius <octavius!~octavius@217.147.93.209.dyn.plus.net> has quit IRC | 16:48 | |
*** apen9uin <apen9uin!~apen9uin@2600:1005:b01b:a137:d4a4:f676:8921:b8ba> has joined #libre-soc | 16:56 | |
*** apen9uin <apen9uin!~apen9uin@2600:1005:b01b:a137:d4a4:f676:8921:b8ba> has left #libre-soc | 16:56 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.41.33> has quit IRC | 17:11 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.170.194> has joined #libre-soc | 17:12 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.170.194> has quit IRC | 17:40 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has joined #libre-soc | 17:43 | |
*** jevinskie[m] <jevinskie[m]!~jevinskie@2001:470:69fc:105::bb3> has quit IRC | 17:44 | |
*** programmerjake <programmerjake!~programme@2001:470:69fc:105::172f> has quit IRC | 17:44 | |
*** sadoon[m] <sadoon[m]!~sadoonunr@2001:470:69fc:105::1:f0fa> has quit IRC | 17:44 | |
*** EmanuelLoos[m] <EmanuelLoos[m]!~emanuel-l@2001:470:69fc:105::6260> has quit IRC | 17:44 | |
*** psydroid <psydroid!~psydroid@user/psydroid> has quit IRC | 17:44 | |
*** underpantsgnome[ <underpantsgnome[!~tinybronc@2001:470:69fc:105::2:1af6> has quit IRC | 17:44 | |
*** cesar <cesar!~cesar@2001:470:69fc:105::76c> has quit IRC | 17:44 | |
*** programmerjake <programmerjake!~programme@2001:470:69fc:105::172f> has joined #libre-soc | 17:49 | |
*** cesar <cesar!~cesar@2001:470:69fc:105::76c> has joined #libre-soc | 18:05 | |
*** EmanuelLoos[m] <EmanuelLoos[m]!~emanuel-l@2001:470:69fc:105::6260> has joined #libre-soc | 18:05 | |
*** sadoon[m] <sadoon[m]!~sadoonunr@2001:470:69fc:105::1:f0fa> has joined #libre-soc | 18:05 | |
*** jevinskie[m] <jevinskie[m]!~jevinskie@2001:470:69fc:105::bb3> has joined #libre-soc | 18:05 | |
*** psydroid <psydroid!~psydroid@user/psydroid> has joined #libre-soc | 18:05 | |
*** underpantsgnome[ <underpantsgnome[!~tinybronc@2001:470:69fc:105::2:1af6> has joined #libre-soc | 18:05 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has quit IRC | 18:05 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has joined #libre-soc | 18:07 | |
*** ghostmansd <ghostmansd!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has joined #libre-soc | 18:48 | |
*** ghostmansd <ghostmansd!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has quit IRC | 18:51 | |
*** ghostmansd <ghostmansd!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has joined #libre-soc | 18:51 | |
ghostmansd | lkcl, did you reserve some opcodes from minor_4? | 18:52 |
ghostmansd | I'm asking since we moved divmod2du to 58, and I'm thinking about the opcodes that I should choose for shadd/shadduw | 18:52 |
ghostmansd | Also, I don't quite get if Rc plays role there. | 18:52 |
ghostmansd | Should I add this: CR0 (if Rc=1) | 18:52 |
ghostmansd | That is, will there be shadd and shadd. together (Rc=0, Rc=1 respectively)? | 19:17 |
programmerjake | note PO 58 used to be all the load/store extended opcodes ... basically it enabled 64-bit addresses in powerpc v1.0 where the current load/store ops were limited to 32-bit addresses | 19:20 |
programmerjake | https://archive.org/details/BookEEnhancedPowerPCArchitecture | 19:20 |
programmerjake | page 289 (page 303) of that pdf | 19:21 |
programmerjake | so for backwards compatibility, any new opcodes in po 58 need to be able to be disabled so trap-and-emulate works | 19:23 |
ghostmansd | I forgot, how do we fix HTTP erros when launch hdl-dev-repos at talos? | 19:47 |
ghostmansd | And, also, any reason for not using git protocol? | 19:48 |
ghostmansd | make: *** No rule to make target 'mkpinmux'. Stop. | 19:52 |
ghostmansd | All Libre-SOC dev dependenices should now be installed. | 19:52 |
ghostmansd | niiiiice | 19:52 |
ghostmansd | OK found it's caused by gnutls | 19:56 |
programmerjake | git protocol is insecure and can be MITM, hence why i prefer ssh or https | 19:57 |
ghostmansd[m] | Ok, ssh then? | 20:03 |
ghostmansd[m] | Need to setup public key? | 20:03 |
programmerjake | yes, hence why i prefer https for in the scripts and stuff where we expect the general public to be able to run them | 20:04 |
programmerjake | since that way they don't need to ask for their ssh key to be added to the server | 20:05 |
lkcl | ghostmansd[m], they're already in this page - https://libre-soc.org/openpower/sv/draft_opcode_tables/ | 20:28 |
lkcl | urr fer frick's sake, not again. | 20:29 |
ghostmansd | lkcl, one of this seems to be outdated: bit 21 is 0 and 1 for shadd/shadduw respectively, but, in code, bit 21 is for operand sm | 20:34 |
lkcl | 1 sec | 20:35 |
ghostmansd | > urr fer frick's sake, not again | 20:35 |
ghostmansd | What does this refer to? | 20:35 |
lkcl | dealing with 2 things | 20:35 |
ghostmansd | s/in code/in spec/ | 20:35 |
lkcl | ghostmansd, did you follow the exact procedure for creating chroots? | 20:35 |
ghostmansd | I created it so far ago that it's both difficult to recall, and even after then the instruction could've changed | 20:36 |
lkcl | ok, so i had to already fix the scripts (at least twice) to deal with gnutls fuckups | 20:36 |
ghostmansd | But nevermind, it works now, after my chroot changed libcurl3 version | 20:36 |
ghostmansd | Ah yeah, this is likely the reason | 20:37 |
lkcl | which the downstream team were blundering about with, followed by debian picking up at least two or three bugfixes | 20:37 |
lkcl | we had to "pin" the version of libcurl3-gnutls | 20:37 |
ghostmansd | Because I called the hdl-install-repos (or how is it called) on the old chroot | 20:37 |
ghostmansd | Yep | 20:37 |
ghostmansd | That's what I did | 20:37 |
lkcl | Package: * | 20:38 |
lkcl | Pin: release a=buster-backports | 20:38 |
lkcl | Pin-Priority: 100 | 20:38 |
lkcl | Package: libcurl3-gnutls | 20:38 |
lkcl | Pin: version 7.64* | 20:38 |
lkcl | Pin-Priority: 1001 | 20:38 |
ghostmansd | Yeah I managed to install repos | 20:38 |
ghostmansd | Should be fine now | 20:38 |
lkcl | in this file, did you add the above contents? /etc/apt/preferences.d/99buster-backports | 20:38 |
ghostmansd | No, I simply set it via `libcurl3-gnutls=7.64.0-4+deb10u2` | 20:39 |
ghostmansd | sudo apt-install libcurl3-gnutls=7.64.0-4+deb10u2 | 20:39 |
lkcl | https://git.libre-soc.org/?p=dev-env-setup.git;a=blob;f=mk-deb-chroot;h=a02e46ffea4bb2b1297ce3ea8ee9648c788e9fdf;hb=4cfb749e95fa02b065e0d726d75c8692423c652b#l134 | 20:39 |
ghostmansd | In chroot | 20:39 |
lkcl | ok. | 20:39 |
ghostmansd | Yeah as I mentioned I used chroot which I created long ago | 20:39 |
lkcl | well, the "pin" makes sure that no other package goes and tries to change it | 20:39 |
ghostmansd | I hoped it was stable enough :-) | 20:39 |
ghostmansd | And just wanted to update the repos from start | 20:40 |
lkcl | and the low-priority on buster-backports makes damn sure that anything that is from having to bring in the backports-version of qemu does not fuck up anything | 20:40 |
ghostmansd | But apparently things changed over years :-D | 20:40 |
lkcl | then you want - *need* - to either completely start again from scratch | 20:40 |
lkcl | or | 20:40 |
lkcl | you *manually* perform git pull on each repo | 20:40 |
ghostmansd | Including fresh chroot? | 20:41 |
lkcl | don't whatever you do attempt to re-run the devscripts in a pre-existing chroot | 20:41 |
ghostmansd | This is fricking insane! | 20:41 |
lkcl | if it's been created from the latest git checkout of the devscripts it's fine | 20:41 |
lkcl | the scripts are *in no way* intended for the purposes of "updating/refreshing" | 20:41 |
lkcl | they're a "jump-start" | 20:41 |
ghostmansd | Sufficient to proceed now; if there're errors outside of those I introduce, I'll recreate it. | 20:42 |
lkcl | we cannot possibly be expected to create scripts that perform the dual role of "install" as well as "update/refresh" | 20:42 |
ghostmansd | dokkuh? | 20:42 |
lkcl | the jump-start (running from scratch) saves newbies appx 3 *weeks*. | 20:42 |
lkcl | fuck that | 20:42 |
ghostmansd | lol | 20:42 |
lkcl | you are 'avvin a larf | 20:42 |
ghostmansd | knew that! | 20:42 |
ghostmansd | knew the answer in advance | 20:43 |
lkcl | you've tried dohkhaa i take it? | 20:43 |
ghostmansd | Nope, but likely will have too soon. My expectations are not that high, though. | 20:43 |
lkcl | i knew it was bad, but now "how bad" until i tried using it | 20:43 |
lkcl | you can't use a dockahh file created from an earlier version of a project that you used, and move forward to a new version of dockkahh | 20:44 |
ghostmansd | Folks around produce a lot of hype around this, so yeah, I really expect nothing really good there. | 20:44 |
lkcl | not only did they add new "features", they *removed* existing ones. | 20:44 |
ghostmansd | The more thing is hyped the worse it ends up eventually. | 20:44 |
lkcl | basic ones such as chmod and chown - file permission management | 20:44 |
ghostmansd | Kinda makes me surprise whether this kind of sick psychological compensation. | 20:45 |
lkcl | well it's real simple: you just set a hard rule not to change the API | 20:45 |
lkcl | i was faced with a situation where it was absolutely necessary to install *multiple* versions of dockahh simultaneously in order to build *and then use* two distinct packages | 20:46 |
lkcl | it would be frankly irresponsible to inflict the devpackages on people with docker builds | 20:47 |
lkcl | we'd spend more time instructing newbies on precisely and exactly which version of docker they'd not correctly installed.... | 20:47 |
lkcl | can i stop talking about it now, please? :) | 20:47 |
ghostmansd | lol | 20:48 |
ghostmansd | no please continue! | 20:48 |
ghostmansd | :-D | 20:48 |
ghostmansd | just kidding, sure you can | 20:48 |
lkcl | rrrrr :) | 20:48 |
ghostmansd | fuck what did we wrong that much that pywriter depends on nmigen? | 20:48 |
ghostmansd | I mean, what exactly needs the nmigen for a parser?... | 20:49 |
lkcl | used a massively complex piece of code, PowerDecoder2 | 20:49 |
lkcl | once rather than twice | 20:49 |
lkcl | because otherwise it has to be written twice | 20:49 |
lkcl | once in nmigen | 20:49 |
ghostmansd | sigh | 20:49 |
lkcl | and a second time absolutely identical except not in nmigen | 20:49 |
lkcl | ok shadd. | 20:50 |
lkcl | | 0.5|6.10|11.15|16.20| 21 | 22.23 | 24....30 |31| name | Form | | 20:50 |
lkcl | | NN | RT | RA | RB | 0 | itype | 1101 110 |Rc| shadd | X-Form | | 20:50 |
lkcl | which... arse. | 20:51 |
lkcl | let me fix that | 20:51 |
lkcl | use Z23-Form | 20:51 |
ghostmansd | Well that I already got :-) | 20:52 |
ghostmansd | With Z23 | 20:52 |
ghostmansd | I mean, operands are fine as long as they're in Z23 form | 20:52 |
lkcl | | NN | RT | RA | RB | sm0| sm1 0 | 1101 110 |Rc| shadd | X-Form | | 20:52 |
lkcl | | NN | RT | RA | RB | sm0| sm1 1 | 1101 110 |Rc| shadduw | X-Form | | 20:52 |
ghostmansd | Is the error on that page caused by incorrect form? | 20:52 |
ghostmansd | # 1.6.27 Z23-FORM | 20:53 |
ghostmansd | |0 |6 |11 |15 |16 |21 |23 |31 | | 20:53 |
ghostmansd | | PO | RT | RA | RB |sm | XO |Rc | | 20:53 |
lkcl | no. | 20:53 |
lkcl | refresh the page, i've edited it already | 20:53 |
ghostmansd | There's one sm field | 20:53 |
ghostmansd | Not sm0 and sm1 | 20:53 |
lkcl | i know. ignore that | 20:53 |
ghostmansd | ??? | 20:54 |
lkcl | ok minor_22.csv is already converted to pattern... | 20:54 |
*** octavius <octavius!~octavius@217.147.93.209.dyn.plus.net> has joined #libre-soc | 20:54 | |
lkcl | there's no Z23-form already in minor22.csv, can't use that as a template, drat... | 20:54 |
ghostmansd | Sorry, how do you even deduce it's minor 22? | 20:54 |
ghostmansd | Opcode says NN | 20:55 |
lkcl | because i wrote the page https://libre-soc.org/openpower/sv/draft_opcode_tables/ | 20:55 |
ghostmansd | And here https://libre-soc.org/openpower/sv/bitmanip/#index6h1 it says PO | 20:55 |
lkcl | and you can deduce it from maxs being in there | 20:55 |
lkcl | (and absdu etc.) | 20:56 |
lkcl | okaaay we can deduce what's needed from absdu/maxs/cprop | 20:56 |
ghostmansd | Ah, so, the opcodes in the same table go to same minor? | 20:56 |
ghostmansd | Sorry if these questions are noob | 20:57 |
lkcl | in this case (this table), yes. we're cramming (under severe pressure) as much into the EXT022 sandbox as possible | 20:57 |
ghostmansd | For now I used minor_4 | 20:57 |
ghostmansd | 59,ALU,OP_SHADD,RA,RB,RC,RT,NONE,NONE,0,0,ZERO,0,NONE,0,0,0,0,1,0,NONE,0,0,shadd,Z23,,, | 20:57 |
ghostmansd | 60,ALU,OP_SHADD,RA,RB,RC,RT,NONE,NONE,0,0,ZERO,0,NONE,0,0,0,0,1,0,NONE,0,0,shadduw,Z23,,, | 20:57 |
ghostmansd | But I'll move these, np | 20:57 |
ghostmansd | (this is a bit of copy & paste, not yet edited as it should) | 20:57 |
lkcl | yep they're already allocated, sorry i didn't make that clear | 20:57 |
lkcl | 1001001 110Rcav abss | 20:58 |
lkcl | 1001110110-,ALU,OP_ABSDIFF,RA,RB,NONE,RT,NONE,CR0, | 20:58 |
lkcl | mmm.... looking for a good match.... | 20:59 |
lkcl | NNRTRARB0111110 110RcabsdacsX-Form | 20:59 |
lkcl | 0111110110-,ALU,OP_ABSADD,RA,RB,RT,RT,NONE,CR0,0, | 20:59 |
lkcl | 0111110110 | 20:59 |
lkcl | yes. | 20:59 |
lkcl | perfect. | 20:59 |
lkcl | ok that's a start-point | 20:59 |
lkcl | i needed to work out the start-offset (start bit) for minor_22.csv | 21:00 |
lkcl | and it's at bit 21 | 21:00 |
lkcl | so you want | 21:00 |
lkcl | --01101110- for shadd | 21:01 |
lkcl | 0111110110-,ALU,OP_ABSADD,R | 21:01 |
lkcl | yess, that's the right length | 21:01 |
lkcl | and | 21:01 |
lkcl | --11101110- for shadduw | 21:01 |
lkcl | then sm drops into the 1st 2 bits (21-22) as "don't care"s | 21:01 |
ghostmansd | --01101110-,ALU,OP_SHADD,RA,RB,RC,RT,NONE,CR0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC_ONLY,0,0,shadd,Z23,,1,unofficial until submitted and approved/renumbered by the opf isa wg | 21:02 |
ghostmansd | --11101110-,ALU,OP_SHADDUW,RA,RB,RC,RT,NONE,CR0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC_ONLY,0,0,shadduw,Z23,,1,unofficial until submitted and approved/renumbered by the opf isa wg | 21:02 |
lkcl | don't cut/paste the absdac lines, they're overwrite | 21:02 |
ghostmansd | (if it's with Rc) | 21:02 |
lkcl | let me see... | 21:02 |
lkcl | yes, and RC_ONLY (they don't have OE forms) | 21:03 |
ghostmansd | These are not absdac, cooked it from setvl | 21:03 |
ghostmansd | used your opcodes, changed the form and names, and arguments | 21:03 |
lkcl | those have RA,RB,RC,RT,NONE | 21:03 |
lkcl | which... | 21:03 |
ghostmansd | ah yes, forgot about RC | 21:03 |
* lkcl checking Z23-Form.... | 21:03 | |
ghostmansd | Ah no | 21:03 |
ghostmansd | not forgot | 21:03 |
lkcl | nope, no RC. | 21:04 |
lkcl | you copied from minor_4 which has RA/RB/RC/RT | 21:04 |
lkcl | which these don't have | 21:04 |
ghostmansd | Ah fuck | 21:04 |
ghostmansd | It's sm | 21:04 |
ghostmansd | yep, must be none | 21:04 |
lkcl | ehmehmem... if you can pass both of them at a single OP - just OP_SHADD - | 21:05 |
lkcl | then in hardware what we'll do is look at bit 23 | 21:05 |
lkcl | OP_xxxx is purely for hardware, not for the Simulator | 21:05 |
lkcl | and we can't go mad creating hundreds of OP_x's | 21:06 |
ghostmansd | How do I distinguish it in pseudocode then? | 21:06 |
ghostmansd | Ah got it, by name | 21:06 |
ghostmansd | Not OP | 21:06 |
lkcl | pseudocode has nothing to do with OP_... yehhh :) | 21:06 |
ghostmansd | (I meant markdown) | 21:06 |
ghostmansd | --01101110-,ALU,OP_SHADD,RA,RB,NONE,RT,NONE,CR0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC_ONLY,0,0,shadd,Z23,,1,unofficial until submitted and approved/renumbered by the opf isa wg | 21:06 |
ghostmansd | --11101110-,ALU,OP_SHADD,RA,RB,NONE,RT,NONE,CR0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC_ONLY,0,0,shadduw,Z23,,1,unofficial until submitted and approved/renumbered by the opf isa wg | 21:06 |
lkcl | all zeros/defaults from CR0 onwards up to RC_ONLY... good | 21:07 |
lkcl | RA/RB/RT good | 21:07 |
lkcl | Zero good | 21:07 |
lkcl | two "-"s at front for sm, one "-" at end for Rc, yep all good | 21:08 |
ghostmansd | Cool! | 21:08 |
ghostmansd | Thank you for help! | 21:08 |
ghostmansd | Will move to pseudocode | 21:08 |
ghostmansd | Last time I tried pywriter barked on me with some operand, but I think I'll fix it soon | 21:09 |
lkcl | it should be... 2 lines each | 21:09 |
lkcl | oh - feel free to "cheat" | 21:10 |
lkcl | and use a switch/case | 21:10 |
lkcl | to avoid pissing about with ROTL64 and MASK() | 21:10 |
lkcl | i mean, literally spell it out, case (0): RT <- ((RB)[0:XLEN-2] || [0]) + (RA) | 21:11 |
ghostmansd | These already have pseudocode | 21:11 |
ghostmansd | https://libre-soc.org/openpower/sv/bitmanip/#index6h1 | 21:11 |
ghostmansd | shift <- sm & 0x3 # Ensure sm is 2-bit | 21:11 |
ghostmansd | shift <- shift + 1 # Shift is between 1-4 | 21:11 |
ghostmansd | sum[0:63] <- ((RB) << shift) + (RA) # Shift RB, add RA | 21:11 |
ghostmansd | RT <- sum # Result stored in RT | 21:11 |
lkcl | no, they have *c* code assembler | 21:11 |
lkcl | which was originally derived from RV xbitmanip | 21:11 |
lkcl | that is *not* the same as OPF pseudocode | 21:12 |
lkcl | there is no "<<" symbol in the Power ISA pseudocode notation, you have to either do it manually as a switch statement (4 cases) or you have to do it using ROTL64() and MASK() | 21:12 |
ghostmansd | like pcdec? | 21:13 |
lkcl | you can see dsld for how it's done | 21:13 |
lkcl | 1 sec | 21:13 |
ghostmansd | or dsld? | 21:13 |
ghostmansd | ah you got here first | 21:13 |
lkcl | yes. | 21:13 |
ghostmansd | a total cheat | 21:14 |
lkcl | it's... meh. | 21:14 |
ghostmansd | but OK :-) | 21:14 |
ghostmansd | OK will refactor this tomorrow | 21:14 |
ghostmansd | Need to look at it with the fresh head | 21:14 |
lkcl | honestly i feel the switch-case is clearer but the use of ROTL64()/MASK() will be slightly shorter, perhaps | 21:14 |
lkcl | i hear ya | 21:14 |
ghostmansd | it is indeed cleaner | 21:14 |
ghostmansd | because it's obvious | 21:14 |
ghostmansd | (I mean, both are quite simple, but switch kinda places it in your eyes) | 21:15 |
lkcl | yehyeh. | 21:15 |
lkcl | you _should_ be able to do only 5 lines. | 21:15 |
lkcl | switch(sm) | 21:15 |
lkcl | case(0): RT <- | 21:15 |
lkcl | case(1): RT <- | 21:15 |
lkcl | ... | 21:15 |
lkcl | ... | 21:15 |
ghostmansd | Why don't we support shifts? | 21:16 |
ghostmansd | Or, well, can we do it, unlike vanilla ISA? | 21:16 |
lkcl | because doing so requires proposing adding shifts to Section 1.3.2 of the Power ISA | 21:16 |
ghostmansd | I mean, parser can be done to support it | 21:16 |
lkcl | writing up an External RFC | 21:16 |
ghostmansd | Aha, that's also my guess | 21:16 |
lkcl | which then is submitted | 21:16 |
lkcl | reviewed | 21:16 |
ghostmansd | OK, no problems | 21:16 |
lkcl | discussed | 21:16 |
lkcl | qu.... can i stop now? :) | 21:17 |
ghostmansd | let's put switch for these folks | 21:17 |
ghostmansd | they certainly saved themselves from the review, didn't they? | 21:17 |
lkcl | haha | 21:17 |
lkcl | well, it's a seriously-responsible job | 21:17 |
ghostmansd | nah, I understand | 21:18 |
ghostmansd | just kidding | 21:18 |
lkcl | some of them have been working on this document literally 25 years, now | 21:18 |
lkcl | the same people | 21:18 |
ghostmansd | well they won't be surprised by tiny little switches then lol | 21:19 |
*** hl <hl!~hl@user/hl> has quit IRC | 21:19 | |
*** jn <jn!~quassel@user/jn/x-3390946> has quit IRC | 21:19 | |
*** jn <jn!~quassel@2a02:908:1066:b7c0:20d:b9ff:fe49:15fc> has joined #libre-soc | 21:19 | |
*** jn <jn!~quassel@2a02:908:1066:b7c0:20d:b9ff:fe49:15fc> has quit IRC | 21:20 | |
*** jn <jn!~quassel@user/jn/x-3390946> has joined #libre-soc | 21:20 | |
*** hl <hl!~hl@user/hl> has joined #libre-soc | 21:21 | |
*** octavius <octavius!~octavius@217.147.93.209.dyn.plus.net> has quit IRC | 21:24 | |
*** openpowerbot <openpowerbot!~openpower@94-226-188-34.access.telenet.be> has quit IRC | 21:34 | |
*** openpowerbot <openpowerbot!~openpower@94-226-188-34.access.telenet.be> has joined #libre-soc | 21:40 | |
*** jab <jab!~jab@user/jab> has joined #libre-soc | 22:54 | |
lkcl | ghostmansd, sh is already 2-bit | 23:41 |
lkcl | this line can go | 23:42 |
lkcl | + shift <- sm & 0x3 # Ensure sm is 2-bit | 23:42 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!