*** ghostmansd <ghostmansd!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 00:40 | |
ghostmansd[m] | Nevermind, I think I sprted it out. At least the instruction which broke now works. | 00:43 |
---|---|---|
ghostmansd[m] | The trick is, whenever register is marked is destination, to output the extra index for the destination. And we actually don't bother if we write twice to the same bits where remapped value resides. | 00:45 |
ghostmansd[m] | Because, well, the value is the same, and fields are the same, so we should only take care of extras. | 00:47 |
lkcl | it is added twice because the concept there is to allow different RA-as-dest | 01:12 |
lkcl | but - again - the implementation has not been completed (just like with cr_ops) because there is so much to do | 01:13 |
lkcl | and, also, the thought occurred to me (a few months back) that, actually, after having this in the spec for 18+ months, actually it reduces the range of the ld/st-with-update instructions to extra2 | 01:15 |
lkcl | > lol, we check it test_pysvp64dis :-) | 01:15 |
lkcl | then it should be removed! | 01:15 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 01:29 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 01:56 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 04:23 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 04:50 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 05:29 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 06:00 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 06:19 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 06:43 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 07:14 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 07:37 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 07:54 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 08:18 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 09:39 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 10:17 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 11:10 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.170.193> has joined #libre-soc | 11:11 | |
programmerjake | after consulting luke and david, we decided that unfortunately I ended up waiting too long to buy plane tickets to fosdem, so I won't be attending. sorry for the trouble. | 15:30 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.170.193> has quit IRC | 16:42 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 16:42 | |
*** ghostmansd <ghostmansd!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 17:00 | |
*** ghostmansd <ghostmansd!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 17:47 | |
*** ghostmansd <ghostmansd!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 17:47 | |
ghostmansd | programmerjake, lkcl, I've added explicit macros to UTF-8 validation generated assembly: https://git.libre-soc.org/?p=openpower-isa.git;a=blobdiff;f=src/openpower/test/algorithms/svp64_utf_8_validation.py;h=f357378a0a88f65d229be15cf065896045025b92;hp=933a9fd87665104707f4efb2d8a8a358ac041f77;hb=42bc60a213a965ff3ab1529ec48901471c1133bb;hpb=817199925a0273b98ffe9af77442044aedcd1463 | 17:49 |
ghostmansd | The rationale is: we now output the real assembly and try to validate the operands, but this assumes these are expanded already. | 17:50 |
ghostmansd | Alternative is: do not attempt to assemble word instructions unless these are "unofficial". This to me looks like a worse alternative, since we won't be able to check the machine-readable specs on vanilla PPC and potentially re-use it for binutils. | 17:51 |
ghostmansd | Another alternative is: before attempting to call translate() or translate_one() in pysvp64asm, iterate over the code and grab all macros, then store and reuse them later upon translation. | 17:52 |
ghostmansd | Please let me know your opinion. | 17:52 |
ghostmansd | For svp64_utf_8_validation.py, this information was ready-to-use, so I simply gathered it as macros. We don't need the labels, though. | 17:53 |
ghostmansd[m] | power_insn.py: 1) outputs a real assembly unless an explicit style=power_insn.Style.LEGACY is given, then it does our "remap"; 2) makes no attempts to "expand" anything (it does not deal with macros). | 17:56 |
ghostmansd[m] | So I simply passed the labels as macros, too, into pysvp64asm, and pysvp64asm takes care of macro expansion at the point where we "translate". | 17:57 |
ghostmansd[m] | For now it reaches the goal of test working, but I would be glad to hear your suggestions and ideas. | 17:58 |
ghostmansd[m] | On one hand, macros are handy; on another, it's a difficult subsystem on its own, and likely deserves a separate subsystem in openpower-isa, if we ever choose to support it properly. | 17:59 |
ghostmansd[m] | A side note: UTF-8 tests are really cool, I'm impressed. | 18:00 |
*** ghostmansd <ghostmansd!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 18:21 | |
lkcl | ghostmansd[m], that's a good idea. although the Program() system was never designed to run anything other than raw instructions | 18:43 |
ghostmansd[m] | Sorry, what's a good idea? A subsystem on macros? | 18:44 |
lkcl | passing in the macros as arguments | 18:44 |
lkcl | although... hmmm... it would be better i feel to have an explicit function which pre-processes all macros | 18:45 |
lkcl | that has to be explicitly used if it is needed | 18:45 |
programmerjake | all the code in the utf8 assemble() fn works around the assembler and simulator not supporting labels, imho the best option in the long term is to make them support lables | 18:46 |
programmerjake | s/lables/labels/g | 18:46 |
programmerjake | a bunch of other code will also want labels too | 18:47 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 19:04 | |
lkcl | a separate suite/wrapper which does not involve adding more complexity to ISACaller would be good | 19:23 |
lkcl | but although the utf8 code is good i was not expecting you to have put it in as a unit test, but to have used the command-line version | 19:24 |
lkcl | (which does support macros properly) | 19:24 |
lkcl | the good thing though is that the code that you wrote for calculating label-positions can in fact be moved to a correct (suitable - non-ISACaller) location for general-purpose use | 19:24 |
lkcl | duplicating binutils in its entirety however was never the intention | 19:25 |
programmerjake | basically what's needed from isacaller is to filter out labels (and other directives) after assembling but before simulating, since isacaller assumes one input array element is always 32-bits | 19:31 |
programmerjake | with the exception of .long | 19:32 |
*** ghostmansd <ghostmansd!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 19:37 | |
ghostmansd | programmerjake, when you're awake, could you, please, help me to understand the results here? https://salsa.debian.org/Kazan-team/mirrors/openpower-isa/-/jobs/3837189 | 19:38 |
ghostmansd | The only change I did to CI (except for INSNDB variable equal to true) is that I increased --maxfail to 500 to see more logs immediately. | 19:39 |
programmerjake | i set --maxfail low so gitlab wouldn't truncate the logs after the first 4MB | 19:51 |
programmerjake | first error: in case_dsld0_ attempting to run `.long 0x106429b5` which doesn't work afaict cuz isacaller expects the assembly string passed in to start with `dsld.`, not `.long` | 20:10 |
programmerjake | where the log says: | 20:10 |
programmerjake | 0x0000: 106429B5 .long 0x106429b5 | 20:10 |
programmerjake | illegal .long NONE. | 20:10 |
programmerjake | name .long != NONE. - calling ILLEGAL trap, PC: 700 | 20:10 |
programmerjake | second error, do_case_ternlogi, `ternlogi.` is misassembled, you missed setting the RC bit | 20:15 |
programmerjake | afaict `ternlogi. 3, 4, 5, 0x80` should assemble to 0x14642c01 not 0x14642c00 | 20:19 |
programmerjake | ah, i think i found the bug, TLI form specifies the wrong XO field, it should stop at bit 30, not 31 | 20:22 |
programmerjake | https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=openpower/isatables/fields.text;hb=87f064999aa77d593ba1dc802ec0e42749f15da7#l1049 | 20:23 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 20:37 | |
ghostmansd | Ah OK, got it. | 20:38 |
ghostmansd | As for logs... doesn't gitlab CI has some way to perform logs rotation? | 20:39 |
programmerjake | not for build jobs' logs afaict, it effectively has a separate file for each job, so traditional log rotation is not really applicable | 20:50 |
programmerjake | the 4MB limit is to prevent using GBs of space if you have something like `while true: print('broken')` in your codd | 20:51 |
programmerjake | code | 20:51 |
programmerjake | they expect any reasonable job to not produce huge amounts of output text, unfortunately our code does do that | 20:52 |
programmerjake | since debian salsa stores those logs, they'd likely consider it abuse if we increased the limit to say 128MB | 20:55 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 21:11 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 22:07 | |
*** ghostmansd <ghostmansd!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 22:10 | |
*** lkcl <lkcl!lkcl@freebnc.bnc4you.xyz> has quit IRC | 22:24 | |
*** lkcl <lkcl!lkcl@freebnc.bnc4you.xyz> has joined #libre-soc | 22:28 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 23:31 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 23:57 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!