Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
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 blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded and Microcontrollers blog

  • Internet of Things (IoT) blog

  • Laptops and Desktops blog

  • Mobile, Graphics, and Gaming blog

  • Operating Systems blog

  • Servers and Cloud Computing 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
Parents
  • Shankar
    Shankar over 11 years ago

    I have doubt on "Structure padding" you explained in this document.

    "In LP64, it has size 20. The ”long” has increased from 4 bytes and 8 bytes and must now be double-word aligned. This introduces four bytes of padding between the end of the first ”int” and the ”long”."

    If this structure need to be double-word aligned, then its size must be 24 not 20 ? In my opinion,padding will be required for both int, unless we re-ordered structure definition.

    struct foo {

    int a;

    int x;

    long l;

    }

    In above case size will be 16 bytes?

    could you pl.comment ??

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
Comment
  • Shankar
    Shankar over 11 years ago

    I have doubt on "Structure padding" you explained in this document.

    "In LP64, it has size 20. The ”long” has increased from 4 bytes and 8 bytes and must now be double-word aligned. This introduces four bytes of padding between the end of the first ”int” and the ”long”."

    If this structure need to be double-word aligned, then its size must be 24 not 20 ? In my opinion,padding will be required for both int, unless we re-ordered structure definition.

    struct foo {

    int a;

    int x;

    long l;

    }

    In above case size will be 16 bytes?

    could you pl.comment ??

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
Children
No Data
Architectures and Processors blog
  • Future Architecture Technologies: POE2 and vMTE

    Martin Weidmann
    Martin Weidmann
    This blog post introduces two future technologies, Permission Overlay Extension version 2 (POE2) and Virtual Tagging Extension (vMTE).
    • October 23, 2025
  • Scalable Matrix Extension: Expanding the Arm Intrinsics Search Engine

    Chris Walsh
    Chris Walsh
    Arm is pleased to announce that the Arm Intrinsics Search Engine has been updated to include the Scalable Matrix Extension (SME) intrinsics, including both SME and SME2 intrinsics.
    • October 3, 2025
  • Arm A-Profile Architecture developments 2025

    Martin Weidmann
    Martin Weidmann
    Each year, Arm publishes updates to the A-Profile architecture alongside full Instruction Set and System Register documentation. In 2025, the update is Armv9.7-A.
    • October 2, 2025