Manuel Pégourié-Gonnard 2adb375c50 Add option to avoid 64-bit multiplication
Motivation is similar to NO_UDBL_DIVISION.

The alternative implementation of 64-bit mult is straightforward and aims at
obvious correctness. Also, visual examination of the generate assembly show
that it's quite efficient with clang, armcc5 and arm-clang. However current
GCC generates fairly inefficient code for it.

I tried to rework the code in order to make GCC generate more efficient code.
Unfortunately the only way to do that is to get rid of 64-bit add and handle
the carry manually, but this causes other compilers to generate less efficient
code with branches, which is not acceptable from a side-channel point of view.

So let's keep the obvious code that works for most compilers and hope future
versions of GCC learn to manage registers in a sensible way in that context.

See https://bugs.launchpad.net/gcc-arm-embedded/+bug/1775263
2018-06-07 11:05:33 +02:00
..
2018-04-16 14:51:52 +01:00
2018-05-15 09:21:57 +01:00
2018-05-15 09:21:57 +01:00
2018-04-23 06:16:40 +01:00
2018-04-01 15:12:46 +03:00
2018-05-15 09:21:57 +01:00
2018-05-15 09:21:57 +01:00
2018-05-24 13:37:31 +02:00
2018-05-15 09:21:57 +01:00
2018-04-16 16:31:16 +01:00
2018-05-15 09:21:57 +01:00
2018-06-04 12:31:12 +02:00
2018-05-15 09:21:57 +01:00
2018-05-15 09:21:57 +01:00
2018-05-15 09:21:57 +01:00
2018-05-15 09:21:57 +01:00
2018-04-01 15:59:58 +03:00
2018-04-30 09:58:33 +01:00