*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 00:18 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 00:19 | |
*** lkcl <lkcl!lkcl@freebnc.bnc4you.xyz> has joined #libre-soc | 00:36 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 00:48 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 00:57 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 01:14 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 03:50 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 03:50 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 04:53 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 04:53 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 05:16 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 05:16 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has quit IRC | 06:53 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.55.218> has joined #libre-soc | 06:53 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.55.218> has quit IRC | 08:12 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.41.59> has joined #libre-soc | 08:13 | |
ghostmansd[m] | lkcl, I've been thinking of this as "binutils opcode" | 08:36 |
---|---|---|
ghostmansd[m] | From binutils' masks point of view, this is correct | 08:36 |
ghostmansd[m] | We do have fields.txt parser, right?... | 08:36 |
ghostmansd[m] | Because without that, it's possible to determine Rc position. | 08:38 |
ghostmansd[m] | I have been confident that Rc always goes to bit 31. | 08:38 |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 08:54 | |
lkcl | yes, power_fields.py | 09:28 |
lkcl | https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=openpower/isatables/fields.text;hb=HEAD#l167 | 09:29 |
lkcl | 164 # 1.6.13 XX3-FORM | 09:29 |
lkcl | 165 |0 |6 |9 |11 |16 |21 |22 |24 |29|30|31 | | 09:29 |
lkcl | 167 | PO | T | A | B |Rc | XO |AX|BX|TX | | 09:29 |
lkcl | not in bit 31 | 09:29 |
lkcl | 225 # 1.6.22 VC-FORM | 09:30 |
lkcl | 226 |0 |6 |11 |16 |21|22 |31| | 09:30 |
lkcl | 227 | PO | VRT | VRA | VRB |Rc| XO | | 09:30 |
lkcl | not in bit 31 | 09:30 |
lkcl | and there is one instruction that has "." that does *not* have an Rc field at all | 09:31 |
lkcl | the masks are actually in VHDL form. "-" means "don't care" | 09:32 |
lkcl | 0s *must* match | 09:32 |
lkcl | 1s *must* match | 09:32 |
lkcl | therefore only matching against 1s is unfortunately just plain wrong | 09:33 |
ghostmansd[m] | Luke, please re-check what I wrote | 09:46 |
ghostmansd[m] | I stated: from binutils' point of view | 09:46 |
ghostmansd[m] | I have not yet adopted the code to deal with the whole code we have around | 09:46 |
ghostmansd[m] | Stating "just plain wrong" is stating the obvious | 09:46 |
ghostmansd[m] | Yes, I understand the difference between "ignore" and "strict match" | 09:47 |
ghostmansd[m] | I will check power_fields.py | 09:47 |
ghostmansd[m] | It is annoying that we became partly dependent on 838, but I _think_ after we emit correct opcodes there's not much to do in binutils | 09:48 |
ghostmansd[m] | So I will complete this task to degree needed for binutils | 09:48 |
ghostmansd[m] | I could have avoided the task at all, but it seems we already ignored the overall insn database issue way too long | 09:50 |
ghostmansd[m] | Having yet another bunch of hacks or a copy-paste is gonna cost us more, so I reluctantly started doing this, and it takes time. Please be patient. | 09:51 |
lkcl | i mention it because i'm really very puzzled as to how matching would even be possible (i mean in binutils) when ignoring 0s | 09:56 |
lkcl | there is one remote, outside possibility where that might work but i hear what you are saying and leave it with you | 09:57 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.41.59> has quit IRC | 10:05 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has joined #libre-soc | 10:05 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has quit IRC | 10:09 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.41.59> has joined #libre-soc | 10:10 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.41.59> has quit IRC | 10:26 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has joined #libre-soc | 10:27 | |
ghostmansd[m] | Luke, the answer is simple: because the opcode and the mask are different things in binutils. But I think we might have some class which incorporates both opcode and mask... we call it the opcode in our sources and use for both opcode and mask. | 10:33 |
ghostmansd[m] | Yes, I think I will rename this Opcode class and introduce .opcode and .mask properties. | 10:34 |
sadoon[m] | Hi guys | 10:40 |
sadoon[m] | I'm slowly getting back to hobby stuff and I can't for the life of me find a good way to build debian fully from source | 10:40 |
sadoon[m] | It would be immensely helpful for ppc and ppc64 as well as the libre-soc stuff but damn is the build system a mess | 10:41 |
lkcl | sadoon[m], mornin! | 10:55 |
lkcl | yes, debian building - from scratch - is something that is so rare that nobody has automated it | 10:56 |
lkcl | debian != gentoo | 10:56 |
sadoon[m] | therein the problem lies | 10:56 |
lkcl | they also unfortunately, over the course of 30 years, created circular dependencies | 10:56 |
sadoon[m] | Gentoo is great but we risk things breaking with updates unlike debian | 10:57 |
lkcl | both in the base packages (once built) *and* in the build dependencies | 10:57 |
sadoon[m] | sighs | 10:57 |
markos | lkcl, actually it's quite possible | 10:57 |
markos | I used to do it for one of the companies I worked for years ago | 10:58 |
lkcl | everyone who tackles it does so with a multi-stage process | 10:58 |
markos | we set up multiple installations of mini-buildd | 10:58 |
lkcl | markos, yes i remember | 10:58 |
markos | you remember genesi with armhf, that was even earlier :) | 10:58 |
lkcl | :) | 10:58 |
markos | mini-buildd was quite recent actually | 10:58 |
sadoon[m] | Are there any tools to at least automate most of it? | 10:58 |
lkcl | Description-en: minimal build daemon - daemon | 10:58 |
lkcl | Mini-buildd is an easy-to-configure autobuilder and | 10:59 |
lkcl | repository for deb packages. | 10:59 |
markos | mini-buildd | 10:59 |
markos | :) | 10:59 |
lkcl | Homepage: http://mini-buildd.installiert.net/ | 10:59 |
markos | works great | 10:59 |
sadoon[m] | I'll check it out now | 10:59 |
markos | or at least it did in 2017-18 | 10:59 |
markos | has a python webui even | 10:59 |
lkcl | http://mini-buildd.installiert.net/pages/documentation.html | 10:59 |
markos | it's quite modern and much better written than the current official package builders used in Debian itself | 11:00 |
markos | you still have to provide it with a base system | 11:00 |
markos | so as always, the base system is needed for bootstrapping | 11:00 |
markos | however, you can gradually start rebuilding the whole archive if you want | 11:01 |
markos | years ago, I did the armhf bootstrapping and it was a pain, mostly because I did native builds -no cross-compilation | 11:02 |
markos | and it took forever | 11:02 |
markos | Linaro did ask me to do the arm64 bootstrapping as well | 11:02 |
markos | but I kindly refused :D | 11:02 |
markos | ppc64 would be in a much better state plus the hardware is immensely more powerful | 11:03 |
sadoon[m] | If this is the case then it should be very doable | 11:15 |
sadoon[m] | Remember that debian keeps full repo archives of sid for ppc and ppc64 | 11:15 |
sadoon[m] | So we do have a full base system for all the toolchains and stuff, it's just that there are not enough maintainers for ppc and ppc64 to have a full stable release on them, which is what we would need | 11:16 |
sadoon[m] | Gentoo will still be useful for scenarios where the instruction set is different (SVP64 iirc?) and then as discussed before I can try to tool that into debian once we can guarantee it works | 11:18 |
markos | gentoo is perfect for base system bootstrapping | 11:19 |
markos | and you can move to full debian package builds once you have that | 11:19 |
sadoon[m] | yes, but we also need a way to make sbuild (or whatever builder) that we are building specifically for SVP64 somehow | 11:26 |
markos | to do this properly, we need to get this info in glibc | 11:27 |
markos | plus arch | 11:27 |
markos | arch as reported by kernel I mean | 11:28 |
markos | so that it knows that VSX is disabled | 11:28 |
markos | that should be easier once OPF agrees on making VSX optional | 11:28 |
sadoon[m] | So mini-buildd apparently was last supported on debian 10 | 11:33 |
sadoon[m] | I can't find it in his bullseye repo | 11:34 |
sadoon[m] | not a huge problem since we can most likely build debian 11 and probably even 12 on a debian 10 system | 11:36 |
sadoon[m] | but kinda concerning that it's been somewhat abandoned | 11:36 |
lkcl | sadoon[m], markos: there is no EABI for either SFFS nor SVP64. | 12:04 |
lkcl | we barely get away with the SFFS port on the basis that it's basically "-mnovsx -mnoaltivec" | 12:04 |
lkcl | however once that's done then the vision/goal is to make the *SFFS* port the *DEFAULT* for all distros | 12:04 |
lkcl | but only after re-introducing the dynamic-hwcaps-libc6-runtime-feature-detection | 12:05 |
lkcl | (that IBM ripped out a few years ago) | 12:05 |
markos | I know, I was talking of doing things properly, for an initial port it should just be enough to disable vsx/altivec everywhere, but that shouldn't require a *complete* port, just the core system | 12:05 |
lkcl | which has remained in intel and comprises 4 levels of hardware | 12:05 |
markos | wait, what? hwcaps was removed for Power? | 12:06 |
lkcl | markos, yes | 12:06 |
lkcl | not hwcaps | 12:06 |
markos | even Arm has it | 12:06 |
markos | the runtime detection | 12:06 |
lkcl | the dynamic-library-runtime-redirection that USED hwcaps | 12:06 |
markos | but that's just what ifunc feature was using | 12:06 |
markos | so no more ifunc for power? | 12:07 |
lkcl | there used to be the exact same system wich intel has 4 levels of dynamic redirection | 12:07 |
lkcl | IBM submitted patches to rip it out and replace everything with "#ifdef POWER9" | 12:07 |
markos | :-O | 12:08 |
lkcl | they've since been told off and finally got the message to stop doing "#ifdef POWER9" and instead to do "#ifdef VSX" and "#ifdef MMA" | 12:08 |
lkcl | sadoon[m], everything and anything involving python 2.7 has been terminated in debian 11 | 12:11 |
sadoon[m] | <lkcl> "sadoon, everything and anything..." <- Yup I noticed it depends on python2 | 12:19 |
ghostmansd | When I told that CSVs suck, I really forgot that we have fields.text. | 12:37 |
ghostmansd | Compared to fields.text format, CSVs do indeed look like a gift from God. | 12:38 |
*** choozy <choozy!~choozy@75-63-174-82.ftth.glasoperator.nl> has joined #libre-soc | 12:40 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 13:01 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 13:53 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 13:54 | |
ghostmansd | lkcl, we pass opint parameter explicitly before parsing the CSV entries ("vanilla" ones, e.g. major.csv et al.) | 14:06 |
ghostmansd | However, the values seem to always be either a decimal or a binary with 0b prefix or a pattern (0/1/- combo). | 14:07 |
ghostmansd | That said... Can we drop opint and not keep it in insndb, or there's some obfuscate reason why this is needed? | 14:08 |
ghostmansd | I'd like to handle this discrepancy in the Opcode class constructor and avoid passing any additional arguments. | 14:09 |
lkcl | ghostmansd, i can't precisely recall why i added opint, i think it was to avoid accidental confusion of a mask not containing any "-"s | 14:11 |
lkcl | as in 10000000000000010 as a *mask* would be confused with a decimal number | 14:11 |
ghostmansd | Well, if we have 0b prefix... Shouldn't it serve it already? | 14:11 |
lkcl | again: the link to microwatt. | 14:12 |
lkcl | the numbering is not chosen by us, it is chosen by the microwatt authors when they wrote decode1.vhdl | 14:12 |
lkcl | some of the numbers are decimal (major.csv) | 14:12 |
lkcl | some are binary (those i already put 0b in front of) | 14:12 |
ghostmansd | src/openpower/sv/sv_analysis.py:936 | 14:13 |
ghostmansd | if op.startswith("0b"): | 14:13 |
ghostmansd | op = "2#%s#" % op[2:] | 14:13 |
lkcl | some are VHDL masks | 14:13 |
ghostmansd | it seems that our files always use 0b or decimals for non-masks | 14:13 |
ghostmansd | But OK, I will extend the code to keep track of the opint | 14:14 |
lkcl | it's been a long time (almost 2 years), i think it's basically opint=True ==> mask format (VHDL mask format) | 14:15 |
lkcl | all of nmigen, VHDL and Verilog all support the same concept in their switch/case statements. | 14:15 |
*** choozy <choozy!~choozy@75-63-174-82.ftth.glasoperator.nl> has quit IRC | 14:22 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 16:50 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 16:51 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 17:02 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 17:03 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 17:47 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 17:58 | |
*** tplaten <tplaten!~isengaara@55d4af33.access.ecotel.net> has joined #libre-soc | 18:10 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 18:24 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 18:25 | |
*** tplaten <tplaten!~isengaara@55d4af33.access.ecotel.net> has quit IRC | 20:51 | |
lkcl | markos, ping, there's a discussion on comp.arch underway about floating-point immediates | 20:55 |
lkcl | https://groups.google.com/g/comp.arch/c/aZQvbjqf2z8/m/dBaGZk8sBQAJ | 20:55 |
lkcl | can i ask if you could drop the work-in-progress imdct36 into the git repo so that i can help answer mitch's questions? | 20:56 |
markos | lkcl, done | 21:52 |
*** ghostmansd|2 <ghostmansd|2!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has joined #libre-soc | 21:57 | |
*** lkcl- <lkcl-!lkcl@freebnc.bnc4you.xyz> has joined #libre-soc | 22:00 | |
openpowerbot | [mattermost] <lkcl> markos, thx. i've restored the original version and moved it to mp3_1_imdct36_float_basicsv.s | 22:01 |
openpowerbot | [mattermost] <lkcl> so that the original assembler can be kept as a comparative reference | 22:01 |
lkcl- | markos, thx. i've restored the original version and moved it to mp3_1_imdct36_float_basicsv.s | 22:01 |
openpowerbot | [mattermost] <lkcl> we need to be able to say, "and this is by how much percentage SVP64 reduces programs" | 22:01 |
lkcl- | so that the original assembler can be kept as a comparative reference | 22:02 |
lkcl- | we need to be able to say, "and this is by how much percentage SVP64 reduces programs" | 22:02 |
*** lkcl <lkcl!lkcl@freebnc.bnc4you.xyz> has quit IRC | 22:02 | |
*** ghostmansd <ghostmansd!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has quit IRC | 22:06 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has quit IRC | 22:06 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-188-32-220-156.ip.moscow.rt.ru> has joined #libre-soc | 22:09 | |
*** hl_ <hl_!~hl@user/hl> has joined #libre-soc | 22:48 | |
*** midnight_ <midnight_!~midnight@user/midnight> has joined #libre-soc | 22:50 | |
*** awygle_ <awygle_!~quassel@2604:a880:2:d0::5380:3001> has joined #libre-soc | 22:51 | |
*** klys_ <klys_!~mdasoh@show.op8.us> has joined #libre-soc | 22:52 | |
*** awygle <awygle!~quassel@2604:a880:2:d0::5380:3001> has quit IRC | 22:55 | |
*** hl <hl!~hl@user/hl> has quit IRC | 22:55 | |
*** klys <klys!~mdasoh@show.op8.us> has quit IRC | 22:55 | |
*** midnight <midnight!~midnight@user/midnight> has quit IRC | 22:55 | |
*** midnight_ is now known as midnight | 23:04 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!