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!