Skip to content

Conversation

@tarcieri
Copy link
Member

ARMv7 is one of the main architectures for which we've received requests for 64-bit overrides in the past (see discussion on #826).

Though natively 32-bit, ARMv7 supports certain "doubleword" instructions which model 64-bit values as a pair of 32-bit registers, e.g. ADDS/ADC and SUBS/SBC for 2x32-bit addition/subtraction, as well as UMULL/SMULL for widening multiplication with 2x32-bit outputs.

Many ARMv7 CPUs internally fetch 64-bits of instruction at once and can move 64-bits of data via LDRD/STRD in one cycle on optimized paths.

Some high-performance ARMv7 CPUs internally combine the barrel shifter + ALU to speed multi-word shifts.

If we use 64-bit implementations when targeting ARMv7, codegen is able to leverage these optimizations.

ARMv7 is one of the main architectures for which we've received requests
for 64-bit overrides in the past (see discussion on #826).

Though natively 32-bit, ARMv7 supports certain "doubleword"
instructions which model 64-bit values as a pair of 32-bit registers,
e.g. `ADDS`/`ADC` and `SUBS`/`SBC` for 2x32-bit addition/subtraction,
as well as `UMULL`/`SMULL` for widening multiplication with 64-bit
outputs.

Many ARMv7 CPUs internally fetch 64-bits of instruction at once and can
move 64-bits of data via `LDRD`/`STRD` in one cycle on optimized paths.

Some high-performance ARMv7 CPUs internally combine the barrel shifter +
ALU to speed multi-word shifts.

If we use 64-bit implementations when targeting ARMv7, codegen is able
to leverage these optimizations.
@tarcieri tarcieri merged commit 88edf14 into master Jan 21, 2026
11 checks passed
@tarcieri tarcieri deleted the cpubits/armv7 branch January 21, 2026 05:01
@tarcieri tarcieri mentioned this pull request Jan 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants