*** jab <jab!~jab@user/jab> has quit IRC | 02:22 | |
*** markos <markos!~Konstanti@static062038151250.dsl.hol.gr> has quit IRC | 02:30 | |
*** markos <markos!~Konstanti@static062038151250.dsl.hol.gr> has joined #libre-soc | 02:42 | |
*** lxo <lxo!~lxo@linux-libre.fsfla.org> has quit IRC | 03:31 | |
*** lxo <lxo!~lxo@linux-libre.fsfla.org> has joined #libre-soc | 04:01 | |
*** psydroid <psydroid!~psydroid@user/psydroid> has quit IRC | 04:13 | |
*** jevinskie[m] <jevinskie[m]!~jevinskie@2001:470:69fc:105::bb3> has quit IRC | 04:13 | |
*** psydroid <psydroid!~psydroid@user/psydroid> has joined #libre-soc | 04:29 | |
*** jevinskie[m] <jevinskie[m]!~jevinskie@2001:470:69fc:105::bb3> has joined #libre-soc | 04:33 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has quit IRC | 06:01 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.40.122> has joined #libre-soc | 06:02 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.40.122> has quit IRC | 06:30 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has joined #libre-soc | 06:31 | |
programmerjake | naming nitpick -- shadduw should be named shaddwu, just like mulhwu has the u after the w, though otoh the PowerISA is pretty inconsistent for ud vs. du | 06:59 |
---|---|---|
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has quit IRC | 07:47 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has joined #libre-soc | 08:12 | |
*** markos <markos!~Konstanti@static062038151250.dsl.hol.gr> has quit IRC | 08:16 | |
*** markos <markos!~Konstanti@static062038151250.dsl.hol.gr> has joined #libre-soc | 08:16 | |
*** toshywoshy <toshywoshy!~toshywosh@ptr-377wf33o3bnthuddmycb.18120a2.ip6.access.telenet.be> has quit IRC | 11:34 | |
*** toshywoshy <toshywoshy!~toshywosh@ptr-377wf33o3bnthuddmycb.18120a2.ip6.access.telenet.be> has joined #libre-soc | 11:34 | |
*** octavius <octavius!~octavius@239.147.93.209.dyn.plus.net> has joined #libre-soc | 12:46 | |
*** lx0 <lx0!~lxo@linux-libre.fsfla.org> has joined #libre-soc | 13:05 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has quit IRC | 13:16 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.54.98> has joined #libre-soc | 13:16 | |
*** lx0 <lx0!~lxo@linux-libre.fsfla.org> has quit IRC | 13:50 | |
*** octavius <octavius!~octavius@239.147.93.209.dyn.plus.net> has quit IRC | 15:03 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.54.98> has quit IRC | 16:11 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.54.103> has joined #libre-soc | 16:13 | |
*** lxo <lxo!~lxo@linux-libre.fsfla.org> has quit IRC | 16:17 | |
*** lxo <lxo!~lxo@linux-libre.fsfla.org> has joined #libre-soc | 16:18 | |
markos | do we have a meeting today? I know tomorrow's canceled, but not sure about today :) | 17:36 |
ghostmansd[m] | lkcl, a little hint: if I write about something that I debugged for 3 hours, it means I already mostly made it work. | 17:39 |
ghostmansd[m] | So, I will revert the revert once it transits from "mostly" to "fully". | 17:39 |
*** ghostmansd <ghostmansd!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has joined #libre-soc | 17:48 | |
*** octavius <octavius!~octavius@239.147.93.209.dyn.plus.net> has joined #libre-soc | 18:18 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.54.103> has quit IRC | 18:23 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has joined #libre-soc | 18:23 | |
*** jab <jab!~jab@user/jab> has joined #libre-soc | 18:29 | |
*** jab <jab!~jab@user/jab> has joined #libre-soc | 18:35 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has quit IRC | 19:07 | |
octavius | ghostmansd, I remember libreriscv access was revoked a few times, due to "sub-repo git stuff" (I don't know the details, but files were automatically pulled in from another repo) | 19:35 |
octavius | As for the commitdiff you posted in c#12 of bug #968, I don't understand the code | 19:36 |
ghostmansd | Ah, it's simple | 19:36 |
ghostmansd | All these arguments we have, they have fixed width. | 19:36 |
octavius | Or more like, I don't understand how it relates to instructions | 19:36 |
ghostmansd | And sm is 2-bit one. | 19:36 |
ghostmansd | If you add 1 to sm=0x3, it will overflow. | 19:37 |
ghostmansd | And be turned into 0. | 19:37 |
ghostmansd | Just like if you added 1 to UINT32_MAX, just treat it like UINT2_MAX. :-) | 19:37 |
octavius | But the pseudo-code is not storing sm+1 into sm, the intemediary has more bits (I assume, probably wrong assumption) | 19:37 |
ghostmansd | The correct term would be wraparound, I think. | 19:38 |
ghostmansd | Yes, it doesn't. :-) | 19:38 |
ghostmansd | If we add two integers, our code checks the width. | 19:38 |
ghostmansd | If one of the addends is a simple Python integer (or constant, if we're talking of pseudocode), then it gets the same width. | 19:39 |
ghostmansd | So, sm + 1 is... | 19:39 |
octavius | When I see variables being defined in pseudocode, there's no clear indication as to the size of the variable | 19:39 |
ghostmansd | sm=SelectableInt(sm, 2) | 19:39 |
octavius | for example "shift <- sm + 1" | 19:39 |
ghostmansd | 1 => SelectableInt(1, sm.bits) | 19:39 |
ghostmansd | Then (sm + SI(1, bits=2)) => wrap | 19:40 |
ghostmansd | > When I see variables being defined in pseudocode, there's no clear indication as to the size of the variable | 19:40 |
octavius | So does there need to be an explicit "shift[0:4]" to ensure correct size? | 19:40 |
ghostmansd | sigh, yes I know, it's implementation detail | 19:40 |
octavius | Oh sorry | 19:40 |
octavius | shift[0:2] | 19:40 |
ghostmansd | 1 sec, what's shift? | 19:41 |
ghostmansd | Do you mean the doc? | 19:41 |
octavius | This is the pseudocode for ls004: | 19:41 |
octavius | https://libre-soc.org/openpower/sv/rfc/ls004/ | 19:41 |
octavius | yeah | 19:41 |
ghostmansd | Aha, I see | 19:41 |
ghostmansd | You need at most 3 bits to store values in range from 1 to 4 | 19:42 |
octavius | I changed it from "shift = shift + 1" to "shift <- sm +1" because "sm" is a bitfield, while "shift" is an intemediary | 19:42 |
ghostmansd | 1 option is to do something like `shift <- [0] * 3` | 19:42 |
octavius | It's like were constructing a processor from back of the napkin notes :) | 19:43 |
octavius | Ah I see, explicitly define shift | 19:43 |
ghostmansd | and then assign it `sm`, then assign it to `shift + 1` | 19:43 |
octavius | Yeah can do | 19:43 |
ghostmansd | Or, as I did | 19:43 |
ghostmansd | Simply prepend a 0 bit, then add | 19:43 |
ghostmansd | But, again, this is a tricky impl detail | 19:43 |
ghostmansd | Perhaps we should debate how we should handle such stuff | 19:44 |
ghostmansd | m <- ((0b0 || sm) + 1) | 19:44 |
octavius | shift <- ([0] || sm) + 1 | 19:44 |
ghostmansd | This gets SM, prepends 0 to it, getting 3-bit integer | 19:44 |
octavius | something like that? | 19:44 |
ghostmansd | Then adds 1, which also becomes 3-bit | 19:45 |
ghostmansd | Yep | 19:45 |
octavius | yeah | 19:45 |
ghostmansd | But, again, my feeling is that this is impossible to explain sanely to anyone in WG why the fuck we do it | 19:45 |
ghostmansd | I mean, I can tell 'em the sm is 2-bit | 19:45 |
ghostmansd | But explaining that our addition works this way... | 19:46 |
octavius | The only way I can think of to avoid this is to implicitly extend the variable, but that could be unpredictable | 19:46 |
ghostmansd | I'm almost certain they'd tell us to get the hell out of their specs | 19:46 |
ghostmansd | My thoughts too | 19:46 |
octavius | Well, why not define the length of the variable at initialisation? | 19:47 |
ghostmansd | I mean, this overflow logic is for a reason, and there's even an explicit check for bits mismatch | 19:47 |
octavius | shift[0:2] <- sm + 1 | 19:47 |
ghostmansd | It won't work :-) | 19:47 |
ghostmansd | It's sm that fucks stuff up | 19:47 |
ghostmansd | You'll add 1 to sm first | 19:47 |
ghostmansd | Causing wrap around | 19:47 |
ghostmansd | Then you'll store this shiny 0 to 3-bit :-) | 19:48 |
octavius | Ah, because the stuff on the right is dealt without knowledge of the left | 19:48 |
ghostmansd | again, `sm` is 2-bit, and this constant, 1, gets converted to 2-bit on addition | 19:48 |
ghostmansd | Yep | 19:48 |
ghostmansd | Crazy, eh? | 19:48 |
octavius | indeed | 19:48 |
ghostmansd | Now imagine how many hours I spent there | 19:49 |
octavius | is this a bug, or a feature :) | 19:49 |
ghostmansd | :-D | 19:49 |
ghostmansd | I think both lol | 19:49 |
octavius | veselo XD | 19:49 |
ghostmansd | bugofeature | 19:49 |
octavius | So doing, "shift <- sm" and then "shift <- shift + 1" is fine? | 19:49 |
ghostmansd | Like when someone asked Stalin, what is worse, left wing, or right wing, in politics? | 19:50 |
ghostmansd | The reply was, "they both are worse" | 19:50 |
ghostmansd | I _think_ so | 19:50 |
ghostmansd | Yes, should be fine | 19:50 |
octavius | Ok, I'll make changes to the bitmanip.mdwn and ls003 | 19:51 |
octavius | *ls004 | 19:51 |
ghostmansd | Your variant seems more explicit, to be honest | 19:51 |
ghostmansd | So I think I will tune the openpower-isa code respectively | 19:51 |
octavius | Because I have to understand it :) | 19:52 |
ghostmansd | Anyway, I'd really like lkcl to take a look at it when he's back | 19:52 |
ghostmansd | Regardless of the pseudocode we end up with | 19:52 |
ghostmansd | Both are better than the switch anyway | 19:52 |
ghostmansd | You know, perhaps another option is, when we meet constant, _expand_ | 19:52 |
ghostmansd | I mean, add the damn bit | 19:53 |
ghostmansd | But this would make the whole stuff somewhat illogical | 19:53 |
octavius | What about defaulting to XLEN sized variables? | 19:53 |
octavius | Too much waste? | 19:53 |
ghostmansd | This would trigger an error :-) | 19:54 |
ghostmansd | This code also checks for bit width mismatch | 19:54 |
ghostmansd | 1 sec | 19:54 |
ghostmansd | https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=src/openpower/decoder/selectable_int.py;h=e90b68f156bd727aa7fde8c32de025502b4ff469;hb=0389a26f6d725335ee1e3d920dc9e87861bff1d6#l121 | 19:54 |
ghostmansd | https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=src/openpower/decoder/selectable_int.py;h=e90b68f156bd727aa7fde8c32de025502b4ff469;hb=0389a26f6d725335ee1e3d920dc9e87861bff1d6#l278 | 19:54 |
ghostmansd | assert b.bits == self.bits | 19:55 |
ghostmansd | So when you'd add 2-bit sm to constant which was extended by default... | 19:55 |
ghostmansd | BOOOOOOM | 19:55 |
ghostmansd | Frankly, this _is_ logical, if we think about it... But damn, it's SOOOOO complicated. | 19:56 |
octavius | I'm annoyed with the difficulty in communication, a lot of this is quite obscure. | 20:01 |
octavius | Especially dealing with software :') | 20:02 |
octavius | Hardware is nicer, but comes with its own problems | 20:03 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has joined #libre-soc | 20:09 | |
*** ghostmansd <ghostmansd!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has quit IRC | 20:17 | |
programmerjake | is there a meeting today? | 21:07 |
programmerjake | only cesar and I showed up... | 21:08 |
programmerjake | lkcl, toshaan, octavius, etc... | 21:09 |
programmerjake | ^ | 21:09 |
markos | is it now? | 21:10 |
markos | damn the hour change | 21:10 |
markos | I thought it was in one hour | 21:10 |
markos | hm, no it's UTC 22:00 so it's in one hour | 21:11 |
markos | well, 50min | 21:11 |
octavius | Oh hour change | 21:12 |
programmerjake | hmm, well the event lkcl created on google calendar is right now... | 21:12 |
octavius | No, you're right, I forget | 21:13 |
octavius | forgot | 21:13 |
programmerjake | it says moved to utc 21:00 | 21:13 |
programmerjake | though that could be old | 21:13 |
markos | got an email from lkcl that says it's 22:00 so I'll stick to that :) | 21:14 |
markos | I'd prefer now tbh | 21:14 |
markos | it's "only" 23:00 here now :) | 21:14 |
octavius | when did you get an email about the time change markos? | 21:16 |
programmerjake | uuh, i have no recent email saying that | 21:16 |
octavius | ^ same here | 21:16 |
markos | about an hour ago, apparently he only sent it to me, maybe because I asked here | 21:17 |
programmerjake | lkcl just sent an email cancelling the wed meeting, said nothing about the tuesday meeting | 21:18 |
markos | the mail just says: "still same time UTC 22:00" | 21:18 |
programmerjake | well, maybe he made an error? afaict it's been 21:00 utc for months | 21:20 |
markos | well, if everyone is connected right now I'll happily join | 21:21 |
markos | as I said, I prefer now anyway | 21:21 |
markos | lkcl, ?? | 21:21 |
programmerjake | everyone else but me disconnected | 21:21 |
markos | sigh | 21:21 |
markos | I'm not sure it was 21:00 UTC though | 21:22 |
programmerjake | i guess the meeting is in 38min then | 21:23 |
markos | I seem to remember that it was always midnight when I connected | 21:23 |
markos | (local time that is) | 21:23 |
programmerjake | which timezone? icr | 21:23 |
markos | but tbh, I'm not really famous for my great memory :-P | 21:23 |
markos | EEST, Athens, so GMT+2 in winter, GMT+3 in summer | 21:24 |
programmerjake | ah, your timezone switched 2 days ago, so it no longer being at your midnight checks out.. | 21:27 |
programmerjake | midnight during the summer is utc 21:00 for you, just like i remember | 21:28 |
markos | well, I would greatly appreciate having it at UTC 21:00 so I don't have to go to bed at 2am :) | 21:29 |
programmerjake | if only everyone agreed that daylight savings switching was a bad idea that needs to no longer happen... | 21:29 |
markos | I'm indifferent, I just want them to make up their minds | 21:29 |
markos | one year it's over then it's back again | 21:29 |
markos | just make up your minds damn it | 21:29 |
markos | but that's not the only thing that EU has completely messed up | 21:30 |
markos | my hopes are not high | 21:30 |
markos | chances are that things will go to shit first before they bounce back to some kind of normal | 21:30 |
programmerjake | i looked through my email history and lkcl changed to saying utc 22:00 for wed 18 may, but afaict the meeting has always been 21:00 utc and he just got the text of his mail wrong, the google calendar generated part of the email says 22:00 UK time (BST -- UTC+1 then) | 21:38 |
programmerjake | so, i think lkcl just forgot the tz change for the uk today | 21:40 |
octavius | meeting on programmerjake, toshywoshy | 22:00 |
*** octavius <octavius!~octavius@239.147.93.209.dyn.plus.net> has quit IRC | 23:02 | |
*** jab <jab!~jab@user/jab> has quit IRC | 23:57 | |
*** jab <jab!~jab@user/jab> has joined #libre-soc | 23:57 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!