Thread overview | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
September 08, 2015 iOS arm64 support coming along nicely | ||||
---|---|---|---|---|
| ||||
Having a free day on Monday and a recently acquired iPhone 6, I started adding support for iOS arm64 to LDC. So far going smoothly with druntime compiling, Threads and Fiber switching working on the h/w. TLS functions with same approach as 32-bit ARM: a small modification to LLVM that works with [1]. Next task is to fix up the C ABI as iOS calling convention [2] is a variation on AAPCS64. Started with LDC's gen/abi-aarch64.cpp, but a couple files of phobos ICE in LLVM vararg code, which I expect is due to iOS variation. [1] https://github.com/smolt/iphoneos-apple-support [2] https://developer.apple.com/library/ios/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html -- Dan |
September 09, 2015 Re: iOS arm64 support coming along nicely | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dan Olson | On Tuesday, 8 September 2015 at 15:52:11 UTC, Dan Olson wrote:
> Having a free day on Monday and a recently acquired iPhone 6, I started adding support for iOS arm64 to LDC. So far going smoothly with druntime compiling, Threads and Fiber switching working on the h/w. TLS functions with same approach as 32-bit ARM: a small modification to LLVM that works with [1].
>
> Next task is to fix up the C ABI as iOS calling convention [2] is a variation on AAPCS64. Started with LDC's gen/abi-aarch64.cpp, but a couple files of phobos ICE in LLVM vararg code, which I expect is due to iOS variation.
>
> [1] https://github.com/smolt/iphoneos-apple-support [2] https://developer.apple.com/library/ios/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html
Good work and great news.
Do you think app build by LDC can be released in Apple store?
|
September 09, 2015 Re: iOS arm64 support coming along nicely | ||||
---|---|---|---|---|
| ||||
Posted in reply to ChangLong | "ChangLong" <changlon@gmail.com> writes: > > Do you think app build by LDC can be released in Apple store? Yes, eventually. I am sure the review process will find some issues but nothing that can't be fixed. I have a simple game written by my daughter that I may use as a test case once arm64 is ready. -- Dan |
September 09, 2015 Re: iOS arm64 support coming along nicely | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dan Olson | Dan Olson <gorox@comcast.net> writes: > Next task is to fix up the C ABI as iOS calling convention [2] is a variation on AAPCS64. Started with LDC's gen/abi-aarch64.cpp, but a couple files of phobos ICE in LLVM vararg code, which I expect is due to iOS variation. All of phobos builds now for arm64 and writeln("hello world") works. Haven't tried much else yet. Getting the C ABI compatible with clang for struct passing will take some more work though. -- Dan |
September 11, 2015 Re: iOS arm64 support coming along nicely | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dan Olson | On Wednesday, 9 September 2015 at 16:10:39 UTC, Dan Olson wrote:
> Dan Olson <gorox@comcast.net> writes:
>
>> Next task is to fix up the C ABI as iOS calling convention [2] is a variation on AAPCS64. Started with LDC's gen/abi-aarch64.cpp, but a couple files of phobos ICE in LLVM vararg code, which I expect is due to iOS variation.
>
> All of phobos builds now for arm64 and writeln("hello world") works. Haven't tried much else yet. Getting the C ABI compatible with clang for struct passing will take some more work though.
Fantastic news!
Once that is ready I can do some testing with my SFML binding.
I've actually been waiting for this to come so I could play around with it.
|
September 14, 2015 Re: iOS arm64 support coming along nicely | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dan Olson | arm64 iOS and iphone sim almost ready! A few minor changes where needed but now druntime/phobos unittests are looking good. It is currently based on 0.15.2 DMD frontend 2.066 [1]. Unfortunately I got a regression (unaligned load) with previously working 32-bit armv7 after the varags change in 0.15.2. I need to sort that out now. I haven't pushed necessary LLVM 3.6 arm64 changes yet to github. Trying to build ios-merge-release-0.15.2 without the updated LLVM will fail. [1] https://github.com/smolt/ldc/tree/ios-merge-release-0.15.2 -- Dan |
September 15, 2015 Re: iOS arm64 support coming along nicely | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dan Olson | If anybody is feeling adventuresome and wants to try LDC with an arm64 iOS device, I updated the development repo with submodules that support iOS arm64 and simulator. I have tested on an iPhone 6 and all druntime/phobos unittests pass with exception of some math results, similar to what I documented for armv7. https://github.com/smolt/ldc-iphone-dev I haven't updated any of the readme files yet, but the build instructions still apply. The differences are that the dev repo will pull in a llvm 3.6.1 with iOS TLS support, LDC is based on 0.15.2, and fatlibs with all standard architectures (armv7, armv7s, arm64, i386, and x86_64) are built for druntime and phobos. -- Dan |
September 15, 2015 Re: iOS arm64 support coming along nicely | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dan Olson | On 15 Sep 2015, at 18:45, Dan Olson via digitalmars-d-ldc wrote: > I have tested on an iPhone 6 and all > druntime/phobos unittests pass with exception of some math results, > similar to what I documented for armv7. Nice! > https://github.com/smolt/ldc-iphone-dev > > I haven't updated any of the readme files yet, but the build > instructions still apply. The differences are that the dev repo will > pull in a llvm 3.6.1 with iOS TLS support, LDC is based on 0.15.2, and > fatlibs with all standard architectures (armv7, armv7s, arm64, i386, and > x86_64) are built for druntime and phobos. We should discuss how to best integrate iOS support into mainline LDC (even if it will still require a patched LLVM) soon, especially because DDMD will happen soon. — David |
September 16, 2015 Re: iOS arm64 support coming along nicely | ||||
---|---|---|---|---|
| ||||
Posted in reply to David Nadlinger | David Nadlinger via digitalmars-d-ldc <digitalmars-d-ldc@puremagic.com> writes: > > We should discuss how to best integrate iOS support into mainline LDC (even if it will still require a patched LLVM) soon, especially because DDMD will happen soon. > > — David Hi David, I create Issue #1081 if that works. I tried to begin by outlining all the changes. https://github.com/ldc-developers/ldc/issues/1081 It was pretty cool how stuff for arm64 just worked. In particular, exception handling worked out of the box. -- Dan |
September 16, 2015 Re: iOS arm64 support coming along nicely | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dan Olson | On Wednesday, 16 September 2015 at 07:23:05 UTC, Dan Olson wrote:
> It was pretty cool how stuff for arm64 just worked. In particular, exception handling worked out of the box.
The only missing piece for Linux/AArch64 is the vararg stuff. Everything else should work out of the box, too.
Regards,
Kai
|
Copyright © 1999-2021 by the D Language Foundation