www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - Emulated floating point on iOS

reply Jacob Carlborg <doob me.com> writes:
I’m experimenting with D on iOS, I’m using the `arm64-apple-ios12.0` 
target. When compiling the runtime using `ldc-build-runtime` I’ve 
encountered an issue. The size of `real` is 16 while using Clang, `long 
double` is 8, i.e. same as `double`. LDC also seems to output some kind 
of emulated floating point for `real,` I get a lot of missing symbols 
like `___fixunstfdi`, these seems to be related to emulating floating 
point. When compiling the same code using Clang (replacing `real` with 
`long double`) Clang does not output these symbols. If I change the type 
of `real` in `Target::_init` from `Tfloat80` to `Tfloat64` the size of 
`real` is correct but LDC still outputs the symbols for emulating 
floating point. Any ideas?

-- 
/Jacob Carlborg
Jan 04 2020
parent reply kinke <noone nowhere.com> writes:
On Saturday, 4 January 2020 at 13:26:05 UTC, Jacob Carlborg wrote:
 If I change the type of `real` in `Target::_init` from 
 `Tfloat80` to `Tfloat64` the size of `real` is correct but LDC 
 still outputs the symbols for emulating floating point. Any 
 ideas?
That's definitely not the right location; see https://github.com/ldc-developers/ldc/blob/0a1a40ebc7ee29b02a6e92daa389e3c5611f086f/ir/irtype.cpp#L64-L66.
Jan 04 2020
parent reply Jacob Carlborg <doob me.com> writes:
On Saturday, 4 January 2020 at 15:43:53 UTC, kinke wrote:
 That's definitely not the right location; see 
 https://github.com/ldc-developers/ldc/blob/0a1a40ebc7ee29b02a6e92daa389e3c5611f086f/ir/irtype.cpp#L64-L66.
That worked, thanks. — /Jacob Carlborg
Jan 05 2020
parent reply kinke <noone nowhere.com> writes:
On Sunday, 5 January 2020 at 08:49:51 UTC, Jacob Carlborg wrote:
 That worked, thanks.
Great; don't hesitate to ask for further assistance. You're most likely well aware of Dan's work [1]; I gave the compiler diff an extremely superficial glance, and most of it seemed obsolete by now (notable exception: his gen/abi-ios-* additions), incl. LLVM by now supporting TLS for iOS. I haven't looked at the druntime/Phobos diff, but I guess it's still highly useful.
Jan 05 2020
next sibling parent kinke <noone nowhere.com> writes:
On Sunday, 5 January 2020 at 19:19:51 UTC, kinke wrote:
 Dan's work [1]
Argh, here's the link: https://github.com/ldc-developers/ldc/compare/master...smolt:ios#files_bucket
Jan 05 2020
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2020-01-05 20:19, kinke wrote:

 Great; don't hesitate to ask for further assistance.
Thanks.
 You're most likely well aware of Dan's work [1];
Yes.
 I gave the compiler diff an extremely 
 superficial glance, and most of it seemed obsolete by now
I guessed that it would be a bit obsolete.
 (notable exception: his gen/abi-ios-* additions), incl. LLVM by now supporting 
 TLS for iOS. I haven't looked at the druntime/Phobos diff, but I guess 
 it's still highly useful.
Thanks. -- /Jacob Carlborg
Jan 06 2020