Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Arm Research
    • DesignStart
    • Education Hub
    • Graphics and Gaming
    • High Performance Computing
    • Innovation
    • Multimedia
    • Open Source Software and Platforms
    • Physical
    • Processors
    • Security
    • System
    • Software Tools
    • TrustZone for Armv8-M
    • 中文社区
  • Blog
    • Announcements
    • Artificial Intelligence
    • Automotive
    • Healthcare
    • HPC
    • Infrastructure
    • Innovation
    • Internet of Things
    • Machine Learning
    • Mobile
    • Smart Homes
    • Wearables
  • Forums
    • All developer forums
    • IP Product forums
    • Tool & Software forums
  • Support
    • Open a support case
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • Community Help
  • More
  • Cancel
Processors
  • Developer Community
  • IP Products
  • Processors
  • Jump...
  • Cancel
Processors
Processors blog Porting to Arm 64-bit
  • Blogs
  • Leaderboard
  • Forums
  • Videos & Files
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
  • New
More blogs in Processors
  • DesignStart blog

  • Machine Learning IP blog

  • Processors blog

  • TrustZone for Armv8-M 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

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
  • Chris Shore
    Offline Chris Shore over 6 years ago

    Thank you for pointing this out. I will work on a minor update and post it shortly.

    Chris

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • Sreenath P V
    Offline Sreenath P V over 6 years ago

    Hi  Chris,

    I have  doubt on page 10, In the table that shows alternate instruction for PUSH and POP, In A64, to push and pop x0 and x1 we require 16 byte location in stack. But in the example it shows 8. Could you please comment on this? Thanks!

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • Chris Shore
    Offline Chris Shore over 6 years ago

    Hi,

    Thank you for your comment on the document.

    C1x and C++11 are shorthand names for the latest ISO/IEC standards for C (C11, ISO/IEC 9899:2011) and C++ (ISO/IEC 14882:2011). Among other things, these standards introduce standard capabilities for multi-threaded programming. This includes the requirement for standard implementations of mutexes and other forms of "uninterruptible object access". The Load-Acquire and Store-Release instructions introduced in A64 are intended to comply with this.

    I hope this helps.

    Chris

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • Chris Shore
    Offline Chris Shore over 6 years ago

    Hi,

    As you and others have kindly pointed out, there is a minor error here. The structure will also have 4 bytes of padding added at the end to ensure that it aligns properly when declared as an array.

    I will upload a minor update to the document shortly.

    Many thanks for pointing this out. I trust that you found the rest of the document useful.

    Chris

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • zzliu
    Offline zzliu over 6 years ago

    hi,

    Could someone give me a introduction about "C1x/C++11" in the figure of page 2nd ?

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
<>
Processors blog
  • Learning from Tweeten: Porting Electron Apps to Native Arm64 for Windows on Arm

    Ben Clark
    Ben Clark
    This blog explores how Tweeten, a free popular Twitter app, was deployed on Windows on Arm devices through Electon on Native Arm64.
    • January 25, 2021
  • Learning from StaffPad: How to deploy apps with the Universal Windows Platform

    Ben Clark
    Ben Clark
    This blog explores how StaffPad, a music notation app, was deployed on Windows on Arm devices through the Universal Windows Platform.
    • January 18, 2021
  • Time to get excited about the growing Windows on Arm Ecosystem

    Rahoul Varma
    Rahoul Varma
    This blog highlights the latest developments with the growing Windows on Arm ecosystem.
    • November 30, 2020