[backport from gcc-4.8/trunk r185202 ] Date: Thu, 08 Mar 2012 16:36:30 +1300 From: Michael Hope Subject: [PATCH, ARM, libgcc] Enable longlong.h inline assembly for Thumb-2 List-Archive: Hi there, This patch enables the ARM inline assembly 64 bit add, subtract, and multiply instructions in libgcc when compiling for Thumb-2. The existing code enables them for ARM mode as Thumb-1 is missing the encodings. OK for 4.8? -- Michael libgcc/ 2012-03-11 Michael Hope * longlong.h [ARM] (add_ssaaaa, sub_ddmmss, umul_ppmm): Enable for Thumb-2. --- gcc-4.6.3/gcc/longlong.h.~1~ 2011-10-04 09:28:50.000000000 +0200 +++ gcc-4.6.3/gcc/longlong.h 2012-06-10 14:04:14.000000000 +0200 @@ -203,7 +203,8 @@ do { \ UDItype __umulsidi3 (USItype, USItype); #endif -#if defined (__arm__) && !defined (__thumb__) && W_TYPE_SIZE == 32 +#if defined (__arm__) && (defined (__thumb2__) || !defined (__thumb__)) \ + && W_TYPE_SIZE == 32 #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ __asm__ ("adds %1, %4, %5\n\tadc %0, %2, %3" \ : "=r" ((USItype) (sh)), \