*** gnucode <gnucode!~gnucode@user/jab> has quit IRC | 02:58 | |
lkcl | programmerjake, well remembered the duplicate | 05:04 |
---|---|---|
programmerjake | if you don't mind I'll probably fix it on monday | 05:05 |
lkcl | sensible | 05:13 |
lkcl | i have vague recollections of dropping an overflow bit into SelectableInt itself | 05:13 |
lkcl | and/or deliberately having (allowing) the value be greater than its declared bitlength | 05:14 |
lkcl | i can't remember now. it was 18 months ago | 05:14 |
lkcl | i don't mind absolutely-dreadful-hacks at all as long as they're documented | 05:15 |
lkcl | such as, in ISACaller: | 05:15 |
lkcl | "if after result instruction was detected / noted to be an add, do this awful hack-worthy CA calculation" | 05:15 |
lkcl | else | 05:15 |
programmerjake | yeah, well that sorta catches carry (if the insn directly returns the result of the op that overflows), it doesn't handle carry caused by the before-last op | 05:16 |
lkcl | "if after result computation,..." | 05:16 |
programmerjake | referring to the SelectableInt.overflow ^ | 05:16 |
lkcl | it does if that before-last operation was also required to... ehm... true | 05:16 |
lkcl | yep scratch that | 05:16 |
lkcl | it looks like, deep breath, the awful-hack approach is needed. which matches with microwatt | 05:17 |
lkcl | and also explains why arithmetic shift explicitly sets CA/CA32 (iirc) | 05:17 |
lkcl | that *is* - should - be detected | 05:17 |
lkcl | you *should* see code which goes "if CA/CA32 is one of the return registers, *don't* for goodness sake overwrite them, instead use them" | 05:18 |
programmerjake | something that would work for CA is having SelectableInt store more bits than it advertises and computing carry from that | 05:18 |
lkcl | yeah i don't think it's a good idea, on reflection. | 05:18 |
programmerjake | where add, sub, etc. actually propagate those extra bits | 05:18 |
lkcl | SelectableInt is a major source of slowness and complexity as it is | 05:19 |
programmerjake | what do you think of modifying the pseudo-code to explicitly compute carry? | 05:19 |
lkcl | and it's pretty much hell to read the detailed logs | 05:19 |
lkcl | that involves proposals to the ISA WG which we need like a hole in the head at the moment | 05:19 |
lkcl | in the case of add it's literally *thirty* add-related instructions. | 05:19 |
lkcl | so no | 05:19 |
lkcl | hack-job is the path of least resistance | 05:20 |
lkcl | just like microwatt already does | 05:20 |
programmerjake | well, path of least resistance isn't necessarily the best in the end -- imho implicit diy carry computations isn't a good idea, though it will work | 05:20 |
lkcl | honestly: really don't care. | 05:21 |
programmerjake | (aka. copying microwatt's code) | 05:21 |
lkcl | we have too much else to do and not a lot of time to do it. | 05:21 |
programmerjake | ok, implicit diy carry, here we go! :) | 05:22 |
lkcl | spending even days let alone weeks on "doing it right" causes too much loss on an already pressured timescale | 05:22 |
lkcl | the good news is that microwatt's already done it. | 05:23 |
lkcl | and i've already implemented it | 05:23 |
lkcl | the question is: is it *correct* - in both ISACaller and the ExpectedResults | 05:23 |
programmerjake | except that we do need a obviously correct reference, microwatt having done it is fine and likely to be correct, but afaik isn't directly traceable to the spec or Power9 or something. | 05:24 |
programmerjake | hence why I want explicit in-pseudo-code | 05:24 |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 08:56 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 09:18 | |
*** kanzure <kanzure!~kanzure@user/kanzure> has quit IRC | 09:32 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 10:28 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 11:11 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 11:12 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 11:20 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 11:21 | |
lkcl | if that route is taken it has to be done as an appendix. but not now. it impacts too many instructions | 13:18 |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 13:28 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 13:28 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@87.255.2.140> has joined #libre-soc | 20:36 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@87.255.2.140> has quit IRC | 21:13 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.172.16> has joined #libre-soc | 21:13 | |
sadoon[m] | Mirroring the debian repos including source repos, server goes brr | 23:40 |
sadoon[m] | This way the mini-buildd server fetches local files instead of relying on (and absolutely hammering) the debian servers | 23:40 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!