How to deal with inline asm functions in Phobos/druntime?
Kai Nacke via digitalmars-d-ldc
digitalmars-d-ldc at puremagic.com
Tue Apr 7 23:31:10 PDT 2015
On Tuesday, 7 April 2015 at 18:15:58 UTC, Johan Engelen wrote:
> It is fun to write these small asm blobs, but I am not sure how
> maintainable all this will be.
> Confused :S
The functions in Druntime/Phobos exists because the MSVC runtime
does not support 80bit reals which is a must-have for DMD.
If you are going to rewrite assembly snippets then please use
ldc.llvmasm because of all the advantages you have listed. Plus,
ldc.llvmasm do not disable function inlining which is also a big
Regarding std.math, there are already lot of places with versions
for LDC. One reason is that LLVM intrinsics exists. Another
reason is that LDC supports PPC, ARM and MIPS, too. At last, a
reason is that the DMD ASM does not work. I prefer having
rewritten assembly functions. But please note that there must
always be a fallback to the core.stdc function because of the
many supported architectures.
BTW: Many users of LDC want fast math functions. Having a better
implementation of math functions is therefore desirable.
More information about the digitalmars-d-ldc