Skip to content

ARM CI: Runners test Linux ARM Assembly + upgrade to Ubuntu 24.04#581

Open
mratsim wants to merge 1 commit intoinline-asm-arm-gcc-registersfrom
ci-arm-runners
Open

ARM CI: Runners test Linux ARM Assembly + upgrade to Ubuntu 24.04#581
mratsim wants to merge 1 commit intoinline-asm-arm-gcc-registersfrom
ci-arm-runners

Conversation

@mratsim
Copy link
Owner

@mratsim mratsim commented Sep 8, 2025

After adding ARM assembly I forgot to test it also on Linux in CI.

Also upgrade from Ubuntu 22.04 -> Ubuntu 24.04.

And trying to narrow down downstream issue https://github.com/status-im/nimbus-eth1/actions/runs/17517080710/job/49755993475?pr=3587

/home/runner/work/nimbus-eth1/nimbus-eth1/vendor/constantine/constantine/math/arithmetic/assembly/limbs_asm_mul_mont_arm64.nim: In function ‘_ZN24limbs_asm_mul_mont_arm6432mulMont_CIOS_sparebit_asm_sfalseE3varI5arrayI7range052CtI6uInt64EEE5arrayI7range052CtI6uInt64EE5arrayI7range052CtI6uInt64EE5arrayI7range052CtI6uInt64EE6uInt64’:
/home/runner/work/nimbus-eth1/nimbus-eth1/vendor/constantine/constantine/math/arithmetic/assembly/limbs_asm_mul_mont_arm64.nim:248:1: error: more than 30 operands in ‘asm’
  248 | 
      | ^  
/home/runner/work/nimbus-eth1/nimbus-eth1/vendor/constantine/constantine/math/arithmetic/assembly/limbs_asm_mul_mont_arm64.nim: In function ‘_ZN24limbs_asm_mul_mont_arm6443mulMont_CIOS_sparebit_asm_s6_s6_s6_s6_strueE3varI5LimbsIEE5LimbsIE5LimbsIE5LimbsIE6uInt64’:
/home/runner/work/nimbus-eth1/nimbus-eth1/vendor/constantine/constantine/math/arithmetic/assembly/limbs_asm_mul_mont_arm64.nim:248:1: error: more than 30 operands in ‘asm’

It runs fine on MacOS ARM so:

  • either GCC register allocations is less efficient on ARM or ARM-linux, in that case we need a workaround in Constantine
  • or there is inlining that is still causing an issue, in that case we need a workaround in Nimbus.

@gemini-code-assist
Copy link

Note

Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported.

@mratsim mratsim changed the base branch from master to inline-asm-arm-gcc-registers October 21, 2025 07:55
@mratsim
Copy link
Owner Author

mratsim commented Oct 21, 2025

Closing and reopening to test #585

@mratsim mratsim closed this Oct 21, 2025
@mratsim mratsim reopened this Oct 21, 2025
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.

1 participant