Arm (Thumb assembly).


Depending on the GCC compiler options used, you can receive an error:

error: r7 cannot be used in asm here


The assembly code in bn_mul.h is optimized for the Arm platform and uses some registers, including r7 to efficiently perform an operation. GCC also uses r7 as the frame pointer under the Arm Thumb assembly.


Add -fomit-frame-pointer to your GCC compiler options.

If you have already added for example -O or -O2 you do not need to add -fomit-frame-pointer as the optimization options already include it on most systems by default.

Did this help?