diff options
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106878.patch')
| -rw-r--r-- | toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106878.patch | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106878.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106878.patch deleted file mode 100644 index fc1633d36e..0000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106878.patch +++ /dev/null | |||
| @@ -1,69 +0,0 @@ | |||
| 1 | 2012-03-08 Michael Hope <michael.hope@linaro.org> | ||
| 2 | |||
| 3 | Backport proposed patch: | ||
| 4 | |||
| 5 | gcc/ | ||
| 6 | 2012-01-31 Richard Henderson <rth@redhat.com> | ||
| 7 | |||
| 8 | * longlong.h [arm] (umul_ppmm): Use umull. Enable for thumb2. | ||
| 9 | [arm] (count_trailing_zeros): Use __builtin_ctz. | ||
| 10 | |||
| 11 | === modified file 'gcc/longlong.h' | ||
| 12 | --- old/gcc/longlong.h 2011-10-04 07:28:50 +0000 | ||
| 13 | +++ new/gcc/longlong.h 2012-02-22 01:51:14 +0000 | ||
| 14 | @@ -203,7 +203,7 @@ | ||
| 15 | UDItype __umulsidi3 (USItype, USItype); | ||
| 16 | #endif | ||
| 17 | |||
| 18 | -#if defined (__arm__) && !defined (__thumb__) && W_TYPE_SIZE == 32 | ||
| 19 | +#if defined (__arm__) && (defined (__thumb2__) || !defined (__thumb__)) && W_TYPE_SIZE == 32 | ||
| 20 | #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ | ||
| 21 | __asm__ ("adds %1, %4, %5\n\tadc %0, %2, %3" \ | ||
| 22 | : "=r" ((USItype) (sh)), \ | ||
| 23 | @@ -220,9 +220,12 @@ | ||
| 24 | "rI" ((USItype) (bh)), \ | ||
| 25 | "r" ((USItype) (al)), \ | ||
| 26 | "rI" ((USItype) (bl)) __CLOBBER_CC) | ||
| 27 | -#define umul_ppmm(xh, xl, a, b) \ | ||
| 28 | -{register USItype __t0, __t1, __t2; \ | ||
| 29 | - __asm__ ("%@ Inlined umul_ppmm\n" \ | ||
| 30 | +# if defined(__ARM_ARCH_2__) || defined(__ARM_ARCH_2A__) \ | ||
| 31 | + || defined(__ARM_ARCH_3__) | ||
| 32 | +# define umul_ppmm(xh, xl, a, b) \ | ||
| 33 | + do { \ | ||
| 34 | + register USItype __t0, __t1, __t2; \ | ||
| 35 | + __asm__ ("%@ Inlined umul_ppmm\n" \ | ||
| 36 | " mov %2, %5, lsr #16\n" \ | ||
| 37 | " mov %0, %6, lsr #16\n" \ | ||
| 38 | " bic %3, %5, %2, lsl #16\n" \ | ||
| 39 | @@ -239,14 +242,26 @@ | ||
| 40 | "=r" ((USItype) (xl)), \ | ||
| 41 | "=&r" (__t0), "=&r" (__t1), "=r" (__t2) \ | ||
| 42 | : "r" ((USItype) (a)), \ | ||
| 43 | - "r" ((USItype) (b)) __CLOBBER_CC );} | ||
| 44 | -#define UMUL_TIME 20 | ||
| 45 | -#define UDIV_TIME 100 | ||
| 46 | + "r" ((USItype) (b)) __CLOBBER_CC ); \ | ||
| 47 | + } while (0) | ||
| 48 | +# define UMUL_TIME 20 | ||
| 49 | +# else | ||
| 50 | +# define umul_ppmm(xh, xl, a, b) \ | ||
| 51 | + do { \ | ||
| 52 | + /* Generate umull, under compiler control. */ \ | ||
| 53 | + register UDItype __t0 = (UDItype)(USItype)(a) * (USItype)(b); \ | ||
| 54 | + (xl) = (USItype)__t0; \ | ||
| 55 | + (xh) = (USItype)(__t0 >> 32); \ | ||
| 56 | + } while (0) | ||
| 57 | +# define UMUL_TIME 3 | ||
| 58 | +# endif | ||
| 59 | +# define UDIV_TIME 100 | ||
| 60 | #endif /* __arm__ */ | ||
| 61 | |||
| 62 | #if defined(__arm__) | ||
| 63 | /* Let gcc decide how best to implement count_leading_zeros. */ | ||
| 64 | #define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X)) | ||
| 65 | +#define count_trailing_zeros(COUNT,X) ((COUNT) = __builtin_ctz (X)) | ||
| 66 | #define COUNT_LEADING_ZEROS_0 32 | ||
| 67 | #endif | ||
| 68 | |||
| 69 | |||
