Tuesday, 2021-08-31

lkclghostmansd, installed "apt-get install python", why the hell it wasn't already there i have no idea01:35
lkclalso it's extremely important - critically important - not to do *anything* other than the XLEN change01:36
lkclno helpers, no extra routines, absolutely nothing.01:37
lkcljust01:37
lkclXLEN01:37
lkclnothing01:37
lkclelse01:37
lkclexplained why, here https://bugs.libre-soc.org/show_bug.cgi?id=671#c5201:37
toshywoshysorry my mistake, we have some new channels linked to working groups which are invite only, the main channel is free/open/libre02:00
toshywoshyI am correcting the channel mode02:00
toshywoshyok, the channel should be back to normal02:08
programmerjakelkcl ghostmansd I tested test_pipe_caller_long.py on my system, and it never used more than 3-400MB of ram, so I have no clue how your getting 4GB...maybe you used nose or similar to run 10 copies in parallel?05:48
programmerjakeonly thing I can think of that would hit a 4GB ram limit pretty easily is *building* power-instruction-analyzer with a highly multi-core system...running 12 instances of rustc at once is entirely expected to need a bit of ram05:51
programmerjakesorry that doesn't help much...06:13
programmerjakelkcl if you can reproduce the ram usage, can you rebuild power-instruction-analyzer in debug mode (temporarily remove --release from pia's install script in pia's git repo), then run the test under valgrind massif? thanks!06:19
programmerjakeif you like, upload valgrind's output file to jacob-build-server, that way you won't have to worry about server disk space06:22
ghostmansdWhat about adding extra variables?07:54
ghostmansdIf we don't add new routines or helpers, can we add variables?07:55
programmerjakeif the variables are local variables I think it's probably fine, since someone reading the spec wouldn't have to reference some other page of the pdf to figure out what it means...iirc I did that to the div/mod pseudocode08:17
programmerjakeif they're external variables, we should avoid that as much as possible imho08:18
programmerjakeexternal/global variables08:19
ghostmansdOk, got it. I suggest to move to it in the next iteration, concentrating on mechanical replacements for now.08:41
ghostmansdI don't get why having a variable which equals XLEN/2 in multiple places is better than having a global HALF_XLEN, but OK.08:42
ghostmansdPerhaps it's better because spec readers won't have to dig what the heck HALF_XLEN is, though the name seems to be quite self-explanatory.08:43
ghostmansdSo far, there are several things which are used extremely often:08:52
ghostmansdXLEN_WORD_LO := 0:((XLEN/2)-1)08:52
ghostmansdXLEN_WORD_HI := (XLEN/2):XLEN-108:52
ghostmansdXLEN_DOUBLE := XLEN*208:52
ghostmansd-pcprogrammerjake: I tried running $(python3 src/soc/fu/mul/test/test_pipe_caller_long.py) on talos, but end up with "ModuleNotFoundError: No module named 'soc'". Did I miss some step?08:53
ghostmansd-pc(I only executed (dev-env-setup/hdl-dev-repos-virtualenv) so far, I lack administrative privileges on talos, so I'm kinda unsure what steps must be done there on my side.08:54
programmerjakeseems like you missed running `python3 setup.py develop` in soc/09:03
programmerjake...that should be in the scripts though...09:04
lkclghostmansd, yes new variables is perfect... but only in the pseudocode itself.  repeated multiple times is also perfectly fine see...10:56
lkclhttps://bugs.libre-soc.org/show_bug.cgi?id=671#c5010:56
lkcl    e = XLEN/2-110:57
lkcl    do i = 0 to 110:57
lkcl        s = i*XLEN/210:57
lkclkeep them *short*10:57
lkclif those are added to the namespace, we have to provide, as described in comment 50, a full, complete, absolute and documented justification and explanation10:57
lkclfollowed by a formal Request For Change submission to the OpenPOWER FOundation ISA WG10:58
lkclwe're going to get hammered by questions10:58
lkclwhat's this for10:58
lkclwhat's this for10:58
lkclwhat's the justification for this10:58
lkclwhat's this for10:58
lkclwhat's this for10:58
lkclthe less changes the less questions asked10:59
lkclghostmansd: yes, because readers of the spec, as explained here https://bugs.libre-soc.org/show_bug.cgi?id=671#c2111:00
lkclwhich you can see links to additional IRC logs11:00
lkclthe other thing is: i've done these kinds of massive code-morphs before (for many years)11:45
lkcli learned the lesson the hard way that the changes need to be done in "stratification layers"11:45
lkcltoshywoshy: thanks :)11:51
Las[m]lkcl: Does working an ASIC as described on https://libre-soc.org/HDL_workflow/coriolis2/ actually work?12:46
Las[m]Is this the "final step" of the building process for the SoC?12:46
lkclLas[m], yes12:47
lkclpretty much12:47
Las[m]Thanks, I'll aim to get this working then12:47
lkclthat'd be really good12:47
lkclwere you able to run the alliance-check-toolkit "go.sh" tests?12:48
Las[m]Nope, not yet.12:48
lkclsome of those are known not to pass, but don't worry about them12:48
Las[m]lkcl: It's not immediately obvious to me how the code from the `soc` repository is used here12:48
lkclthey shouldn't consume vast resources, unlike ls18012:48
lkclas far as coriolis2 running with the soclayout repository contents, it isn't.12:49
lkclthe chain is:12:49
lkclbase-level dependencies nmigen yosys etc.12:49
lkclsoc dependencies: nmutil c4m-jtag ieee754fpu etc.12:50
lkcl*ASIC* dependencies for turning nmigen HDL into verilog, linked with some peripherals: litex soc pinmux12:50
lkclASIC dependencies for creating GDS-II files: FlexLib-FreePDK45, nsxlib, and soclayout12:51
lkclwhere the output from "ASIC dependencies" was committed as PRE-BUILT and complete verilog into soclayout12:52
Las[m]ahhh12:52
lkclit's a LARGE chain12:52
lkcleach step in the chain increases the size of the files by literally an order of magnitude12:52
Las[m]So I actually shouldn't depend on the soclayout repository if possible, since it's just the committed build output of another process12:52
lkclbut the key that you may be missing is that the... yes, exactly12:53
lkclthere is no need to package soclayout, but *other people* will want to git clone it in order to build it.... with the nix-packaged-coriolis212:53
lkclhowever given that alliance-check-toolkit is an actual test suite (as well as containing nsxlib Cell Libraries) it would be sensible to package that12:54
lkclarg i forgot, sorry, FlexLib-FreePDK45 should be on the list of nix-packages12:54
lkclbecause it's a dependency of soclayout12:54
lkclthis is one of the releases https://gitlab.com/Chips4Makers/c4m-pdk-freepdk45/-/releases12:55
Las[m]Thanks.12:55
* lkcl thinks....12:56
lkclyep.12:56
lkclif you wanted to actually try soclayout ls180 building, for god's sake don't do it on a machine with anything less than 32 GB of RAM, and don't for goodness sake try to run it in a qemu or other type of VM12:57
lkclnot unless you want to stress-test your hardware :)12:57
Las[m]Yeah I'll keep that in mind. This is a huge process honestly, but hopefully by packaging it in Nix it will become easier to build for the average layman user.12:59
lkclLas[m], btw, if you examine alliance-check-toolkit go.sh you should be able to track down one single "Makefile" to try out13:00
lkclyehyeh, it's a massive project, only going to get bigger13:00
lkclVLSI development has been one of the top supercomputer uses since the 1980s.13:00
lkclprogrammerjake: the idea was to not run (at all) an external unauthorised uncontrolled script, and to have the actual commands explicitly in dev-env-setup13:36
lkcli've removed the use of the completely uncontrolled repository (debian salsa) which should never have been in there in the first place13:37
lkcl(i didn't realise it was)13:37
lkcland i've taken a copy of the uncontrolled external script and placed its contents explicitly into dev-env-setup13:37
lkclif debian salsa ever got hacked, it's completely outside of our control and we can do absolutely nothing about it13:38
lkclor if it gets taken offline13:38
lkclor if the account is terminated13:38
lkclthis is what i expected the script to look like13:39
lkclhttps://git.libre-soc.org/?p=dev-env-setup.git;a=commitdiff;h=63eab39255b833c09dd764d37b7e2570a057755d13:39
lkclnot13:39
lkcl"run a completely external script from an uncontrolled source"13:39
lkclplease can you check its contents and make sure that it's functional13:39
lkcli've a version of pia that is functional here and i don't want to replace it in case it breaks.13:40
*** farosas_ is now known as farosas15:22
programmerjakelkcl: yeah, that looks correct...you can copy the old .so file and reinstall it if pia is broken...though it works just fine on my system17:46
programmerjakecould also copy the old wheel, that will probably be more reliable18:25
lkclok that's good to know19:00
lkclghostmansd, ^ the pia install script in dev-env-setup should be fine, as always do check you're happy with the contents before running it19:01
lkcl(the reason programmerjake i copied the contents into dev-env-setup, you can see how "easy" it was to say that statement?)19:02
lkcl(if it was an external script, i couldn't say that. i'd have to say, "first, get dev-env-setup.  then, get this external untrusted script manually by cloning an arbitrary repo.  then, check both, and *only then* run the first one")19:03
lkcltoshywoshy, openpowerbot went to sleep again on us, last week, and i didn't notice :)19:10
lkclinterestingly it's logged in to both IRC channels, just not communicating back to mattermost19:10
programmerjakewell, technically debian salsa is far from the only "external" source, there's pip, github (nmigen and others), rustup, crates.io, etc.19:13
programmerjakethe difference is that we actually control the Kazan organization on Debian salsa, whereas we don't control most of the others19:14
lkcli know. the less of that the better.  debian's packaging is ring-of-trust protected, so can be trusted not to have been compromised. the rest (including salsa) cannot.19:15
lkclunfortunately after taking a close look at nix last week, it's a single-point-of-failure team using a single github account and zero GPG-signing of any kind19:16
lkclsymbiflow's standard install scripts introduce conda *and* "wget xyz.google.com | bash" (!!!!)19:17
lkcli've assigned Veera[m] the task of creating a dev-env-setup script which most definitely doesn't do any of that19:18
lkclghostmansd, programmerjake: after the XLEN addition is done 100% we'll close that bugreport (it's single-purpose and has got up to 50 comments in a veery short timeframe)19:43
lkcland then move on to an "evaluation" phase19:44
programmerjakek19:44
ghostmansdYou mean task 671?19:44
lkclyes19:46
ghostmansdlkcl: can I update pia-install with actual rust downloading?19:46
ghostmansd"rustup not found"19:46
lkclghostmansd: ask programmerjake about that one19:46
ghostmansdprogrammerjake? :-)19:47
ghostmansdI mean, I see the disclaimer is shown by the script19:47
ghostmansdBy why not download directly?19:47
ghostmansdFWIW, does it need root permissions?19:48
ghostmansdI'm downloading it now, but not sure whether I can install it :-)19:49
programmerjakethe reason to get rustup instead of downloading rustc directly is that it makes it easy to follow upstream rust -- needed since power-instruction-analyzer depends on some very new features19:51
ghostmansdlkcl: I don't see divXXX patches in master... Did you push them?19:52
programmerjakein fact, it will shortly depend on a feature in rustc I wrote that will land in upstream rustc any hour now...19:52
programmerjakehttps://github.com/rust-lang/rust/pull/8835019:52
programmerjakeit's currently in rustc's auto-build/merge queue: https://bors.rust-lang.org/queue/rust19:54
ghostmansdlkcl: never mind, got lost on the way to the lake19:54
ghostmansdlkcl: I pushed popcntw into master, looks nice19:55
ghostmansdthanks for updating it, I think I'll go after others once all are updated for XLEN19:56
ghostmansdAh, ok, already pushed19:57
ghostmansdOk, I kinda get why you dislike branches, lol19:57
ghostmansdIt looks like all is moved from xlen branch, right?19:59
ghostmansdBCD: should we deal with "as many 12 bits which can fit"?20:00
programmerjakeI think elwidth=8 bcd<->dpd should be an illegal instruction20:05
mikolajwlkcl: this looks like a good starter bug, may I assign it to myself?: https://bugs.libre-soc.org/show_bug.cgi?id=66520:07
ghostmansd-pcprogrammerjake: yes, quite likely, but tibetan monastery is also an option, as we discussed :-)20:11
ghostmansd-pclkcl: pia-install "/usr/bin/python3: No module named pip"20:11
ghostmansd-pclkcl: what is mode_is_64bit and how should it look in the future?20:12
lkclmode_is_64bit is the contents of MSR.64b field20:15
lkclmikolajw, sure, that'd be great, that one. it's quite involved, but ultimately quite simple20:16
lkclthe actual syntax output needed is a ridiculously short subset of c20:16
lkclone thing: don't worry about anything over 64 bit in size, but plan for it as a possibility by using a #define, and macros... i'll outline it on the bugreport20:17
ghostmansd-pcsay we have this: `if (mode_is_64bit) then M <- 0 else M <- 32`. M is then used upon indexing.20:19
ghostmansd-pcbranch.mdwn20:20
lkclyes.20:20
lkclah don't touch branches20:20
programmerjake<ghostmansd-pc> "lkcl: pia-install "/usr/bin/..." <- wow, no pip?! did you install the python3-pip package?20:20
lkclall branches will not be subject to elwidth overrides20:20
ghostmansd-pclkcl: aha, OK20:20
lkclsomething really weird is going on with the talos2 workstation20:20
lkcli'll deal with that.20:21
lkclhave to back down to debian/stable first20:21
ghostmansd-pclkcl: you do run tests on talos, right? I mean, I'm not the first one?20:21
programmerjakeI think we should just leave the talos2 at debian stable...20:21
lkclfrickin frickin frick.20:22
lkclprogrammerjake, that's not possible20:22
ghostmansd-pcall I need is some quiet and simple place to check tests20:22
programmerjakemakes installing new packages waay easier since you don't have to worry about replacing libc and a whole pile of other junk20:22
lkclprogrammerjake: i know. too late.20:23
lkclghostmansd-pc: on a shared server, this isn't always how we want it to be20:23
programmerjakemaybe just reinstall debian?20:23
lkclghostmansd-pc, you'll need to install pip3 locally from source20:23
lkclno, it was a massive hassle last time20:23
lkclthe machine's *remotely* booted20:23
programmerjakeyou can use ensurepip, which comes with python by default20:23
ghostmansd-pclkcl: SRR and MSR, do they need to be adopted (system.mdwn)?20:23
lkclthe only possible way i could get any OS of any kind installed was to upload a netboot "latest" ISO image.... *over a network connection*... to the back-end KVM management console20:24
lkclghostmansd-pc: no20:24
ghostmansd-pcok, that's what I thought20:24
lkclfixedshift.mdwn needs doing20:24
lkclfixedstore.mdwn needs doing20:25
ghostmansd-pcbcd.mdwn?20:25
lkclyes20:25
lkclhilariously20:25
programmerjakeghostmansd a better alternative might be to just create a virtualenv and install libre-soc's python stuff in there, use the venv python module to do that20:25
ghostmansd-pcdo we have some scripts intended to be used on talos for a new developer?20:26
ghostmansd-pcI already went through the process on debian VM, but I had admin permissions there20:26
lkclvirtualenv installed20:27
lkclghostmansd-pc, well, you do, but i'd prefer if you didn't use them unless absolutely absolutely necessary.20:27
programmerjakelkcl: use the venv module, it works better...20:27
lkclprogrammerjake: ack.20:28
programmerjakepython3 -m venv ....20:28
ghostmansd-pcI'm OK with whatever alternative plan we have20:28
ghostmansd-pcall I need is:20:29
ghostmansd-pc1) being able to pull the code into soc and openpower-isa (plus checkout branches)20:29
ghostmansd-pc2) running tests which are present in both20:29
lkclghostmansd-pc, this is a completely untested codepath.20:29
lkclactually... it's not20:29
ghostmansd-pcideally I'd think of some jenkins or whatever, but I'd be happy even if I have to run it manually20:29
lkcltobias has a TALOS-II workstation at home20:29
programmerjakewe will need to fix the talos's apt eventually, since I'll need clang which iirc requires updating libc6 to install by default20:30
lkclwell, the chroot dev-env-setup script _should_ work20:31
ghostmansd-pcFor now, I'll proceed with fixedshift.mdwn, but anyway, being able to test is extremely important to me. I don't want lkcl or anyone else doing all tests for me.20:31
lkcli've stopped it from editing //etc/fstab20:31
programmerjakeghostmansd-pc: iirc we have gitlab ci setup instead of jenkins, we're stalled on finishing off the setup though20:31
lkclghostmansd-pc, bear in mind i have to review and run the unit tests every single time.20:31
lkclprogrammerjake: there's nothing stopping that from going ahead20:32
programmerjakeumm, iirc there was some email redirecting stuff and git storage issues...20:32
lkclno, no email redirection involved.20:33
ghostmansd-pclkcl: yes, that's what I'm talking about as well. Ideally I'd commit the code in the branch, pull it on talos, test it and merge into master.20:33
lkcli explained in the bugreport: you can use 10.6.0.1 as an SMTP gateway and install ssmtpd.20:33
lkclghostmansd-pc, ack.20:33
ghostmansd-pcThis way I'd not bother anyone. Anyway, setting the environment is, well, problematic. :-)20:34
lkclohh yeah, i have no frickin idea why ssh-agent won't play nice.20:34
lkclthe "workaround" is to use rsync *back* to your local machine (sigh)20:34
lkclrsync -HPavz20:34
ghostmansd-pcNeither me. But hey, I'm OK with push/pull on both sides, or rsync, or even scp for poor man's needs.20:35
lkcli've followed all the tutorials on ssh-agent.20:35
lkclscript it, then it's mundane / rote20:35
ghostmansd-pcVirtually _any_ option to be able test is better than nothing.20:35
lkcladded the relevant thing on the server, added the relevant thing on the client configs. sigh20:35
ghostmansd-pc*to be able to test20:35
ghostmansd-pcWell, I also added options to ssh config, and still no luck. But hey, this is not that much of a problem. The real problem is environment. Ideally we should come up with some dev-env-setup-for-talos equivalent.20:37
ghostmansd-pcPerhaps a similar HDL workflow page.20:38
ghostmansd-pcCI is better, though, as long as it supports branches.20:38
lkclideally there should be "if grep /etc/debian_setup ppc64" or something20:39
ghostmansd-pclkcl: I'm not touching MASK32, ROTL32 and others, as we discussed.20:39
ghostmansd-pcStill I think at least renaming these would be unavoidable.20:40
lkclnope, not at this point20:40
ghostmansd-pcNo, I don't mean now.20:40
ghostmansd-pcI mean, eventually.20:40
lkclngggh yeah20:40
lkclyehyeh got it20:40
lkcltwo possibilities there: change their meaning for SVP64 (which gets hellishly confusing) or change their name20:41
lkclthat's what will require some justification and discussion. all of which will need to be documented as part of an official ISA Spec Request for Change20:41
ghostmansd-pcthe name change is the best option imho; like EXTS, there might be ROTL et al.20:43
ghostmansd-pclkcl: rlwnm is an interesting one; should `n` always be 4 bits?20:45
ghostmansd-pcBTW, in specs we have not ROTL32, but ROTL + 32 in lowercase20:46
ghostmansd-pcso it's kinda _simpler_ to change, I think; it basically tells not to use ROTL32(arg), but ROTL(32, arg)...20:47
lkclghostmansd-pc, 1 sec let me take a look.  that's 2 questions20:47
ghostmansd-pcpage 100 in rev. C20:47
lkclha, got it20:47
lkcl63-59+120:48
lkcl5 bits20:48
lkclyou forgot the +1, counting inclusive20:48
lkclahh i see how it ended up ROTL32, it's because cut/paste from pdftotxt that was a subscript :)20:48
lkcldoh20:48
lkclyes, absolutely, go for it, make it ROTL(width, input, rotamount)20:49
ghostmansd-pcyou mean, adjusting helpers?20:49
lkclthat's actually a bug in the pseudocode20:49
lkclyes.20:49
lkcl1 sec... where's section 1.3.2....20:49
lkclchapter 1, p720:50
lkclahno.20:50
ghostmansd-pcthat said... we have EXT64 as function in both spec and mdwn20:50
lkclright.20:50
lkclthey do actually have ROTLsubscript32 and ROTLsubscript3220:50
lkclso leave those for now as ROTL32 and ROTL6420:50
lkclyes, that _was_ unavoidable20:51
ghostmansd-pcwhy haven't they used EXTS? it looks like it should do the trick?20:51
lkclbecause for EXTS64, that specifies the *source* width (if i recall correctly)20:51
ghostmansd-pcI mean, it'd just propagated the sign, wouldn't it?20:51
lkclEXTS _should_ behave by detecting the source and dest width20:51
lkclas in: "take the MSB of the source at the width of the source and jam it up in all the upper bits"20:52
lkclhowever... ahh, p108 v3.0B20:52
lkclthey used something that's just simply not listed in the spec20:53
lkclso it got added despite not being listed on p7 v3.0C20:53
lkclsorry p108 v3.0C20:53
ghostmansd-pcOK, I'll keep ROTL32 as is for now20:54
ghostmansd-pcyet another question: is our parser case-insensitive?20:54
ghostmansd-pc* rldicl RA,RS,SH,MB (Rc=0)20:55
ghostmansd-pcb <- mb[5] || mb[0:4]20:55
lkclno it is not.20:55
lkclthose are DEFINITELY different fields.  see section 1.720:56
lkclp16-2220:56
lkcland also fields.txt20:56
ghostmansd-pcah, OK20:56
ghostmansd-pcthis won't be changed20:57
lkclhttps://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=openpower/isatables/fields.text;h=f1ba11efb1372c13d1a24337ccd9f53bd0003c74;hb=970dc264166ef3ed184ae60fbe91d43d9c4d350e20:57
lkclnoooo definitely not20:57
ghostmansd-pcOK, got it20:57
lkclbasically in the upgrade some time around 2000 from 32-bit to 64-bit20:57
lkclthey realised they had to shoe-horn an extra bit in somehow20:58
lkclso the field named "SH" is 6 bits...20:58
lkclbut it's *constructed* from the contents of bits 16-20 and bit 3020:58
lkcland that field is called "sh"20:59
lkclso it's "SH" in the assembler but "sh" in the bitfields20:59
lkclyeah, i know :)20:59
lkclPowerDecoder actually successfully takes care of that for you20:59
lkclbut in this particular case, for some bizarre unknown reason, the spec writers wanted "n" spelled out21:00
lkclprobably because people kept constructing it wrong21:00
ghostmansd-pcI don't quite get it21:03
ghostmansd-pcI mean, I understand SH/sh, and MB/mb21:03
lkclbut look at the bit-order, how they're constructed21:04
ghostmansd-pcBut this: (RB)[59:63], in rlwnm21:04
lkclcan _you_ remember which one is MSB0?21:04
ghostmansd-pcshould this be converted? and, if yes, should it depend on XLEN?21:04
lkclyes.21:04
lkclat least n <- RB(XLEN-5:XLEN-1)21:05
ghostmansd-pcand what the dependency would be? does n scales appropriately?21:05
lkclwhen we do actual XLEN=32-bit that'll...21:06
lkclactually because it's a ROTL it doesn't technically matter if it's rotated "multiple times"21:06
lkclif n (the number) is 3121:06
lkcland the elwidth is 821:06
lkclthe *actual* rotation would be only 721:06
lkcli.e. 31 MODULO 821:06
lkclbut let's not dwell on that quite just yet21:07
lkcldo make a mental note, though21:07
ghostmansd-pcthe specs talk of low-order 32 bits21:07
ghostmansd-pcso if it's _always_ low-order 32 bits, that's OK21:08
ghostmansd-pcI mean RB(XLEN-5:XLEN-1) would be OK21:08
lkclyes. this will be another one that will need to be redefined as "low-order half-of-the-register-width"21:08
lkclghostmansd-pc: that's what i just went through.21:08
ghostmansd-pcso this "32 bits" again implies "32 since 64 in register, feel free to adjust"?21:09
lkclROTL32, if "re-tasked" to perform ROTL8, would not actually care if its input shift-amount was 7, 15, 2*8+7, 3*8+7, 4*8+7 ....21:09
lkclyes... but not in the "official" spec.21:09
lkclthe behaviour when XLEN=64 must be "exactly the behaviour of Official Power ISA v3.0B"21:09
lkclthe behaviour when XLEN=32/16/8 has to be, "as *WE* define it, in such a way that it's not completely insane"21:10
lkcl(or totally useless)21:10
ghostmansd-pcOK, got it21:10
ghostmansd-pcbut what should we do for now? should we define it already?21:10
lkclit's a subtle difference21:10
ghostmansd-pcor let's for now stick to 32?21:10
ghostmansd-pcdoh, 521:11
lkclyes.21:11
ghostmansd-pcwell, you know what I mean21:11
lkclthat's explained above (twice)21:11
lkcln will always remain at RB(XLEN-5:XLEN-1)21:11
lkclbecause of special properties of ROTATE21:11
lkclthe bits are being *ROTATED* here21:12
lkclif the rotate hardware is 8 bits wied21:12
lkcland you try to rotate 7 times21:12
lkclit's identical - absolutely identical - to rotating 7+8 times21:12
lkclor 7+8*2 times21:12
lkclor 7+8*3 times21:12
ghostmansd-pcyou mean that we will change the ROTL only?21:12
lkclyes.21:12
ghostmansd-pcbut this is still confusing as hell21:12
lkclok let's go through it21:13
lkcllet's define XLEN=821:13
ghostmansd-pcno, I understand what you mean21:13
lkclROTL will then be an 8-bit rotate21:13
ghostmansd-pcI'm talking of different thing21:13
lkcl... ok21:13
lkclgo on21:13
lkclimportant to establish the discrepancy in understanding here21:13
ghostmansd-pcif `n` is (2 ^ appropriate_power), this is cleaner21:14
lkclah, yes.21:14
ghostmansd-pcthat's what I mean21:14
lkclbut if you think through the pseudocode, it would require a batch of extra code21:14
ghostmansd-pcI mean, I understand it'd work regardless due to ROTATE21:14
lkcland i was thinking ahead of the possibility of being hit by massive amounts of questions21:15
ghostmansd-pcbut still having an appropriate power of 2 looks a _bit_ cleaner21:15
lkclwhat does this do21:15
lkclwhy was this change made21:15
lkcletc. etc.21:15
lkcland if we can minimise the *changes* to the spec - even if they're "confusing" - i am predicting we'll have an easier time21:15
ghostmansd-pcif I'd read the spec, I'd find this highly confusing :-)21:16
lkcli am thinking "Politics Of People Behind The OPF ISA WG"21:16
lkclas in: we have been warned (in advance) that there are some people who believe that we are trying to play stupid political games21:16
ghostmansd-pcbecause a power of two makes things clearer, it's just "since XLEN=64, you take as many bits as XLEN/2 takes"21:17
lkclyehyeh21:17
ghostmansd-pcyehyeh21:17
lkcllol21:17
ghostmansd-pc"and get 32"21:17
lkcli had to add pseudocode that did log2(N)21:17
lkclit's not pretty21:17
ghostmansd-pcOK, for now I've pushed some simple fixedshift.mdwn changes into xlen21:18
lkclexcellent21:18
ghostmansd-pcI hope to continue tomorrow21:18
ghostmansd-pcbb21:18
lkclack. thx ghostmansd-pc21:18
lkclok all the fixedshift.mdwn cut over21:28
lkclrest.21:28
lkclmeeting 40 mins21:28
lkcltest_issuer.py running for the 9th time in 2 days... :)21:28
programmerjakeisn't the meeting in 1h8m and not 8m?21:52
lkclyes, doh22:07
programmerjakemeeting in 10min22:50

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