ARM64: The Next Generation

So, the last few weeks we’ve been off wandering the wilds of ex-Soviet Eastern Europe and the North Atlantic up Greenland way; did we miss anything?

…whoa.

Well, let’s start catching up, shall we then? The new 64-bit chip is a good place, no doubt. First off, see what the mothership has to say

About 64-Bit Cocoa Touch Apps

ARM64 Function Calling Conventions

Note especially “You cannot build a 64-bit project if it targets an iOS version earlier than iOS 7”. So far. There are rumours a future Xcode will support iOS 6 with the 32-bit slice.

[UPDATE: Notes from the Xcode-user list on lipoing together slices yourself, if you were thinking that would be clever:

“As far as lipo is concerned, there is nothing wrong with such a binary, and in the case of a static library that will be later linked into an application, you’re fine as long as the app’s deployment target is properly restricted. That is, if you build such a library by lipo-ing the individual slices together, as long as the app itself has a deployment target of 7.0, you’ll be fine. There are components in iOS pre-version 7 that were not prepared to see binaries containing 64-bit code, particularly when such binaries are downloaded from the app store (which is why things may appear to work locally for you, but would not work if that code ended up on the app store). Until the changes that Chris mentioned have been made, you will not be able to have an app that both supports iOS 5 or 6 and contains 64-bit code…”

“…I can’t really go into specifics, but rest assured that there is a solution forthcoming.”]

And if you hadn’t already been making a practice of using NSInteger and CGFloat religiously in any System-interfacing code … well, it’s time to start!

As always, Mike Ash has the definitive get up to speed guide on far more exhaustively lower level information than you’re ever likely to need:

Friday Q&A 2013-09-27: ARM64 and You

If you’re really into the bit banging enough to want to read the full ARMv8 architecture manual … here you go.

But if you just want to see some real world numbers, check out The Move to 64-bit in The iPhone 5s Review over at AnandTech, exhaustively excellent as always.

If you’re not clear yet on the difference between ARCHS and VALID_ARCHS in Xcode, read

iOS 7, XCode 5 Project Build Settings for Architectures and Arm64 support

For those who provide a static library and want to support iOS 5 through now with just one, read

Static Libs With Support to iOS 5 and Arm64

And finally, for a handy-dandy chart of iOS 5+ devices sorted by chip and OS version and screen size, check out

iOS Device Summary

Handy for planning your test device upgrade strategy!

Alex | October 12, 2013

Leave a Reply