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.
-fomit-frame-pointer to your GCC compiler options.
If you have already added for example
-O2 you do not need to add
-fomit-frame-pointer as the optimization options already include it on most systems by default.