On Tuesday, 21 April 2015 at 14:10:36 UTC, Johannes Pfau wrote:
Am Tue, 21 Apr 2015 11:42:40 +0000
schrieb "Jens Bauer" <doc...@who.no>:

I'm still hoping for a solution to this. Should I file a bug-report ?

Didn't this[1] commit fix the problem?

I can confirm that the problem is fixed.
-And the code generation is quite impressive.

In C I had ...

if(LowLevelInit) LowLevelInit(); /* generates a lot of redundant code: load register, compare, branch, branch+link */

In D, I only need:

LowLevelInit;

This generates a nop.w instruction if the LowLevelInit does not exist (this is definitely the desired behaviour, if the BL instruction can not be removed completely; but I believe we're speaking about code that's already generated, thus the optimizer is doing quite well).

I can now conclude my startup.d; which will be a "production ready" startup file, that can replace both startup.s and startup.c completely.
Thank you for making this possible!

Reply via email to