Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Research Collaboration and Enablement
    • DesignStart
    • Education Hub
    • Innovation
    • Open Source Software and Platforms
  • Forums
    • AI and ML forum
    • Architectures and Processors forum
    • Arm Development Platforms forum
    • Arm Development Studio forum
    • Arm Virtual Hardware forum
    • Automotive forum
    • Compilers and Libraries forum
    • Graphics, Gaming, and VR forum
    • High Performance Computing (HPC) forum
    • Infrastructure Solutions forum
    • Internet of Things (IoT) forum
    • Keil forum
    • Morello Forum
    • Operating Systems forum
    • SoC Design and Simulation forum
    • 中文社区论区
  • Blogs
    • AI and ML blog
    • Announcements
    • Architectures and Processors blog
    • Automotive blog
    • Graphics, Gaming, and VR blog
    • High Performance Computing (HPC) blog
    • Infrastructure Solutions blog
    • Innovation blog
    • Internet of Things (IoT) blog
    • Operating Systems blog
    • Research Articles
    • SoC Design and Simulation blog
    • Tools, Software and IDEs blog
    • 中文社区博客
  • Support
    • Arm Support Services
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • Community Help
  • More
  • Cancel
Arm Community blogs
Arm Community blogs
Architectures and Processors blog Porting to Arm 64-bit
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI and ML blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded blog

  • Graphics, Gaming, and VR blog

  • High Performance Computing (HPC) blog

  • Infrastructure Solutions blog

  • Internet of Things (IoT) blog

  • Operating Systems blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tell us what you think
Tags
  • Cortex-A53
  • Cortex-A57
  • White Paper
  • Armv8-A
  • 64-bit
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Porting to Arm 64-bit

Chris Shore
Chris Shore
April 8, 2016
Less than one minute read time.

This white paper is an introduction to porting existing code to the A64 instruction set supported by Armv8-A processors like the Cortex-A53 and Cortex-A57 from Arm. It will also be useful for those writing new code for these platforms.

Why 64-bit?

Diagram of evolution of Arm architecture

It seems that is a question with many answers! For some, it will be the need to address more than 4GB of memory, for others the need for wider registers and greater accuracy of 64-bit data processing, for still others the attraction of a larger register set.

Whatever your reason for looking to move to 64-bit, it is likely that you will have a body of legacy software which will need porting as well as new code which needs writing. This paper is designed to help with both processes.

We’ll start with a quick look at the evolution of the Arm architecture which has brought 64-bit to reality.

Download whitepaper

Porting to ARM 64-bit v4(2).pdf
Anonymous
  • Cliff Parris
    Offline Cliff Parris over 6 years ago

    Chris, how do I get hold of a pdf version of your paper 'Porting to Arm 64-bit.pdf'

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • Jens Bauer
    Offline Jens Bauer over 8 years ago

    If writing network code, I would certainly switch to Big Endian mode too; then I would need no byte-swap in software.

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • daith
    daith over 8 years ago

    I wonder if the section about the various options like ilp32 llp64 shouldn't be expanded a bit to be clearer about peoples options depending on where they are coming from and what they'll be running on. Plus it could mention big-endian options.

    For instance ilp32 could be useful for straight porting for speed but needs the appropriate libraries. The system structures in include files may not be identical to the ones for A32. Will user structures be exactly the same?

    ilp64 will not be supported at all

    Some machines may operate in big-endian mode e.g. when porting from MIPS or PowerPC. Support for one endian mode is very unlikely to be provided on the other except through virtualization.

    Apple do their own thing and reserve an extra register but otherwise support only ilp64 in 64 bit mode.

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • Jens Bauer
    Offline Jens Bauer over 8 years ago

    This is a very good document. Thank you, Chris for this.

    (I'm using it as a guideline, so I can prepare my coding style for 64-bit, even though I haven't moved to Cortex-A yet. This means I'll perhaps be able to minimize the re-writing code cycle).

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • Juan Gao
    Offline Juan Gao over 8 years ago

    Hi Chris,

    Do you have plan to put this doc in infocenter? It is useful.

    Thanks,

    Juan

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
>
Architectures and Processors blog
  • What is new in LLVM 15?

    Pablo Barrio
    Pablo Barrio
    LLVM 15.0.0 was released on September 6, followed by a series of minor bug-fixing releases. Arm contributed support for new Arm extensions and CPUs.
    • February 27, 2023
  • Apache Arrow optimization on Arm

    Yibo Cai
    Yibo Cai
    This blog introduces Arm optimization practices with two solid examples from Apache Arrow project.
    • February 23, 2023
  • Optimizing TIFF image processing using AARCH64 (64-bit) Neon

    Ramin Zaghi
    Ramin Zaghi
    This guest blog shows how 64-bit Neon technology can be used to improve performance in image processing applications.
    • October 13, 2022