On Wednesday, 19 February 2020 at 07:09:02 UTC, April wrote:
What's the current state of MIPS compiling for bare metal? Especially the R4300i processor.

I've had some success with running D code on Nintendo 64 emulators, which emulate a R4300i processor. I'm compiling with:

ldc2 -march=mips -mcpu=mips3 -output-o -betterC -c sourcefile.d

And then use a custom linker to inject the segments.
Some of the issues I came across:
- global variables should be marked __gshared or immutable to avoid thread-local storage. - LDC sometimes inserts calls to memcpy, memset and memcmp, so I provided implementations for those - double precision floating point code does not work, only single precision
- functions returning large structs by value was not supported

Apart from that it worked decently. I'm not sure what kind of support your looking for exactly, but I suggest just giving it a try and see how far you get.

Reply via email to