|
Lines 210-215
Link Here
|
| 210 |
"rI" ((USItype) (bh)), \ |
210 |
"rI" ((USItype) (bh)), \ |
| 211 |
"r" ((USItype) (al)), \ |
211 |
"r" ((USItype) (al)), \ |
| 212 |
"rI" ((USItype) (bl)) __CLOBBER_CC) |
212 |
"rI" ((USItype) (bl)) __CLOBBER_CC) |
|
|
213 |
/* v3m and all higher arches have long multiply support. */ |
| 214 |
#if !defined(__ARM_ARCH_2__) && !defined(__ARM_ARCH_3__) |
| 215 |
#define umul_ppmm(xh, xl, a, b) \ |
| 216 |
__asm__ ("umull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b)) |
| 217 |
#define UMUL_TIME 5 |
| 218 |
#define smul_ppmm(xh, xl, a, b) \ |
| 219 |
__asm__ ("smull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b)) |
| 220 |
#else |
| 213 |
#define umul_ppmm(xh, xl, a, b) \ |
221 |
#define umul_ppmm(xh, xl, a, b) \ |
| 214 |
{register USItype __t0, __t1, __t2; \ |
222 |
{register USItype __t0, __t1, __t2; \ |
| 215 |
__asm__ ("%@ Inlined umul_ppmm\n" \ |
223 |
__asm__ ("%@ Inlined umul_ppmm\n" \ |
|
Lines 231-237
Link Here
|
| 231 |
: "r" ((USItype) (a)), \ |
239 |
: "r" ((USItype) (a)), \ |
| 232 |
"r" ((USItype) (b)));} |
240 |
"r" ((USItype) (b)));} |
| 233 |
#define UMUL_TIME 20 |
241 |
#define UMUL_TIME 20 |
|
|
242 |
#endif |
| 234 |
#define UDIV_TIME 100 |
243 |
#define UDIV_TIME 100 |
|
|
244 |
|
| 245 |
#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__) |
| 246 |
#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X)) |
| 247 |
#define COUNT_LEADING_ZEROS_0 32 |
| 248 |
#endif |
| 249 |
|
| 235 |
#endif /* __arm__ */ |
250 |
#endif /* __arm__ */ |
| 236 |
|
251 |
|
| 237 |
#if defined (__hppa) && W_TYPE_SIZE == 32 |
252 |
#if defined (__hppa) && W_TYPE_SIZE == 32 |