ARM 32/64 bit logic & version?
- Dominant language
- C
- Stars
- 56
- Forks
- 87
- PR merge metrics
- No merged PRs in 30d
Description
The ARM macros define the version to 8 if `__aarch64__` is defined.
But I believe this is not correct: ARMv8 can run in aarch32 mode, where only `__arm__` and not `__aarch64__` is defined (and conversely, AArch64 mode does *not* define `__arm__`).
The correct thing I believe would be to use `__ARM_ARCH` which expands to e.g. 7 in ARMv7, 8 in ARMv8 etc for the version, and use the existence of `__arm__` / `__aarch64__` to distinguish between 32 & 64.
see repro: https://gcc.godbolt.org/z/xqqYWEaz6
ideally I would argue that AArch64 ought to be treated as an entirely different architecture, like PPC / PPC64
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.