Fixed bignum.c and bn_mul.h to support Thumb2 and LLVM compiler

(cherry picked from commit 52b845be34)
This commit is contained in:
Paul Bakker 2013-06-24 19:23:56 +02:00
parent 531e294313
commit fc4f46fa9a
2 changed files with 11 additions and 3 deletions

View File

@ -548,7 +548,7 @@
#if defined(__arm__)
#if defined(__thumb__)
#if defined(__thumb__) && !defined(__thumb2__)
#define MULADDC_INIT \
asm( \

View File

@ -935,7 +935,15 @@ int mpi_sub_int( mpi *X, const mpi *A, t_sint b )
/*
* Helper for mpi multiplication
*/
static void mpi_mul_hlp( size_t i, t_uint *s, t_uint *d, t_uint b )
static
#if defined(__APPLE__) && defined(__arm__)
/*
* Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)
* appears to need this to prevent bad ARM code generation at -O3.
*/
__attribute__ ((noinline))
#endif
void mpi_mul_hlp( size_t i, t_uint *s, t_uint *d, t_uint b )
{
t_uint c = 0, t = 0;