abi-aa VS x86-64-ABI

Compare abi-aa vs x86-64-ABI and see what are their differences.

abi-aa

Application Binary Interface for the Arm® Architecture (by ARM-software)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
abi-aa x86-64-ABI
8 10
837 -
2.6% -
7.0 -
3 days ago -
HTML
GNU General Public License v3.0 or later -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

abi-aa

Posts with mentions or reviews of abi-aa. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-09.
  • LKM Relocation ressources
    1 project | /r/osdev | 23 Dec 2022
    As far as I know, kernel modules are ordinary relocatable ELF executables, so the best resource will be the ELF specifications. The ARM-specific parts can be found here.
  • Cortex M7: get MSP using inline _asm algorithm checkup
    1 project | /r/embedded | 22 Sep 2022
    Yes, that would be the case when your code's entry-point executes, and from then on it is your responsibility to maintain the alignment. It has nothing to do with AHB. This advisory has some examples of what can go wrong if your stack isn't 8-byte aligned. The alignment does not make much of a difference in your little function, but it's something to keep in mind as you write more complex code.
  • Raspberry Pi Pico: What is this obfuscated code(?) doing in its boot ROM?
    8 projects | news.ycombinator.com | 9 Apr 2022
    Normally you'd save more than just PC as AAPCS (https://github.com/ARM-software/abi-aa/blob/main/aapcs32/aap...) mandates stack to be aligned to 8 bytes for "public interface" functions. But this is is not a "public" function so it's fine to only save lr here.

    "bx lr" is only used on it's own when the function doesn't call another function (altering lr), and doesn't need to save any registers.

    If you see pop {lr}; bx lr then that's code that's being compiled to explicitly support Armv4 (e.g. Arm7TDMI)

  • What can I expect to happen if I print a character above CHAR_MAX?
    1 project | /r/C_Programming | 8 Jan 2022
    The Arm Procedure Call Standards have "Arm C and C++ Language Mappings" sections that all say char is an "unsigned byte".
  • Details on brk #imm implementation ?
    1 project | /r/arm | 13 Dec 2021
  • This Week in Rust #412
    4 projects | /r/rust | 14 Oct 2021
    eabi: many pages in this official ARM repository define it as "An ABI suited to the needs of embedded, and deeply embedded (sometimes called free standing), applications." It seems to be the name of an ABI, or maybe the ABI, that code compiled for ARM chips is expected to use? Except there's also AEABI, the first A stands for ARM, and that's something different? ARM's naming conventions confuse me endlessly.
  • Resources for Amateur Compiler Writers
    3 projects | news.ycombinator.com | 24 Apr 2021
    Latest versions of the ABI specifications linked in the Machine Specific section

    ARM: https://github.com/ARM-software/abi-aa/releases

    x86-64: https://gitlab.com/x86-psABIs/x86-64-ABI (go to most recent CI job and download artifacts for a compiled PDF)

  • PyPy Project looking for sponsorship to add support for Apple Silicon
    5 projects | news.ycombinator.com | 31 Dec 2020
    > Apple changed some things that impact PyPy, like the register uses and ffi calling conventions.

    I thought everyone who used 64-bit ARM used ARM's AAPCS64 (https://github.com/ARM-software/abi-aa/blob/master/aapcs64/a...), so the register usage and FFI calling convention should be the same as on Linux and Windows. What did Apple do that would affect the PyPy JIT?

x86-64-ABI

Posts with mentions or reviews of x86-64-ABI. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-16.
  • Linux/ELF .eh_frame from the bottom up
    2 projects | news.ycombinator.com | 16 Feb 2024
    Linux uses the sysv calling convention. I believe these are the official or semi-official documents for x86 64-bit and 32-bit, respectively:

    https://gitlab.com/x86-psABIs/x86-64-ABI (Table 3.4 in section 3.2.3 lists which registers may be clobbered and which must be saved)

  • Book recommendations.
    1 project | /r/asm | 5 Dec 2023
    System V Application Binary Interface AMD64 Architecture Processor Supplement
  • Six Great Features with the Upcoming Linux 6.6 Kernel
    1 project | news.ycombinator.com | 29 Oct 2023
    ABI is just the name for any stable binary interface between parts of a program, eg in C there is a well-defined ABI for calling functions: https://gitlab.com/x86-psABIs/x86-64-ABI/-/jobs/artifacts/ma... https://www.agner.org/optimize/calling_conventions.pdf

    If you combine that with a stable set of C function names and parameters, then you could define an ABI for kernel modules if you (and the Linux developers) wanted. While it sounds like a good idea, the outcome probably wouldn't be great for users.

  • Does C++ have a stable ABI or not?
    1 project | /r/cpp | 29 Apr 2023
    But in the same breath, that paragraph's footnote points directly to the Itanium C++ ABI specification which seems to do precisely what they said has never been done. (I've filed a bug...).
  • What x64 ABI does linux / GCC ACTUALLY use?
    1 project | /r/linux | 4 Feb 2023
    The supposed latest psABI specs (https://gitlab.com/x86-psABIs/x86-64-ABI) contain the following, with regards to classifying aggregates for argument passing (section 3.2.3, page 24, of the AMD64 ABI 1.0 – December 6, 2022 specs):
  • Change default CPU type?
    1 project | /r/Proxmox | 20 Dec 2022
    RHEL, from version 9, requires x86-64 v2. The levels are a common effort between several companies, AMD included. The definitions can be found in this repo, and here is the latest PDF.
  • System V Application Binary Interface [pdf]
    1 project | news.ycombinator.com | 19 Feb 2022
    Note that this isn't the most up-to-date version of the x86-64 SysV ABI--if you want that, go to https://gitlab.com/x86-psABIs/x86-64-ABI/-/jobs/artifacts/ma... .

    Although I think the only updates since the version linked here are effectively editorial in note. The last big updates are adding AMX registers to the ABI, and the addition of microarchitecture levels, both of which are in this version.

  • Attempts to write to VBE framebuffer either cause QEMU bootlooping or do nothing.
    2 projects | /r/osdev | 25 Jan 2022
    As far as calling conventions go, it's explained very thoroughly in the AMD64 psABI. I know it's not the easiest read, but it does say that the first integer parameter is passed in RDI.
  • Resources for Amateur Compiler Writers
    3 projects | news.ycombinator.com | 24 Apr 2021
    Latest versions of the ABI specifications linked in the Machine Specific section

    ARM: https://github.com/ARM-software/abi-aa/releases

    x86-64: https://gitlab.com/x86-psABIs/x86-64-ABI (go to most recent CI job and download artifacts for a compiled PDF)

  • The GNU C Library version 2.33 is now available with advanced hardware capabilities feature
    1 project | /r/gnu | 2 Feb 2021
    For x86_64-linux-gnu, you can read the table in this TeX source file (I'm not aware of an up-to-date rendered PDF yet - when development moved from github to gitlab the wiki seems to have been abandoned without replacement)

What are some alternatives?

When comparing abi-aa and x86-64-ABI you can also consider the following projects:

pico-bootrom

luigi - Luigi is a Python module that helps you build complex pipelines of batch jobs. It handles dependency resolution, workflow management, visualization etc. It also comes with Hadoop support built in.

rust - Empowering everyone to build reliable and efficient software.

hn-search - Hacker News Search

kaleidoscope - Haskell LLVM JIT Compiler Tutorial

CPython - The Python programming language