Friday, 2022-09-30

*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC01:16
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc01:16
*** ghostmansd[m] <ghostmansd[m]!> has quit IRC03:15
*** ghostmansd[m] <ghostmansd[m]!> has joined #libre-soc03:17
lkclprogrammerjake, can you please keep whitespace separate from modifications;a=commitdiff;h=43cbd75c065db505282e3c4b077c08062d4a836008:42
lkclcommit 1: run autopep8, commit with a message "whitespace"08:42
lkclcommit 2: actual modifications08:42
lkcl80% of the changes made in that commit are not relevant to the message in the commit08:43
lkcl-    SVd -= 1 # offset by one08:43
lkcl+    SVd -= 1  # offset by one08:43
lkclwhy was that change made for the purposes of "merge into VA-form"?08:44
lkclit's mis-describing and mis-leading, isn't it?08:48
lkclfunny how things adapt.08:50
lkclmarkos, can i ask you a small change to variance_svp64_real.s?09:41
lkclto use setvl "set from CTR" mode?09:41
lkclrather than explicitly set VL=MAXVL=409:41
lkclset MAXVL=4,VL=MIN(MAXVL,CTR)09:42
markosthe problem are the strides09:42
markosI would have to add a check if stride == number of elements and then I could do a larger VL09:42
markosbut if not then I'll still have to load in groups of 409:43
markosyes, if the src/ref buffers are consecutive, we could indeed increase VL09:43
lkcli mean just the inner loop not the outer one09:43
markosbut it's not a guarrantee09:43
lkclwhich loop did you use CTR for.... 1 sec...09:44
markosthe inner loop09:44
markoswait, maybe I misread what you wrote09:44
lkclok yes, then setvl-with-CTR can be used09:44
markoscould this wait for later? I have to finish a few things by the weekend and then I'll tackle AV1/mp309:45
markosafter that I'd gladly revisit this09:45
lkclmarkos, yes of course09:46
lkcli'm concerned that width is not a multiple of 4 you get data corruption09:47
markosin this function, it's a requirement09:47
markosin all these functions basically09:47
lkclusing the built-in "MIN()" capability it makes that moot09:48
lkclit's still good practice and also means MAXVL=8 or MAXVL=16 is also possible09:48
markosok, I can give it a shot later today, if the tests pass with that change I'll make the commit, if not then I'll have to revisit for later09:49
lkclbut it's also a fundamental part of understanding Cray-style vector loops (rather than treating as/like SIMD)09:49
lkclappreciated. sensible09:49
markosI understand, it could actually go for more, up to 64 (as it does have 64x64 blocks) and it's possible to load both src/ref whole lines -provided I renumber the register offsets with .set at the top with 256 registers, or 32x32 with 128 registers09:51
markosgoing the safe route, MAXVL=32 seems entirely possible09:51
lkclit also means you don't need to do the CTR//409:52
markostrue, I'll have to modify the code a bit09:52
lkclhang on - no let's leave it for now.09:52
lkcli realised you'd have to do a mtctr subtract the...09:53
lkclno, it's really designed for working with sv.bc/ctr mode09:53
lkclit would be easier if you *weren't* using CTR in the inner loop :)09:53
lkcli do actually have a test_sv_branch_ctr but it needs checking/completing.09:54
lkclleave it with me, i will do a mini concept-loop to make sure the combination of setvl-in-CTR-mode and sv.bc/ctr-mode is working09:55
*** ghostmansd <ghostmansd!> has joined #libre-soc10:19
ghostmansdI have an update. I've just got a confirmation that I've been granted a military reprieve. I don't know how long it will last, for obvious reasons. However, that's at least something to work with.10:21
ghostmansdLuke, I've been thinking of several tasks regarding binutils and assembly.10:21
lkclghostmansd, whew - this is good news.10:22
ghostmansd1) Refactor the assembly so that it relies on new fields and so that all instructions are generated from the database (that is, no more "custom" instructions).10:22
ghostmansd2) Refactor binutils assembly according to the same logic.10:22
ghostmansd3) Sync these two worlds, finally.10:23
ghostmansd3) is somewhat in scope of 1) and 2)10:23
lkclyes, sv/trans/ goodbyte10:23
lkcli still can't type it!10:23
lkclg o o d b y e10:23
ghostmansdIf you have other tasks in mind, please let me know.10:24
lkclno it's a good one.10:24
lkclthere's two aspects to it10:25
lkcla) the qualifier-parsing10:25
lkclb) the hand-crafted XO-stuff10:25
ghostmansdI don't have confirmation from employer regarding binutils commits. Considering that all Russian lawyers currently have to care of mobilization issues and risks it imposes for all business units, side questions will take more time than expected.10:25
lkclthe Xo-and-all-the-arguments is probably the easiest first thing10:25
lkclno surprise there10:25
ghostmansdI mean, I got an ack I will have signed papers, but currently all Russian people work on other kind of papers. :-)10:26
ghostmansdWell actually parsing and constructing the arguments is a straightforward thing, but will need much time.10:26
ghostmansdLike we have disassemble() method, we'll have to introduce assemble().10:27
lkclurrr yeah10:27
lkcland associated custom-parsing of target_addr (etc. etc.)10:27
ghostmansdThis will include the parsing, the checks, some quirks like subtracting 1, shifting and masking the addresses, and so on.10:27
ghostmansdYeah, exactly.10:27
ghostmansdAlso, coincidentally, it gives us support for rX/fX/crX syntax.10:28
ghostmansdDo we have some parent task to assign these?10:28
ghostmansdI'm not sure if cavatools fit, but I don't know any other candidates.10:29
lkcli still have to write/agree the MoU for that10:29
ghostmansdThat's OK, I can start works before that.10:29
ghostmansdI'm not sure of RFPs, though.10:30
lkclneed a bug for it anyway so it's not lost.... need to do a cavatools one first10:30
ghostmansdThe France magic trick has drained all the mana, to be honest.10:30
ghostmansdThis option is closed, at least for a while.10:30
ghostmansdI'm not sure when the situation gets stable (likely not soon, maybe in months, but more likely in years).10:31
ghostmansdI've been thinking of having a foreign account, but this is also a fragile option: these can be closed any time.10:32
ghostmansdNow the politics dicate the economy, not vice versa.10:32
ghostmansdEven suicidal options are no longer considered to be suicidal enough to avoid them.10:33
ghostmansdAnyway, I expressed that the main reason I do it is project-related, so I can work until we find some options.10:34
lkclmarkos, ha! it worked!10:38
lkclreally simple10:38
lkcl+            "setvl 1, 0, %d, 0, 1, 1" % maxvl, # VL (and r1) = MIN(CTR,MAXVL=4)10:38
lkcl+            "add 2, 2, 1",            # for fun accumulate r1 (VL) into r210:38
lkcl+            "sv.bc/ctr/all 16, *0, -0x8", # branch, test CTR, reducing by VL10:38
ghostmansdPlease keep in mind that I'll be less available starting Oct 17, though.10:40
ghostmansdlkcl, do you recall the origins of commit 2ff083fd71e9526dfdc5f326649d370a1b0d8754?10:55
ghostmansdWhy do we need to reset the iterable?10:56
*** ghostmansd[m] <ghostmansd[m]!> has quit IRC11:17
*** ghostmansd[m] <ghostmansd[m]!> has joined #libre-soc11:17
lkclah yes.11:31
lkclbecause moves the file-pointer to the end of the file11:32
lkclthen you try to re-enumerate the database and BLAT, it's "empty"11:32
lkcltry doing load() twice, you will instantly see what the problem is11:32
lkcl(the file *isn't* empty... it's just that the file-pointer was left at the *end*)11:57
*** ghostmansd <ghostmansd!> has quit IRC11:58
lkclaaaand of course.... on stdin you *can't* rewind the file back to the beginning ( *fails* on a non-seekable stream)11:58
lkcltherefore the only solution is to take a *full copy* of the file (into BytesIO) and at that point you *can* perform on it11:58
ghostmansd[m]Aaah, so it's for other places which re-use load()?12:01
ghostmansd[m]Not for pysvp64dis itself, right?12:02
lkclyes.  such as "i want to do a debug print on the contents of the assembler listing"12:02
lkcl"i want to enumerate the listing after it's been loaded"12:02
ghostmansd[m]Got it. I totally forgot that we re-use this code.12:02 has to do *multiple* enumerations of the listings12:02
ghostmansd[m]And I really stumbled like, "but why?"12:02
ghostmansd[m]Aha, makes perfect sense now :-)12:03
*** octavius <octavius!> has joined #libre-soc12:53
programmerjakelkcl: for that commit i didn't realize it contained whitespace modifications, that wasn't intended. i comitted kinda in a hurry because i realized i broke assembling pcdec. without that commit, sorry14:09
programmerjakethough everything using pcdec. is mostly broken rn anyway while i'm rewriting it14:09
lkclprogrammerjake, wark-wark :)14:37
lkclfascinated to see how this turns out14:37
*** ghostmansd[m] <ghostmansd[m]!> has quit IRC15:49
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc15:49
*** octavius <octavius!> has quit IRC21:53

Generated by 2.17.1 by Marius Gedminas - find it at!