*** ghostmansd[m] <ghostmansd[m]!~ghostmans@37.204.56.19> has joined #libre-soc | 04:37 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@37.204.56.19> has quit IRC | 06:36 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.170.187> has joined #libre-soc | 06:37 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.170.187> has quit IRC | 06:57 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.164.95> has joined #libre-soc | 06:58 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.164.95> has quit IRC | 07:02 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.170.32> has joined #libre-soc | 07:03 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.170.32> has quit IRC | 07:41 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.164.14> has joined #libre-soc | 10:14 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.164.14> has quit IRC | 10:48 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.164.14> has joined #libre-soc | 10:48 | |
markos_ | programmerjake, lkcl I fixed maddsubrs for the failing test cases, it passes all tests now, I actually added a special case for XLEN != 64 as when I tried to incorporate the changes in the common case it would break other cases | 14:43 |
---|---|---|
markos_ | let me know if it's ok with you so we can close this, otherwise I will look into it further | 14:44 |
markos_ | I also incorporated similar code in the maddrs as well | 14:45 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.164.14> has quit IRC | 14:47 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@37.204.56.19> has joined #libre-soc | 14:52 | |
programmerjake | yay! i'll review the code soon... | 17:12 |
markos_ | programmerjake, lkcl, reg the amount, I think we should increase the total amount, the effort was certainly more than I originally anticipated | 17:35 |
markos_ | the test cases are not incorrect mind you, the amounts were calculated first in C and duplicated on Arm | 17:36 |
markos_ | I did try using the else case for XLEN=64 but the unit tests failed | 17:37 |
programmerjake | did you use 128-bit ints to calculate the intermediate results? if not, you likely overflowed at some point | 17:38 |
markos_ | well, I just tried now | 17:40 |
markos_ | removed the special XLEN=64 and just used the new code for XLEN=64 | 17:40 |
programmerjake | ^ when calculating the values for the unit tests | 17:40 |
markos_ | "got ffffffffffffe43e expected ffffffffffff643e" | 17:41 |
markos_ | looks suspiciously close | 17:41 |
markos_ | could be | 17:41 |
markos_ | some of the values I added later | 17:42 |
markos_ | could be this is one of them | 17:42 |
markos_ | turns out this is the only failure | 17:47 |
markos_ | all the rest pass | 17:47 |
programmerjake | well, just checked with bigint arithmetic, 0xffffffffffff643e looks correct... | 17:49 |
programmerjake | used python hex((((RT-RA)*RB+0x2000)>>14)+2**64) | 17:50 |
markos_ | argh | 17:50 |
markos_ | let me revert it then | 17:50 |
programmerjake | well, imho it means the else block has some cases where it's buggy that need fixing, not that you actually need the XLEN=64 block | 17:51 |
markos_ | right, sigh | 17:52 |
programmerjake | you could probably reproduce that error with XLEN=32 | 17:53 |
programmerjake | thx for being persistent! | 17:54 |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 17:59 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 18:00 | |
markos_ | I should thank you for the same | 18:08 |
markos_ | I know I reacted in the beginning, but I have to admit you were right in insisting | 18:08 |
markos_ | the original implementation was incomplete and we would fall in the same trap as the neon instructions | 18:09 |
markos_ | ie requiring multiple implementations of the same code for various ranges of values | 18:09 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!