go 1.10.1.-r0 refuses to run stating 'This program can only be run of processors with MMX support'
Steps to reproduce:
(PS. keep up the good work! I've been wanting something like this for a long time!)
Go is on the list.
(PS. thanks!)
@tbodt May I ask when do you plan to support MMX? Maybe we can create a slack channel to talk about what to do to support this. People like me who are interested in this can also contribute to this in spare time:)
@wenmin-wu we have a discord server
What will it take to emulate MMX? I鈥檓 willing to contribute but don鈥檛 know where to start or what we even need. Are features being tracked somewhere? If not, might be a good idea to start doing that in the wiki.
it can definitely be done. Found this post from 2001, we got this guys 馃挭馃徏
https://www-sop.inria.fr/members/Sylvain.Pion/progs/mmx-emu/
I鈥檓 willing to contribute but don鈥檛 know where to start or what we even need.
I don't really know what is needed for go to work. MMX adds 51 instructions, but it's possible go only uses 1 or 2 of those. As for where to start, there's unfortunately not any good documentation for hacking on the emulator, other than "read the code, figure out out how it works, change it." If you're serious about contributing, feel free to reach out to me on Discord or wherever and I'll try and help get you up to speed.
A good first step would be to change the cpuid in emu/cpuid.h to just set the bit that claims MMX is supported, then try running some go programs and seeing what crashes. dmesg after an illegal instruction will tell you the problematic machine code.
Are features being tracked somewhere?
I've been using GitHub issues for that.
www-sop.inria.fr/members/Sylvain.Pion/progs/mmx-emu
I had a look at the code and that might actually work in iSH, as a temporary solution. All it's doing is handling SIGILL.
I did it
w00t! Thanks
Most helpful comment
I did it