IRC logs for #openrisc Friday, 2016-05-27

--- Log opened Fri May 27 00:00:25 2016
wallentoSMDwrk: I second olofk, as far as I know no processor has ever been formally verified, because that is of incredible complexity03:50
wallentopeople pay money for vendors because they trust their cores work and to hold up to that ARM and other spend the most of their work with verification03:51
wallentoOpenRISC should have more verification, for sure, but formal verification seems out of range03:52
olofHas anyone worked with Opal Kelly boards?06:08
wallentoolofk: never even heard of them06:42
olofHey, OpenRISC is in the news :) http://boingboing.net/2016/05/26/undetectable-proof-of-concept.html07:54
ZipCPUolof: Fascinating article.  I'm not sure if I would call that good news or bad news.14:12
FireFalconolofk: I see that my paper has reached the openrisc community14:24
FireFalconolofk: re: your boing boing pointer14:27
FireFalconwhile I am here, anyone know how I can convince or1k-elf to emit multiply and divide instructions?14:29
olofkFireFalcon: Ahh. Hi, and welcome back. It was a while ago I saw you here. I was just writing a reply to your forum post14:56
olofkvoid main(void) {int a=1, b=2, c; c = a*b;} gives me an l.mul14:56
olofkBut if I do a division instead it jumps to __divsi3 and does it in software instead14:57
olofkMust be a compiler switch for that I guess14:57
olofkFireFalcon: And I totally missed your name on the paper to be honest, but I see it now14:59
olofkFireFalcon: or1k-elf-gcc -mhard-div did the trick15:01
olofkThere's also -mhard-mul if you hav problems with mults15:02
FireFalconolofk: I could of swore that I tried mhard-div too15:08
FireFalconolof: thanks, that worked.  My scrollback reveals that I had tried mhard-mul, tisk tisk15:14
ZipCPUolofk: Mind if I copy that answer into the OpenCores forum request?  (Just to try to keep OpenCores ... a little more alive.)15:19
olofkZipCPU: Be my guest. I agree that it's good to keep up the activity, especially when it comes to relevant questions17:48
ZipCPUWill do.17:48
shorneFireFalcon: I have been looking at gcc a bit lately, I see div/mul is output in gcc/config/or1k/or1k.md (if defined TARGET_HARD_MUL/DIV)17:49
ZipCPUI should mention that my favorite question is still the one at the bottom of http://opencores.org/forum,Other,0,553417:49
shornenot sure how to define those... the macros in this gnu code are hard to track down17:49
olofkZipCPU: Haha. Someone got really tired of answering stupid questions :)17:52
ZipCPUI keep that one around.  I love it.17:52
shorneInteresting, TARGET_HARD_MUL is defined for sparc, and used.  For for openrisc we only use it, but dont define it17:54
shorneMeaning not possible to enable without a patch it looks like17:55
shorneAnyone else know if its possible to do hard divide/multiply?17:55
olofkshorne: Yep, I just tried. It works17:55
shorneoh, ok so not sure what FireFalcon is mentioning, let me test17:56
olofkNot sure, but it could that what you're seeing are default values, i.e. hard mul is turned off by default17:56
ZipCPUHold on ... I might know where to find that ...17:56
olofkshorne: In my testing, hard mul was enabled by default, but hard div was disabled17:56
ZipCPUI found a default optimization table in common/config/zip/zip-common.c.  It's part of the option optimization table though.17:57
shorneolofk: confirmed for me to div is l.jal 23f4 <__divsi3>, mul is l.mul r3,r4,r318:01
olofkshorne: Try -mhard-div to get a l.div18:06
shornel.div r4,r4,r318:07
shorneyeah, that works, using gcc 5.3.018:07
shorneah... and that is defined in gcc/config/or1k/or1k.opt, and it will set Mask(HARD_DIV)18:09
shorneJust trying to understand how it works, now where the place we define the default mask18:11
shorne#define TARGET_DEFAULT_TARGET_FLAGS (MASK_HARD_MUL)18:12
shornegcc/common/config/or1k/or1k-common.c18:12
shorneolofk: FYI, I am looking into more gdb failures, now this one `110 FAILs in: gdb.compile/compile.exp`18:15
shornebasically in gdb you can run (gdb) compile i = 8;18:15
shorneand it will load up or1k-elf-gcc and compile that snippet of code to debug18:15
shorneproblem #1, the way it looks for gcc is a regex, and it builds it as '^or1k(-[^-]*)?--or1k-elf-gcc$' which is completely wrong18:16
shorneproblem #2, there is actually a plugin `libcc1` used to load gcc which gets loaded by dlopen, but if I have gcc for newlib, musl, arm, x86, it could load any of the `libcc1.so`18:19
shorneI need to talk to gdb/gcc guys to fix this, its a bad design I think18:19
-!- Cybernaut is now known as GenTooMan18:25
--- Log closed Sat May 28 00:00:26 2016

Generated by irclog2html.py 2.15.2 by Marius Gedminas - find it at mg.pov.lt!